Publier un eBook sur Amazon Kindle en fixed layout

Après avoir créé mon ebook avec Apple Pages, j’ai obtenu un beau fichier ePub que j’ai pu compressé pour obtenir un fichier compressé.

Mon eBook est en fixed layout. C’est à dire que la mise en page ne peut pas être modifiée, le texte ne peut pas être agrandi ou réduit. L’avantage, c’est que mes éléments graphiques restent au bon endroit: je suis sûr que les lecteurs verront l’ebook comme je l’ai conçu.

J’upload mon fichier sur Amazon Kindle et je vérifie la Prévisualisation: rien ne va! Le format est bien respecté mais est tassé dans le coin supérieur droit.

J’ai passé des heures à lire la documentation officielle pour comprendre ce qui n’allait pas: il manque une balise dans l’ePub pour qu’Amazon l’interprète correctement.

L’information clef est au chapitre 10.1 du Amazon Kindle Publishing Guidelines (PDF): une balise « original-resolution » est nécessaire pour la bonne interprétation du format fixed layout.

<meta name="original-resolution"
content="1024x600"/>

Ok, c’est sympa, et alors? Pour vérifier si la balise est présente dans l’ePub, il faut:

  • Dézipper l’ePub
  • Ouvrir le fichier OPS/epb.opf

Faites une recherche de texte pour « original-resolution ». Dans mon cas, elle n’y était pas. Je l’ai donc ajouté moi-même. Première question: quel est ma résolution d’origine? Dans Apple Pages, j’ai choisi un format papier, en cm. Ça donne quoi en pixel?

Pour trouver la réponse, j’ai ouvert la 1ère page de mon ebook, c’est à dire le fichier OPS/page-1.xhtml. Vous devriez trouver une balise comme celle-ci:

<meta name="viewport" content="width=255.118px,height=453.543px"/>

Traduction: ma résolution d’origine est de 255×453.

Il suffit alors d’ajouter ma nouvelle balise dans le fichier OPS/epb.opf:

<meta name="original-resolution"
content="255x453"/>

ajouté juste après la balise

<meta property="rendition:layout">pre-paginated</meta>

Il ne reste plus qu’à reconstruire le fichier ePub correctement et le resoumettre à Amazon. Lors de la Prévisualisation, l’ebook apparaitra centré et prendra toute la largeur/hauteur disponible.

Cette astuce m’a bien aidé, même si au final, je n’ai pas soumis mon eBook à Amazon Kindle de cette manière là.

La raison est la suivante: mon eBook en format ePub fait 30Mo, après traitement par Amazon, il fait 60Mo. N’oublions pas qu’Amazon facture le coût de livraison en fonction du poids du fichier… merci!

Pourquoi un fichier Kindle est 2x fois plus gros? Il semble que le format converti contienne 2 eBook:

  • un premier, complet, avec les polices, compatibles avec les dernières liseuses/applications
  • un second, incomplet, sans certaines polices, sans lien mais compatibles avec leurs vieilles liseuses…

J’espère que cette astuce vous sera utile!

J’ai fait de l’orthodontie à 30 ans, la meilleure décision de ma vie?

J’ai fait de l’orthodontie à 30 ans. Plus précisément, j’ai commencé à 29,5 ans et je l’ai enlevé à 32,5 ans. 3 ans à porter des bagues collées aux dents, tenues par un gros câble gris. Ça n’a pas du tout été un frein et je le conseille à tous ceux qui, comme moi, complexent sur leur dentition.

Il y a plusieurs niveaux de traitements orthodontie. Moi, c’était du sérieux. Suffisamment sérieux pour que l’orthodontiste ne réussisse pas à attacher toutes les bagues au début. Durant cette période, je n’ai eu aucune remarque négative, je n’ai ressenti aucune gène. Au contraire! Les résultats étaient suffisamment rapide pour que je me mette à montrer mes dents bagués lorsque je souriais – chose que je ne faisais jamais avant, avec ma dentition pourrie.

 » Je vois que vous portez un appareil, j’hésite moi-même à en porter un mais j’ai peur des répercussions sur mon travail, qu’est-ce que ça à changé pour vous? »

Un conseiller Apple Store

J’ai eu beaucoup de questions comme ça. De personnes hésitantes, complexées.

1er RDV: Bagues vs Invisalign

Le premier RDV chez l’orthodontiste, c’est express. On regarde rapidement la dentition et on passe à la conclusion: Invisalign, c’est pas possible, trop de travail. Ce sera bagues.Au début, j’étais un peu déçu. Toutefois, ça a vite changé.

Invisalign

Ma femme a fait un petit traitement Invisalign (je pense que c’était surtout pour m’accompagner). Elle devait enlever les gouttières à chaque repas et c’était très douloureux car il faut tirer fort pour les enlever. Lorsqu’on les remet après 1h en liberté, le retour en « prison » des dents est aussi douloureux. Toutes les 2 semaines, on change de gouttières pour faire avancer le traitement.

Alors oui, Invisalign ça ne se « voit » pas. Sauf qu’en fait ça se voit. Et ça peut aussi s’entendre! Il est plus difficile de parler lorsqu’on porte des gouttières tout le temps.

J’ai l’impression que le traitement était plus lent. Le rythme de changement des gouttières est prévu à l’avance. Peu importe comment votre dentition réagi, ça suivra le rythme prévu par Invisalign.

Les bagues

J’ai eu des bagues céramiques devant (blanc) et métal plus loin (gris), avec un câble en métal (gris). Oui, ça se voit. La bouche est plus grosse car les lèvres doivent recouvrir l’appareil dentaire. D’ailleurs, au début, j’avais même du mal à fermer la bouche. J’ai aussi eu des petites coupures dans la bouche lié aux bagues qui ont des arrêtes tranchantes.

Toutefois, ça a aussi des avantages. Avec un appareil dentaire à bagues, les dents sont en « prison », toute la journée, toute la nuit, sans interruption. Au début, c’est une sensation étrange. Rapidement, ça devient normal et on oublie (Là où Invisalign le rappel à chaque repas).

Le gros inconvénient, c’est si vous devez aller chez le dentiste (pour soigner une carie). Le dentiste n’a pas les outils pour enlever l’appareil dentaire, il faut alors: prendre 2 RDV chez l’orthodontiste et un RDV chez le dentiste au milieu, le tout en moins de 24H. C’est vraiment très mal foutu. L’idéal est d’aller dans un cabinet qui fait dentiste et orthodontiste.

2ème RDV: le scanner de dents

Pour bien comprendre tout le travail à faire, l’orthodontiste va numériser complètement la dentition. Concrètement, c’est une caméra spéciale qui va scruter les moindres recoin de la dentition. C’est assez long, environ 30mn. L’orthodontiste passe sur chaque dent, une à une. J’avais une dentition vraiment pas ouf, ça peut expliquer le temps nécessaire aussi.

Du 3ème RDV au dernier RDV

Après, c’est toujours pareil. Les dents bougent progressivement, on change de câble. C’est légèrement douloureux lorsque le câble est changé mais ça ne dure que quelques heures.

Le changement est très rapide au début. J’avais l’impression que mes dents étaient parfait en moins de 6 mois. Le reste du traitement, c’était pour parfaire la dentition.

Au bout de 18 mois, j’ai commencé à avoir des élastiques. Ils étaient nécessaires pour corriger un autre problème de ma dentition, l’occlusion croisée. À droite, j’avais les dents inférieures à l’extérieure des dents supérieurs.

Les élastiques, c’est un peu plus contraignant. Il faut les enlever quand on mange et parfois ils cassent. Mais il n’y a pas vraiment de douleur associé.

Attention, photos dégueulasse!

Le dernier RDV, la dépose de l’appareil dentaire et la contention

3 ans après l’installation, j’ai l’impression que l’appareil dentaire et les bagues font partie de moi. Mais je suis pas mécontent de l’enlever quand même.

L’enlèvement des bagues, c’est facile et c’est rapide. Ça fait un peu peur car les bagues sont détruites à la pince coupante, directement sur les dents. Elles étaient bien collés!

Ensuite, place au nettoyage de fond en comble. Le but c’est d’enlever tous les bouts de calcaires, toutes les impuretés. Le fil dentaire doit passer entre chaque dent. Le nettoyage dure environ 30mn. C’est un peu désagréable au début. J’ai l’impression que c’était de l’eau sous pression avec de tout petits morceaux de sable. À la fin du nettoyage, les dents sont beaucoup plus blanches. La sensation est très agréable.

Ensuite, c’est la « contention ». Concrètement, l’orthodontiste va collé un câble métallique derrière les dents. Ce câble est prévu pour rester entre 5 ans et toute la vie. Au début, la sensation du câble est gênante pour la langue mais on s’y habitue rapidement également.

Enfin, l’empreinte. Pour s’assurer que les dents gardent la bonne position, il faut porter des gouttières toutes les nuits pendant 6 mois. L’empreinte, c’est sauvage. Il faut mordre dans une pâte spéciale pendant 3mn. Ensuite, l’orthodontiste va récupérer l’empreinte en tirant très fort. C’est pas agréable du tout. La fabrication des gouttières prend environ 1 semaine et c’est fini!

Prix de l’orthodontie à 30 ans

Il n’y aucune prise en charge de ce traitement par l’Assurance Malade. Mon orthodontiste fonctionnait au semestre. Je payais tous les 6 mois environ 1600€. Le dernier RDV, la contention avec le nettoyage et l’empreinte, coûte 500€.

Au total, l’orthodontie à 30 ans m’a couté un peu plus de 5000€, environ 140€ par mois, environ 1 iPhone par an.

Tout le monde dit que c’est cher. Je l’ai fait et je trouve que c’est une dépense totalement justifiée.


Pour terminer, l’orthodontie à 30 ans, je conseille.

Publié le
Catégorisé comme Lifestyle

Écrire un ePub en Markdown

Ça y’est, je crois que j’ai trouvé la meilleure méthode pour écrire un livre électronique: le markdown! Pour écrire un ePub en markdown, c’est simple et ça permet de l’exporter facilement en PDF et EPUB. Le top du top, c’est que le fichier EPUB est très bien fait et facilement compatible avec les liseuses. Ce que je n’arrivais pas à faire avec les autres logiciels pour écrire un ePub.

C’est quoi le Markdown?

Markdown, c’est un format d’écriture simple qui permet une mise en forme basique (voir la page Wiki). Voici à quoi ressemble un texte markdown:

**Ceci est un passage écrit en gras**, la suite ne l'étant pas. On peut aussi écrire en *italique*.

Ceci est un passage écrit en gras, la suite ne l’étant pas. On peut aussi écrire en italique.

Le Markdown est très restrictif. On ne peut pas faire n’importe quoi avec. Ce n’est pas si souple qu’un Pages ou Word. Mais ces restrictions le rendent idéal pour écrire un livre électronique ePub. Pas de surprise: le « peu » de chose que l’on peut faire avec le Markdown sera parfaitement retranscrit dans le livre électronique, dans une syntaxe très pure. Avec les autres logiciels, plus souples, j’ai toujours obtenu un rendu qui paraissant bien mais qui devenait très très mauvais dès qu’on changeait de lecteur ePub (Apple Livres, Google Play Livres, Kobo, etc.).

Quels logiciels pour écrire en Markdown?

Moi, j’utilise tout simplement Visual Studio Code. C’est ce que j’utilise pour programmer également.

Pour ma femme, je lui ai installer MacDown qui a l’avantage de montrer un rendu du code en temps réel. C’est plus agréable de travailler ainsi pour un non-technicien.

Comment organiser ses fichiers pour écrire un livre électronique en Markdown

En écrivant le livre en Markdown, on sépare un peu plus les images, de la mise en page, du texte. C’est tout l’inverse d’un éditeur WYSIWYG (What you see is what you get).

Les sources d’un livre électronique écrit en markdown ressemble donc à ça:

mon-livre/
-- images/
-- -- image1.jpg
-- -- image2.jpg
-- 01-chapitre1.md
-- 02-chapitre2.md
-- style.css
-- metadata.yaml

On stocke les images dans un dossier spécial. On a un fichier md par chapitre. Enfin, on a un fichier configurant la mise en page style.css et un fichier contenant les méta-données du livre électronique metadata.yaml.

Finit le gros fichier de 200Mo contenant textes et images. A la place, on a un dossier image et plusieurs fichiers texte simple.

Comme les images sont dans un dossier distinct, il est très simple de les compresser efficacement. On se souvient que les images sont la principale sources de gains lorsque j’ai voulu compresser mon ePub.

Comment transformer du Markdown en ePub

Pour transformer un document Markdown en ePub, j’utilise le logiciel libre Pandoc. L’utilisation est très simple. D’abord, créer un fichier metadata.yaml avec les métadonnées du livre qui seront inclus dans le fichier ePub. Par exemple:

---
title: Mon super livre électronique
pagetitle: Mon super livre électronique
author:
- Florian Guillaumin
rights: © Florian Guillaumin, 2019
language: fr-FR
ibooks:
  version: 1.4
cover-image:
  images/cover.jpg
css:
  - pandoc.css
  - ebook.css
...

Ensuite, on génère le fichier avec la commande:

➜  ~ pandoc metadata.yaml *.md -o monLivre.epub

Après quelques secondes, le livre est prêt!

Comment transformer du Markdown en PDF

Pandoc sait le faire mais il y a mieux. En fait, le fichier crée par Pandoc est un peu moche. Il y a certain moyen de l’améliorer mais j’ai trouver un autre moyen: transformer le Markdown en une page web et « imprimer » cette page web en PDF. Pour imprimer en PDF, j’utilise le logiciel libre WkHtmlToPdf.

Les deux étapes sont donc:

➜  ~ pandoc metadata.yaml *.md -o monLivre.html --section-divs --self-contained
➜  ~ wkhtmltopdf monLivre.html monLivre.pdf

Le markdown, c’est pour moi la meilleure manière de gérer mes livres électronique. Et c’est encore plus maboule si vous utilisez Git et un CI/CD avec.

Par exemple, je gère les versions de mes livres sur GitLab. À chaque mise à jour, ça déclenche mon workflow automatique qui retaille les images (pour être compatible avec l’AppStore), crée le fichier ePub, vérifie le fichier ePub, crée le fichier PDF et si tout est bon, exporte même les nouvelles versions vers un dépôt S3. C’est depuis ce dépôt que les livres peuvent être téléchargés donc dès que je fais une mise à jour, elle est automatiquement disponible pour les utilisateurs dans les 10mn qui suivent: magique!

Publié le
Catégorisé comme eBook Étiqueté ,

Compresser un ePub: ma méthode pour réduire la taille d’un ePub

Lorsque j’ai terminé mon ebook, je l’ai tout naturellement exporté et j’ai obtenu un fichier ePub de… 160Mo. C’est beaucoup trop. Il est nécessaire de compresser un ePub avant de le publier car les distributeurs (Amazon en premier), facturent le coût de la distribution en fonction de la taille du fichier. Avec ma méthode, j’ai obtenu un ePub de 29Mo: 80% de compression. Pas mal non?

Réduire la taille d’un ePub: quels éléments?

Fichier ePub trop lourd? Pour alléger un ePub, on va parler compression. La 1ère source d’éléments à compresser dans un ePub, ce sont les images! Dans mon cas, elles représentent 90% de la taille de mon eBook.

On peut trouver aussi d’autres sources d’optimisations comme le nombre de police intégrés.

Structure d’un fichier ePub

Comprenons déjà la structure d’un fichier ePub. Un fichier ePub est une archive Zip d’une structure bien définie:

  • le 1er fichier de l’archive est mimetype. Il ne doit pas être compressé.
  • un dossier « META-INF » contenant quelques informations de base sur la structure.
  • un autre dossier, « OPS » ou « oebps » contenant les données du ePub.

Le fichier mimetype permet aux applications qui vont lire ce fichier de le considérer comme un fichier spécial de type application/epub+zip, et pas comme une simple archive zip.

Le contenu du fichier mimetype fait exactement 20 caractères, sans saut de ligne à la fin:

application/epub+zip

Ce que ça veut dire, c’est que nous allons pouvoir dézipper le ePub pour comprendre ce qui prend de la place afin de pouvoir compresser un ePub en conséquence.

Commencez donc par dézipper le fichier ePub. Vous pouvez ajouter l’extension .zip pour vous aider. Sur macOs, via le terminal, la commande est:

flogg@MacBook:~/ePub$ unzip MonEBook.epub

On obtient la structure:

flogg@MacBook:~/ePub$ ls
META-INF/   OPS/        MonEBook.epub  mimetype

Réduire la taille d’un ePub: les images

Aller donc voir la taille du dossier OPS/images/. Il est énorme? Parfait, on va pouvoir compresser.

L’analyse dépend de chaque cas. Je vous raconte le mien mais le votre pourrait être différent.

Premier constat, je n’ai que des fichiers PNG. Clairement, ce n’est pas le format le plus efficace pour mon type de contenu. On préférera le format JPEG. Ce changement n’est valable que pour les images que n’ont pas besoin de fond transparent. Pour ces dernières, il n’y a pas d’autres choix que de conserver le format PNG.

Deuxième constat, ces fichiers ne sont pas optimisés du tout. Une simple optimisation des fichiers en suivant les recommandations de Google m’a permis de gagner 50Mo.

Convertir les images d’un ePub en JPEG

Les fichiers ePub supportent 4 types de fichiers images:

  • PNG
  • JPEG
  • GIF
  • SVG

Pour convertir de JPEG en PNG, j’utilise ImageMagick en ligne de commande sur macOs. Rappel: la transformation va remplacer les images au fond transparent par un fond blanc (-background white).

flogg@MacBook:~/ePub$ convert ./OPS/images/image.png -background white -alpha remove ./OPS/images/image.jpg
flogg@MacBook:~/ePub$ rm ./OPS/images/image.png

Il faut maintenant changer toutes les références de ce fichier dans tout votre ePub:

  • OPS/epb.opf: Ce fichier contient un inventaire des fichiers de l’ePub. Il faut remplacer une ligne comme:
<item id="dataItem5" href="images/image-1.png" media-type="image/png"/>

par

<item id="dataItem5" href="images/image-1.jpg" media-type="image/jpg"/>
  • OPS/page-xxx.xhtml: Ce fichier contient une page de votre ePub. Il suffit de remplacer toutes les occurrences de images/image-1.png par images/image-1.jpg

Répétez l’opération pour toutes les images. Vous pouvez automatiser l’opération de renommage des occurrences avec sed, par exemple:

flogg@MacBook:~/ePub$ sed -i'' -e "s/images\/image-1.png/images\/image-1.jpg/g" ./OPS/page-*.xhtml
flogg@MacBook:~/ePub$ sed -i'' -e "s/href=\"images\/image-1.png\"\ media-type=\"image\/png\"/href=\"images\/image-1.jpg\"\ media-type=\"image\/jpeg\"/g" ./OPS/epb.opf
flogg@MacBook:~/ePub$ rm ./OPS/*-e

La simple conversion de mes fichiers PNG en JPG m’a permis de compresser un ePub de 60% (157Mo > 63,1Mo).

Compresser les images d’un ePub

Que les images soient au format JPG ou PNG, c’est pareil et c’est très simple. Compresser toutes les images avec un programme comme ImageOptim, en suivant les recommandations de Google pour l’optimisation des images. Oui, on va dégrader la qualité de certaines images mais ce sera difficilement visible à l’oeil.

J’ai obtenu une compression d’environ:

  • 30% pour les fichiers PNG
  • 50% pour les fichiers JPG

Supprimer les images en doublon

Dans mon cas, j’utilise à plusieurs reprises une même image (un rond rouge). L’image de ce rond rouge est présente plus de 50 fois, avec un nom différent.

On peut compresser un peu plus l’ePub en ne conservant qu’une occurence de cette image et en remplaçant toutes les occurrences dans les fichiers page-xxx.html et epb.opf.

Je n’ai pas fait cette optimisation car le gain était assez minimes dans mon cas (moins de 1Mo).

Réduire la taille d’un ePub: les polices

Si vous incorporez les polices dans votre ePub, elles sont enregistrés dans le dossier OBS/fonts/.

Vérifiez les polices incorporées, et si elles sont toutes justifiées.

Dans mon cas, j’ai découvert 2 polices inutiles incorporées:

  • « Wingdings »: pour 2 malheureuses puces rondes.
  • « FontAwesome5Pro-Solid-900.otf »: pour 2 petites icônes grasses alors que les autres ne le sont pas

Remplacer ces polices dans votre éditeur d’eBook afin qu’elles ne soient pas présentes à l’exportation.

Réduire la taille d’un ePub: reconstruire le fichier

Pour reconstruire le fichier, il faut suivre correctement et à la lettre le format ePub. Suivez le guide ici: Reconstruire un fichier ePub

Compresser un ePub: comparatif des améliorations

Voici un récapitulatif des gains possibles avec mon fichier de base:

ÉtapePoids du fichiers
Origine160Mo
Optimisation PNG-57Mo
Conversion JPG-100Mo
Conversion JPG
+ Optimisation
-130Mo
Suppression des polices inutiles-3Mo
Suppression des images en doublons-1Mo

Pour mon eBook, j’ai choisi de convertir en JPG, optimiser les images et supprimer les polices inutiles et j’ai finalement obtenu un ePub de 29Mo! YEAH!

Mes idées d’investissements rentable avec un petit budget

Il n’est jamais trop tôt pour investir mais au début, quand on a un petit budget, la complexité est souvent rédhibitoire. C’est ce que j’ai ressenti au début. Pourquoi m’embêter à ouvrir un PEA chez un courtier pour placer 200€? Tout ça pour acheter quoi? Je vais partager ici mes idées d’investissements rentable avec un petit budget, notamment le crowdfunding immobilier ou le crowdfunding de startup.

Mon style d’investissement est très passif. Ça ne m’intéresse pas de passer des heures à suivre et modifier mes investissements. Mes idées d’investissements avec un petit budget sont donc assez passive et génèrent un revenu passif. De plus, ce sont des investissements très long terme. Si c’est pour investir durant 6 mois, ça n’ira pas. Imaginez plutôt un investissement sur 5 ans ou plus.

Une dernière précision: tout ces investissements sont risqués. Il reste possible que l’intégralité que de votre investissement disparaisse. Il appartient à vous seul de déterminer si telle entreprise ou telle placement va faire faillite ou va prospérer. Il est toujours moins risqué de ne pas mettre ses oeufs dans le même panier, c’est à dire en diversifiant vos investissements, même avec 200€ à chaque fois.

1. Le crédit

Ici on va parler de Mintos. C’est une place de marché où des investisseurs peuvent rencontrer des sociétés de crédits qui cherchent des financements.

Je vous rassure tout de suite, la rencontre est automatique et virtuelle. Concrètement vous allez déposez une certaine somme chez eux, disons 200€. Il n’y a pas de limite basse, cette idée d’investissement est vraiment accessible avec un tout petit budget.

Ensuite, vous pouvez définir votre stratégie ou choisir une stratégie pré-établie par Mintos. Une stratégie correspond à un ensemble de filtre pour déterminer à qui vous souhaitez prêter. Par exemple, j’ai fait une stratégie avec la seule condition que le prêt soit remboursé sous 6 mois.

Enfin, tout le reste est automatique. Mintos va déterminer à qui vous voulez prêter et votre argent sera alors placé.

Combien ça rapporte? Mintos annonce 12,8% en moyenne. Mon tableau de bord indique 11%. Un peu moins donc mais ça reste très bon.

La fiscalité. La flat-tax s’applique, les gains sont donc imposés à 30%. La déclaration d’impôt est a faire manuellement, chaque année, ce qui est un peu chiant mais bon c’est pas le bout du monde.

Les risques. Plusieurs risques s’empilent: la personne ayant fait le crédit peut ne pas rembourser, la société ayant donné le credit peut faire faillite et Mintos également. Il y a plusieurs indicateurs pour évaluer le risque d’un prêt. J’estime que le plus simple pour limiter les risques est de s’en tenir aux stratégies de Mintos, notamment la stratégie « Conservative ».

La plateforme Mintos n’est pas en français mais en anglais (et allemand, espagnol).

2. Le CrowdFunding Immobilier

Ahh l’immobilier. Investir dans un appartement à Paris avec 1000€, c’est possible!

Ici on parle de FundImmo, une plateforme de Crowdfunding Immobilier. Des sociétés immobilières ont un projet de construction et cherchent des financements auprès de petits investisseurs comme vous et moi.

Une à 2 fois par mois environ, un nouveau projet est proposé sur FundImmo. Vous pouvez choisir d’investir dedans ou non. L’investissement minimum est de 1000€, il faut donc avoir déjà ce budget pour profiter de cette idée d’investissement. Vous pouvez par exemple voir tous les projets déjà réalisés via FundImmo.

Le plus souvent, ce genre d’investissement s’apparente à des obligations. C’est à dire que votre argent est bloqué pendant la durée du contrat.

Combien ça rapporte? FundImmo annonce 9,2% en moyenne sur 2019. Le taux dépendra naturellement de l’investissement que vous choisissez car celui-ci est prévu à l’avance.

La fiscalité. La flat-tax s’applique, les gains sont donc imposés à 30%. L’avantage, c’est que c’est prélevé à la source par FundImmo, donc il n’y a rien à faire.

Les risques. La société à laquelle vous prêtez l’argent peut toujours faire faillite, tout comme FundImmo.

FundImmo est une startup française donc toute l’interface est en français.

3. Le CrowdFunding de Startup

Si vous êtes prêt à investir dans le nouveau Facebook ou Apple, c’est ici. Pour changer, on va parler des risques en premier. Ici, c’est risques maximum! En investissant dans une startup, vous n’avez aucune garantie de quoique se soit. D’ailleurs 90% des startups font faillite avant 5 ans. Vous aurez des parts, certes, mais aucune garantie que la startup en question ne verse des dividendes. De plus, il est presque impossible de récupérer son argent. Il faut espérer que l’entreprise entre un jour en bourse pour pouvoir revendre ses parts.

Ici on parle de Crowdcube. Ça fonctionne un peu comme Kickstarter ou FundImmo qu’on a vu juste avant. Il y a plusieurs projets et vous pouvez investir dans celui qui vous parle le plus.

Combien ça rapporte? Rien. Vous pourrez éventuellement un jour recevoir des dividendes mais rien n’est garanti. Mais avec le nez fin et de la chance, vous pourrez investir sur le futur Apple qui sera valorisé énormément dans 30 ans.

La fiscalité. La flat-tax s’applique, les gains sont donc imposés à 30%. L’avantage, c’est que comme vous n’allez probablement rien gagnés pendant plusieurs années, il n’y aura rien à déclarer ;).

Pourquoi investir sur CrowdCube alors? Pour faire comme les Business Angels! En investissant sur de nombreuses startups, il y en aura bien une qui fonctionnera, bien que 90% se casseront la gueule et vous perdrez tout.

4. Le Crowdfunding Écologie

Les énergies vertes et renouvelables font partie de l’avenir. Et pour investir dans les énergies renouvelables, il y a Lendopolis.

Encore une fois, c’est une plateforme de CrowdFunding donc vous allez pouvoir investir dans différents projets proposés. Une particularité tout de même, c’est que seuls les investissements géographiquement proche de vous sont éligibles. C’est généralement votre département et ceux limitrophes. Ici on parle donc de Lendopolis. On peut investir à partir de 20€ donc cette idée d’investissement est vraiment compatible avec un tout petit budget.

Combien ça rapporte? Ça dépend des projets et ça tourne autour de 5%. Suivant le type d’investissement, vous n’aurez les gains qu’à la fin.

Les risques. La société à laquelle vous prêtez l’argent peut toujours faire faillite ou ne pas rembourser.

La fiscalité. La flat-tax s’applique, les gains sont donc imposés à 30%.

5. La bourse / Les ETFs

Pour investir en bourse, j’ai 2 options.

La première c’est d’ouvrir un compte bancaire chez Revolut, et d’acheter des actions US avec Revolut Trading. J’ai mon compte chez Revolut depuis plusieurs années, c’est le compte que j’utilise le plus, je recommande, même en dehors de la partie trading. Les opérations que vous effectuez via Revolut Trading s’apparentent à celles sur un compte titre ordinaire (CTO).

L’application Revolut est extrêmement bien faite. Tout est clair et fluide. On peut acheter facilement des actions US comme Apple, Alphabet, Amazon ou Wallmart.

L’autre option, c’est de passer par un courtier français et d’ouvrir un compte titre ordinaire (CTO) ou encore mieux, ouvrir un plan épargne actions (PEA). J’ai ouvert un PEA chez Bourse Direct.

L’application Bourse Direct est atroce. C’est moche, ça ne se souvient pas du mot de passe, c’est pas intuitif. La note de 1,8/5 de l’AppStore est méritée! Sur le marché, toutes les applications se valent. Mon amie a son PEA à la Société Générale et c’est le même niveau, l’application bug quand on en a besoin.

Néanmoins, il faut faire avec. Comme on fait du long terme, on ne va pas avoir le nez dans l’application tous les jours. J’ai investi sur un ETF qui suit le MSCI World, c’est à dire un index des plus grosses bourses des pays développés (chez Amundi: LU1681043599). Actuellement, on peut acheter une part pour 350€.

Combien ça rapporte? Un ETF sur le MSCI World a rapporté en moyenne 10% par an depuis 10 ans.

La fiscalité. La flat-tax s’applique, les gains sont imposés à 30%. Si vous avez un PEA depuis plus de 5ans, l’imposition tombe à 17,2%.

Les risques. Ça dépend du produit que vous choisissez. Sur un ETF MSCI World, la compagnie qui gère l’ETF peut faire faillite et l’indice MSCI varie en fonction de la bourse, à la hausse comme à la baisse.

6. Soi-même

Ma dernière idée d’investissement rentable avec un petit budget est à pas sous estimer. Ne sous estimez jamais votre propre rentabilité! C’est bien beau d’acheter un ETF qui est sensé faire 10% par an mais ce n’est rien à côté de ce que vous pouvez faire pour vous même.

Vous pouvez investir votre trésorerie pour diminuer vos frais, par exemple:

  • payer certaines dépenses annuellement ou en avance en contrepartie d’une ristourne. Par exemple, j’ai payé mon serveur chez AWS en avance pour 3 ans contre une remise annuelle de 62%. Au final, c’est une rentabilité supérieure à n’importe quel investissement ici, net de taxe!
  • investissez pour diminuer vos frais fixes, par exemple l’isolation de votre maison ou des systèmes qui optimisent votre consommation électrique

Une autre option à ne pas ignorer, c’est d’investir sur vos connaissances. Vous pouvez investir dans une formation certifiante qui vous permettra d’avoir un autre métier, mieux rémunéré. Par exemple, une formation à 5000€ qui permet de gagner 220€ de plus par an correspond à une rentabilité annuelle de 10% sur 5 ans et 15% sur 10 ans. C’est là aussi supérieur à n’importe quel investissement ici, que ce soit la bourse ou l’immobilier.


Si vous avez d’autres idées d’investissements rentables avec un petit budget, dites moi dans les commentaires. Et n’oubliez pas de diversifier. J’ai personnellement investit un peu dans chacune des options que j’ai présenté.

Créer une clé usb bootable pour mac (et depuis macOs)

Sur les ordinateurs modernes, le bios est enterré et c’est l’UEFI qui a pris la place. C’est le cas des mac. Pour créer une clé usb bootable de Kali depuis un mac, il faut qu’elle soit préparer pour UEFI! Sinon, elle ne sera pas bootable depuis un mac ou un autre ordinateur récent. J’ai fait cette opération avec macOS Catalina, mais c’était pareil avant (Mojave, High Sierra, etc.).

Il faut que l’image en question prenne en charge l’EFI Boot. Ce n’est pas toujours le cas, et ça dépend aussi des ordinateurs. C’est le cas pour mon image de Kali.

1. Formatter la clé usb avec une table de partition GUID

Pour faire très simple, le bios lit le MBR pour connaitre les partitions, l’UEFI lit la table de partition GUID. Parfois il peut y avoir les 2. Nous, on va donc formatter notre clé USB avec une table de partition GUID.

On utilise l’outil natif « Utilitaire de Disque ». Par défaut, il n’affiche pas le choix MBR/GUID. Pour l’activer, aller dans « Présentation > Afficher tous les appareils ».

Afficher tous les appareils sur l’Utilitaire de Disque

On sélectionne ensuite la clé USB et on clique sur le bouton « Effacer ». Ici je choisi de formatter la clé USB en MS-DOS (FAT) avec une table de partition GUID.

Effacer la clé USB

À l’issue de l’opération, démontez le disque. Ce sera nécessaire pour l’étape 3, la copie.

Notez aussi le numéro de disque, on en aura besoin plus tard. Avec votre disque USB sélectionné, aller dans « Infos » (en haut à droite) et noter le nom sous « Noeud d’appareil BSD ». Chez moi, c’est disk2. (Si vous avez disk2s2, c’est que vous avez sélectionné la 2ème partition du disk2).

Chez moi, ma clé USB correspond au disk2

2. Transformer l’image

Sur un mac, une image ISO n’est pas nativement bootable. Il faut la transformer au format UDRW pour qu’elle puisse être utilisé pour créer notre clé usb bootable sur mac.

Après avoir téléchargé l’image ISO souhaité (pour moi, Kali Linux), on passe à la transformation, toujours avec l’utilitaire de Disque. Menu « Image > Convertir », on choisi notre image ISO, et on la converti en « lecture/écriture ».

Créer usb bootable mac conversion
Conversion de l’image ISO en UDRW

Avec le terminal. C’est possible aussi. La commande pour convertir le fichier fichier.iso en fichier-converti.dmg est:

hdiutil convert -format UDRW -o fichier-converti.dmg fichier.iso

3. Copier l’image

Dernière étape, on va copier l’image UDRW. Cette fois, il faut passer obligatoirement par le terminal, pas moyen de le faire depuis l’outil Utilitaire de Disque.

Reprenez le numéro du disque à la fin de l’étape 1. Pour moi, c’était disk2. Pour copier l’image, on passe par la commande dd. On le fait avec le compte administrateur car le compte utilisateur n’a pas les droits habituellement. C’est pourquoi sudo demandera votre mot de passe.

sudo dd if=fichier-converti.dmg of=/dev/rdisk2 bs=1m

On utile rdisk2 plutôt que disk2 car c’est « 20 fois plus rapide », en accédant au disque de manière plus directe. Mais ça peut quand même prendre un bon bout de temps. Pour mon image de 3,7Go, ça a pris 2mn en USB3 et 26mn en USB2. Pour voir l’avancement, appuyez sur Ctrl+T.

Si vous avez un message d’erreur « Device is busy », c’est certainement que le périphérique est encore monté (voire la fin de l’étape 1). Pour le démonter, faites:

diskutil unmountDisk /dev/disk2

C’est prêt! On a réussi à créer une clé USB bootable sur mac!

4. Redémarrez

Au redémarrage, appuyez sur la touche « Option » du mac pour afficher les options de démarrage, dont la clé USB.

Publié le
Catégorisé comme macOs Étiqueté ,

Le même SSID pour le WiFi 2,4Ghz et 5Ghz?

Avec la généralisations des routeurs 5Ghz, je me suis posé la question s’il était préférable de conserver le même SSID pour le WiFi 2,4Ghz et 5Ghz, ou s’il valait mieux les différencier.

En théorie oui c’est mieux mais en fait, non.

Lorsqu’un réseau WiFi ayant le même SSID (le même nom) et la même sécurité mais émettant sur des fréquences différentes, le périphérique est libre d’utiliser celui qui lui plait.

En théorie, c’est génial: mon PC / Smartphone / Smart TV se connecte tout seul au meilleur réseau. Mais comment fait-il pour savoir quel réseau est le meilleur? Cette partie est inconnue et c’est bien le problème.

Ce que je constate sur mon iPhone XS et mon Macbook, c’est qu’il se connecte à celui qui a le meilleur signal. Comme le WiFi 2,4Ghz traverse mieux les murs, c’est souvent celui-ci que je capte mieux – bien qu’il soit plus lent!

La seule solution est de différencier les SSID des réseaux 2,4Ghz et 5Ghz, puis d’indiquer la priorité de connexion sur macOs/windows. Lorsque ce n’est pas possible, vous pouvez toujours n’enregistrer qu’un seul des 2 réseaux.

Ma recommandation, c’est donc de ne pas avoir le même SSID pour WiFi 2,4Ghz et 5Ghz: différenciez-les!

Publié le
Catégorisé comme Réseau Étiqueté

Optimiser les images sur macOs facilement avec ImageOptim

Il est très important d’optimiser les images pour le web. Le site sera plus rapide et mieux référencé. L’optimisation des images est une part importante du SEO technique. J’ai longtemps chercher une solution idéale pour optimiser les images sur macOs facilement, et j’ai enfin trouvé!

Pour WordPress, je préfère optimiser les images avant de les télécharger sur le site. La raison est toute simple: WordPress est souvent bien assez chargé de plugin, autant éviter d’un ajouter. D’une manière générale, si je peux faire quelque chose sans plugin WordPress, je n’hésite pas.

ImageOptim pour optimiser les images sur macOs

ImageOptim, c’est gratuit, c’est Open-Source et l’interface graphique est agréable. On part déjà sur de bonnes bases. Pour l’installer, télécharger l’archive sur le site officiel: https://imageoptim.com, décompresser l’archive et copier le programme dans « Applications ». ImageOptim n’est pas disponible sur HomeBrew :(.

ImageOptim intègre et cumule tous les optimiseurs d’image les plus utilisés:

  • JPEG (.jpg / .jpeg)
    • jpegoptim
    • guetzli
  • PNG
    • PNGOUT
    • OxiPNG
    • AdvPNG
    • PNGCrush
  • GIF (ou Jif?)
    • Gifsicle
  • SVG
    • SVGO
    • SVGCleaner

On peut facilement choisir entre une compression sans perte (Lossless) ou avec, on peut conserver le timestamp initial, on peut supprimer les informations EXIF.

J’ai opté pour une compression avec perte, en suivant les recommandations de Google pour le JPEG: « au delà de 85%, la taille de l’image grandit vite mais n’apporte que peu d’amélioration visuelle » (source: Google PageSpeed du 9 février 2019). Pour le format PNG et SVG, j’ai également opté pour une compression avec perte, pour une qualité de 90%. Bien entendu, je supprime toutes les informations EXIF et la correction Gamma des PNG (là encore, sur recommandation de Google). Enfin, j’ai mis la vitesse d’optimisation la plus lente pour avoir la meilleure compression.

Utilisation d’ImageOptim

Pour optimiser les images sur macOs avec ImageOptim, c’est très simple. Un clic droit sur l’image puis « Image Optimize » et le tour est joué. La compression peut prendre plusieurs secondes suivant la taille de l’image et la puissance de votre ordinateur.

Après compression, l’image est remplacée: il n’y a pas de copie de sauvegarde de l’image d’origine. Pour mon utilisation, ça m’arrange mais sachez le avant de traiter en lot des images précieuses.

Optimiser les images sur macOs clic droit

On peut traiter une image ou un lot d’image tout aussi simplement, en les sélectionnant et en faisant un clic droit.

ImageOptim est très efficace. Depuis que je l’utilise, Google PageSpeed n’a plus rien à redire sur mes images.

Exemple d’optimisation d’image

Démonstration sur une image au hasard. Au départ, cette image JPEG fait 9,8Mo. Après optimisation, on arrive à 5,9Mo. A l’arrivée, l’image est presque 40% plus légère. Ça veut également dire un coût de bande passante 40% moins élevé pour la même image.

OptimImage est simple, gratuit et efficace. Il fait une tâche et la fait bien. On serait beaucoup plus heureux si tout était aussi simple :).

Comment faire un audit technique de site web? Ma méthode efficace

Vous avez tout compris, il est important de faire un audit SEO technique de votre site web. L’aspect technique est désormais une partie importante du SEO, il ne faut surtout pas le bâcler! Pour qu’un site soit bien classé, il faut qu’un site soit performant! Pour faire une analyse de la performance d’un site web, vous pouvez aussi utiliser mes outils SEO indispensables et gratuits.

L’audit SEO technique couvre 2 principaux points:

  • Optimiser le temps de crawl de Google
  • PERFORMANCE

Pour être bien classé, il faut que Google soit content. Google est content quand il est flatté. Suivez donc toutes les recommandations de Google, à la lettre.

Le SEO Technique est technique. Par conséquent, il n’est pas forcément à la portée de tous. Il faudra certainement aller modifier la configuration de votre serveur.

Optimiser son temps de crawl: liens morts, sitemap et robots.txt

C’est quoi le temps de crawl? Chaque jour, Google va passer quelques secondes à scanner votre site. Plus votre site est populaire, plus Google passera de temps chez vous. Chaque seconde est alors précieuse. C’est d’autant plus important lorsque vous êtes mal classé ou lorsque vous débutez: votre budget crawl est très faible.

Par exemple, sur un petit site, j’ai des statistiques de crawl à 16 pages/jour et 243Ko téléchargés. Sur un autre site, plus important, j’obtiens alors 358 pages/jour et 12Mo téléchargés. Vous pouvez aussi consulter vos statistiques de crawl dans la Google Search Console.

L’objectif ici, c’est de rentabiliser au maximum le temps crawl, c’est-à-dire diriger Google vers les pages les plus importantes et le détourner de pages inutiles ou chronophage comme, par exemple, les pages Mentions légales, ou les résultats de pages de recherche.

Ces 3 points sont la base d’un audit SEO technique d’un site web. Ils sont très simples à faire alors ne les négligez pas!

Vérifier les liens morts

Si votre site contient des liens morts, c’est un problème. Pensez toujours au visiteur en premier. Un visiteur qui constate un lien mort pense que votre site n’est pas à jour et s’en va. Un visiteur qui s’en va rapidement, c’est une dégradation de votre classement. Pour le temps de crawl, inutile de cramer du budget sur des liens morts.

Pour analyser les liens morts gratuitement, on va utiliser le logiciel linkchecker sur Linux. Vous pouvez l’utiliser sur votre serveur directement.

Pour installer linkchecker sur Ubuntu 18.04:

sudo apt install linkchecker

Pour analyser un site:

ubuntu@flogg.fr:~$ linkchecker https://flogg.fr --check-extern
 Statistics:
 Downloaded: 6.02MB.
 Content types: 75 image, 4448 text, 0 video, 0 audio, 4061 application, 4 mail and 739 other.
 URL lengths: min=13, max=1772, avg=57.
 
 That's it. 9327 links in 402 URLs checked. 0 warnings found. 0 errors found.

Recommandation: Analysez votre site et corrigez tous les liens cassés.

Le fichier robots.txt

Le fichier robots.txt, placé à la racine du domaine, donne des indications aux bots pour analyser le site. Ces indications sont très basiques, ça se limite à autoriser ou non l’accès à une page. Toutefois, Google s’autorise à indexer cette page si des liens pointent vers celle-ci. Plus d’informations sur le fichier robots.txt sur l’aide de Google Search Console.

Vous pouvez consulter celui de n’importe quel site. Par exemple, vous pouvez consulter le mien: https://flogg.fr/robots.txt.

Recommandation: Vérifiez qu’aucune page n’est bloquée inutilement, et que les pages superflues sont bloquées.

Le fichier sitemap.xml

Le fichier sitemap.xml, c’est un peu l’annuaire du site. Il indique aux bots la liste des pages du site, ainsi que leurs dates de mise à jour. On peut aussi le découper en plusieurs fichiers. Ce fichier est souvent généré automatiquement, avec YoastSEO pour WordPress, Drupal XML Sitemap pour Drupal, etc.

Google sait analyser votre site, ainsi le sitemap est la plupart du temps superflu. Il peut servir par exemple pour indiquer une page lointaine de votre site. Mais si une page est mal référencée au sein même de votre site, elle le sera également sur Google. (Plus d’informations sur le sitemap sur l’aide de Google Search Console)

Néanmoins, ça fait partie des basiques à ne pas négliger. C’est simple à mettre en place, alors utilisez-le! Vous pouvez également indiquer la présence de votre sitemap dans Google Search Console pour lui demander de venir vous indexer.

Recommandation: Utilisez un plugin qui le génère automatiquement.

La performance d’un site web lors d’un audit technique

Lors d’un audit SEO technique, l’essentiel des éléments doit être axé sur la performance du site web. Un site non performant sera mal référencé.

Lors d’un audit SEO Technique, plusieurs points sont abordés:

  • Les versions logiciels
  • La configuration HTTPS (+ HTTP/2 +OCSP stapling)
  • IPV6
  • La Compression GZIP / Brotli
  • Cache
  • Les images

Pour analyse la performance d’un site web avec un outil gratuit, vous pouvez consulter ma liste des outils SEO indispensables.

Analyse performance site web
Ma page est assez bien optimisée

Analyse des logiciels

Pour héberger un site WordPress, Drupal ou Symfony, vous aurez besoin au minimum d’un serveur web et de PHP.

Pour le serveur Web, il y en a 3 connus: Apache2, Nginx, et IIS. Sauf besoin particulier, il faut utiliser Nginx qui est le plus rapide.

Pour PHP, il faut utiliser si possible la dernière version. En tout cas, il est nécessaire d’utiliser au moins PHP 7+ qui est beaucoup plus rapide que les anciennes versions 5.4.

Vous pourrez trouvez des informations directement sur le serveur ou parfois en utilisant curl, dans l’entête HTTP:

Recommandation: Utilisez Nginx et la dernière version de PHP.

➜  ~ curl --head -H "Accept-Encoding: gzip" https://flogg.fr

 server: nginx
 x-powered-by: PHP/7.3.11

Optimiser la configuration HTTPS

Utiliser le HTTPS

Il est nécessaire d’utiliser le protocole HTTPS. Si votre site n’est pas encore sécurisé (HTTP), migrez alors vers HTTPS le plus rapidement possible. Google le recommande, alors faites-le! 🙂

Pour passer au HTTPS, il faut modifier la configuration de Nginx. Ensuite, il faut paramétrer une redirection de toutes les pages vers leurs versions sécurisées. Là aussi, ça se passe dans la configuration Nginx. Pour vérifier si ça fonctionne, tester une page non sécurisée:

➜  ~ curl --head http://flogg.fr 
 HTTP/1.1 301 Moved Permanently

Recommandation: Utilisez le HTTPS

Utiliser le protocole HTTP/2

Au-delà de l’aspect sécurisé, le HTTPS permet aussi d’activer le protocole HTTP/2 qui permet d’accélérer la communication entre le serveur et les visiteurs. Ça ne coûte rien mais il faut là aussi modifier la configuration Nginx. Pour vérifier si votre site utilise HTTP/2, utilisez curl.

➜  ~ curl --head https://flogg.fr
 HTTP/2 200

Recommandation: Utilisez le HTTP/2

Utiliser l’OCSP Stapling

La sécurisation de la connexion par HTTPS apporte toutefois quelques lenteurs, pour vérifier la légitimité du site notamment. On peut limiter cet impact en utilisant la technique de l’OCSP Stapling. Pour vérifier si c’est le cas:

➜  ~ openssl s_client -connect flogg.fr:443 -tls1  -tlsextdebug  -status

Dans la réponse, vous devriez trouver une section:

OCSP response: 
 ======================================
 OCSP Response Data:
     OCSP Response Status: successful (0x0)
     Response Type: Basic OCSP Response
     Version: 1 (0x0)
     Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
     Produced At: Nov 10 08:37:00 2019 GMT
     Responses:
     Certificate ID:
       Hash Algorithm: sha1
       Issuer Name Hash: 7EE66AE7729AB3FCF8A220646C16A12D6071085D
       Issuer Key Hash: A84A6A63047DDDBAE6D139B7A64565EFF3A8ECA1
       Serial Number: 042D1E82A6FBF81510DD0C5D8BAAAF8BDE2F
     Cert Status: good
     This Update: Nov 10 08:00:00 2019 GMT
     Next Update: Nov 17 08:00:00 2019 GMT
 

     Signature Algorithm: sha256WithRSAEncryption
          69:de:97:b6:bb:58:2e:c9:ec:43:bd:ca:9c:1e:97:08:1d:13:
          5f:1b:91:a9:fa:79:5f:2c:b4:d1:47:06:a9:ef:ca:21:c6:07:
          40:88:53:e8:5e:6b:41:64:92:8e:de:21:7c:c8:ac:c9:b7:20:
          1b:ab:76:eb:bb:e7:bc:5f:72:fe:cc:6f:78:4f:af:21:b1:60:
          ee:1c:11:84:c5:0d:a7:b1:7c:f3:26:9d:6c:10:f8:5b:ba:47:
          f3:31:dc:31:68:9f:d7:bc:fd:f0:48:7e:05:c5:0b:24:15:84:
          7b:39:8d:a7:91:56:64:72:6b:d4:3c:cb:88:fe:8e:ab:c5:40:
          8c:46:fe:b9:4e:cc:22:6a:00:ce:e1:8e:02:cf:98:5f:82:e1:
          2a:00:55:84:4b:16:3d:51:d9:83:8d:0c:2f:57:e0:94:9f:b7:
          68:99:75:c2:31:97:86:b7:ad:b7:be:f9:8d:cd:89:a7:0c:40:
          1c:e0:e7:41:da:8d:98:0b:7f:b8:5a:82:ca:d4:69:f6:b3:ea:
          86:4c:fe:7b:92:9f:fc:42:64:61:9f:28:b4:1b:e3:63:a2:74:
          e1:cb:46:b0:06:b9:85:b5:7a:30:5d:35:12:e9:b2:c1:b0:34:
          1d:b3:fd:e4:0b:ef:64:27:de:31:d7:70:2a:1d:cd:08:7c:ca:
          e0:5a:b2:ab
 ======================================

Je vous avais prévenu, un audit technique, c’est technique!

Vérifiez la qualité de la connexion SSL

Toutes les connexions HTTPS ne se valent pas malheureusement. Certaines configurations sont « à trous », c’est-à-dire qu’il y a des failles connues. Configurez donc le HTTPS sur votre serveur Web en tenant compte des meilleures pratiques actuelles.

Pour tester la qualité de la connexion SSL, le service en ligne de référence est SSLLabs. Vous devez alors obtenir une note au moins égal à A+.

Recommandation: Utilisez l’OCSP Stapling et obtenez une note d’au moins A+ au test SSLLabs.

Compatibilité IPv6 & audit technique

En 2019, il est nécessaire qu’un site web soit compatible avec IPV6. Pour vérifier que votre site est accessible en IPV6, vous pouvez le voir dans le test de SSL Labs. Par exemple, pour mon site, c’est la ligne indiquant le test sur l’adresse 2a05:d012:adb:cc32:233:5a3b:d05a:663d.

La compatibilité IPv6 se passe au niveau du serveur DNS et du serveur Web.

Pour tester la configuration du DNS pour IPv6, utilisez dig:

➜  ~ dig flogg.fr AAAA

;; ANSWER SECTION:
 flogg.fr. 300 IN AAAA 2a05:d012:adb:cc32:233:5a3b:d05a:663d

Pour tester la configuration du serveur pour IPv6, vous pouvez utiliser un service en ligne, par exemple ipv6-test.com.

Recommandation: Prenez en charge l’IPv6.

La compression GZIP / Brotli

Toujours pour améliorer le transfert d’informations, il est utile de compresser les informations transmises entre le serveur et le visiteur.

Pour tester la compression GZIP d’un site, on utilise curl:

➜  ~ curl --head -H "Accept-Encoding: gzip" https://flogg.fr
 
content-encoding: gzip
Audit technique SEO avec Curl
HTTP2, Compression GZIP et page en cache

La compression Brotli est un autre type de compression, plus rapide. C’est certainement l’avenir, mais il reste encore des navigateurs qui ne le supporte pas. Nginx ne l’intègre pas encore en standard, il faut donc le compiler spécialement avec cette option. Mais ça deviendra important dans les années à venir lors d’un audit technique.

Recommandation: Compressez le contenu avec GZIP.

La stratégie de Cache

Avec un CMS comme WordPress, les pages sont générées à la demande. L’inconvénient, c’est que ça prend beaucoup de temps, le site est alors lent. La génération de page à la demande, c’est donc superflu dans beaucoup de cas.

Cet article par exemple. Il est n’est pas nécessaire de régénérer la page pour chaque visiteur, car c’est le même contenu. En revanche, il est plus efficace de conserver en mémoire la page générée pour la resservir directement au prochain visiteur. Cette technique, c’est donc le cache.

Il y a plusieurs méthodes pour mettre en place une stratégie de cache. Ma préférée, c’est le cache FastCGI de Nginx. Par conséquent, c’est celui que j’utilise. J’indique dans l’entête HTTP si la page envoyée est issue du cache ou non, vous pouvez donc le voir avec curl:

➜  ~ curl --head https://flogg.fr

x-fastcgi-cache: HIT

HIT signifie que le cache est utilisé, MISS signifie qu’on n’avait pas de page préchargée en mémoire, BYPASS signifie qu’il ne fallait pas utiliser le cache dans ce cas (lorsque le visiteur vient de laisser un commentaire par exemple).

Recommandation: Mettez en place un cache.

Optimiser les images

Une image peut contenir beaucoup d’informations qui peuvent être superflues lors de l’affichage sur un site web. Supprimez alors toutes les informations inutiles de l’image en utilisant un logiciel pour optimiser les images comme celui que j’utilise.

De plus, s’il est nécessaire de faire défiler le site pour faire apparaître une image, il faut alors qu’elle soit chargée plus tard. C’est ce qu’on appelle le Lazy Load.

Vous pouvez utiliser l’un des outils SEO indispensables que je recommande. Pour l’analyse de la performance d’un site web, je conseille notamment l’outil gratuit Web.Dev.

Optimiser les images sur macOs clic droit
Sur macOs, j’utilise ImageOptimize pour optimiser les images

Recommandation: Optimisez toutes les images et retardez le chargement des images qui ne sont pas en haut.

Bilan de l’audit SEO technique d’un site web

Si vous avez correctement mis tous ces éléments en place, vous avez donc tous les prérequis pour être bien classé sur Google. Si votre contenu est aussi bon que l’aspect technique, alors il suffit d’attendre quelques mois pour voir fleurir vos articles en 1ère page.

Le SEO, c’est mon métier. J’ai déjà fait grimper des sites en partant de 0. C’est possible! N’hésitez pas à me contacter si vous avez besoin d’aide pour faire un audit SEO technique ou pour mettre en place les actions nécessaires.

Plugins pour accélérer WordPress: éléments chiffrés!

J’ai longtemps tâtonné dans les plugins WordPress pour obtenir la configuration la plus efficace. Mon site se trouve sur un serveur virtuel (VPS) chez Scaleway. Il coûte 3€ par mois. Au fur et à mesure que la fréquentation augmentait, je me demandais à partir de quel moment je devais faire grossir le serveur. Conclusion, c’est pas pour tout de suite, ce petit serveur sait gérer un flux énorme, et ce grâce à 2 plugins pour accélérer WordPress.

Configuration de départ

Pour faire ce test, j’ai choisi un article du site et j’utilise deux outils pour mesurer la vitesse:
Pingdom: pour mesurer la performance unitaire du site
Loader.io: pour mesurer la montée en charge, avec 100 requêtes par secondes durant 1mn

Au départ, le site tourne sur nginx sans option particulière (gzip est activé par défaut). Il n’y a pas de plugins pour accélérer WordPress. Le CDN Cloudflare est configuré mais en mode « développement » pour accéder directement au site.

Résultat Pingdom:
– Note: 74%
– Vitesse de la page: 5,68s
– Nombre de requêtes: 30

Résultat Loader:
– Test avorté à la 2ème seconde car le taux d’erreur est trop élevé (= le serveur met trop de à répondre)

Pas génial donc…

Plugin Autoptimize

J’ai choisi de commencer par Autoptimize. Ce plugin permet de:
– Minifier le code HTML
– Minifier et unifier en un seul fichier le code CSS
– Minifier et unifier en un seul fichier le code Javascript

Plus on a de plugins, plus on a de fichiers css et javascript qui s’ajoutent et qui dégradent la vitesse de chargement du site. Parfois, même les fichiers incluent dans les thèmes nécessitent un travail d’optimisation.

Est-ce que le plugin fait ce qu’il annonce? Oui! Et je suis le premier surpris car des plugins de minification qui ne marchent pas, j’en ai vu des dizaines. Après activé la minification HTML, CSS et Javascript, WordPress charge un seul fichier css dont le nom contient « Autoptimize ». WordPress charge toujours le fichier JQuery.js séparément (il est dans la liste blanche de autoptimize), et les autres fichiers ne font plus qu’un. Le code HTML est également minifié. C’est parfait! Ce plugin ne fait qu’une chose et le fait très bien.

Résultat Pingdom:
– Note: 85% (+9%)-
– Vitesse de la page: 1,96s _(-65%)

– Nombre de requêtes: 14 (-53%)

Résultat Loader:
– Test avorté à la 3ème seconde

C’est mieux, le site est plus rapide en accès direct. Par contre il ne tient pas encore la charge.

HTTP2

HTTP2 est une nouvelle norme. La plupart des navigateurs la supporte désormais. Je ne connais pas les détails mais cette norme est sensé rendre internet plus rapide.

HTTP2 s’active au niveau de Nginx. Il suffit d’ajouter « http2 » au niveau de la ligne « listen »:

listen 443 ssl http2;

Résultat Pingdom:
– Note: 85%
– Vitesse de la page: 1,33s (-30%)
– Nombre de requêtes: 14

Résultat Loader:
– Test avorté à la 3ème seconde car le taux d’erreur est trop élevé (= le serveur met trop de à répondre)

Encore une nette amélioration du temps de chargement unitaire. Tout ça rien qu’avec un changement de norme.

Le plugin Cache-Enabler

Générer une page à chaque accès c’est bien beau mais ce n’est pas efficace. Pour tenir une montée en charge, il va falloir générer des pages statiques qui seront envoyées aux visiteurs. J’ai choisi d’utiliser le plugin Cache-Enabler car il me paraissait simple. Il ne veut pas trop en faire comme « W3 Total Cache » par exemple. Ce plugin va uniquement créer une page html statique pour chaque page ou article du site. En configurant Nginx tel que recommandé par le plugin, le client accédera directement à la page en cache sans passer par PHP.

Pour profiter à fond du plugin, il faut donc changer sa configuration nginx tel quel préconisé par le plugin.

Il vous faut remplacer la zone « location » de votre configuration qui doit ressembler à ça:

location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
<code> }

Par le code fourni par le plugin:

set $cache_uri $request_uri;

# bypass cache if POST requests or URLs with a query string
 if ($request_method = POST) {
 set $cache_uri 'nullcache';
 }
 if ($query_string != "") {
 set $cache_uri 'nullcache';
 }

# bypass cache if URLs containing the following strings
 if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
 set $cache_uri 'nullcache';
 }

# bypass cache if the cookies containing the following strings
 if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
 set $cache_uri 'nullcache';
 }

# custom sub directory e.g. /blog
 set $custom_subdir '';

# default html file
 set $cache_enabler_uri '${custom_subdir}/wp-content/cache/cache-enabler/${http_host}${cache_uri}index.html';

# webp html file
 if ($http_accept ~* "image/webp") {
 set $cache_enabler_uri '${custom_subdir}/wp-content/cache/cache-enabler/${http_host}${cache_uri}index-webp.html';
 }

location / {
 gzip_static on; # this directive is not required but recommended
 try_files $cache_enabler_uri $uri $uri/ $custom_subdir/index.php?$args;
 }

Pensez bien à recharger le serveur nginx. Sur Debian/Ubuntu, c’est:

sudo service nginx reload

Résultat Pingdom:
– Note: 86% (+1%)
– Vitesse de la page: 0,736s (-44%)
– Nombre de requêtes: 14

Résultat Loader:
– Temps de réponse moyen: 118ms
– Taux d’erreur: 0%

C’est une claque! Je ne pensais pas le plugin de cache si efficace. L’article se charge en 0,7s, c’est parfait. Le serveur est capable de servir 100 demandes par secondes, durant une minute, sans broncher, sans erreur.

Pour aller plus loin

Avec 100 requêtes par secondes, le site gère sans problème. Peut-on aller plus loin? J’ai essayé 500 requêtes par seconde:

Résultat Loader @500req/s:
– Temps de réponse moyen: 121ms
– Taux d’erreur: 0%

Aucun problème pour 500. On peut pousser encore? 1000 requêtes par seconde?

Résultat Loader @1000req/s:
– Temps de réponse moyen: 182ms
– Taux d’erreur: 0,2%

Des erreurs commencent à arriver mais ça reste acceptable. Durant le test, les ressources du serveur sont à 100%, signe qu’on ne pourra pas aller beaucoup plus loin.

Plugins pour accélérer WordPress: en conclusion

L’objectif était d’améliorer la vitesse de son site WordPress. Au départ, notre site chargeait en plus de 5s et ne tenait pas la charge. A l’arrivée, notre site charge en 0,7s et est capable de gérer 1000 requêtes par secondes. Le tout grâce à 3 points clefs:
– HTTP2
– Plugin Autoptimize
– Plugin Cache-Enabler

A ma question « quand devrais-je augmenter la puissance de mon serveur », la réponse est donc:
– Quand le site devra afficher plus de 1000 requêtes par seconde;
– Ou quand le site devra afficher plus de 3,6 millions de page par heure

Avec un serveur à 3€, on peut faire un site WordPress capable d’afficher plus de 3 millions de page par heure. Ça devrait nous suffire pour l’instant =).