Créer son sitemap avec Linux






Se construire un sitemap permet :
- de dresser l'inventaire de ses pages, et de sélectionner uniquement celles qui sont utiles et fonctionnelles
- de satisfaire la curiosité des robots des moteurs de recherche
- d'orienter celle-ci si vous choisissez le format .xml
De toute façon, il faut commencer par le format .txt ; si besoin, remplacez "htm" par "html" et "http" par "https".


Rédiger son sitemap.txt
Vous vous installez en console dans votre site, et vous tapez :


       ls *htm > sitemap1.txt


Ce qui donne pour mon site :
abces-de-cornee.htm
aice.htm
... (447 lignes en tout) ...
zonule.htm
zonulo.htm
Sur toutes ces pages, certaines sont redirigées et désuètes, qu'il faut supprimer, afin de ne garder que les pages accessibles depuis la page "souche" (index.htm). Avec l'éditeur de votre choix, dégraissez votre "sitemap1.txt" pour produire "sitemap2.txt" :
abces-de-cornee.htm
akuta-glaukomo.htm
... (un peu moins de 400 lignes en tout) ...
zonule.htm
zonulo.htm
Ce fichier sitemap2.txt dresse la liste propre de toutes les pages à présenter aux robots, qui exigent des adresses absolues complètes. Il faut donc rajouter avant chaque ligne "http://edouardbenois.fr/" (remplacez l'expression par "votre-nom-de-domaine") :


       sed 's/^/http:\/\/edouardbenois.fr\//' sitemap2.txt > sitemap.txt


Et voila le sitemap.txt, à déposer à la racine du site, ou bien à tout autre endroit indiqué dans le fichier robots.txt (lui-même obligatoirement à la racine du site).


Rédiger son sitemap.xml
D'après mon access_log de plus de 4 mois, les robots demandent 6 fois plus le fichier sitemap au format .xml qu'au format .txt, bien que le format .xml soit au moins 1,5 fois plus lourd. La syntaxe est bien expliquée ici.
Commençons donc par encadrer chaque adresse par <loc> et </loc> :


       sed -e 's/^/<loc>/' -e 's/$/<\/loc>/' sitemap.txt > sitemap3.txt


Ce qui me donne :
<loc>http://edouardbenois.fr/abces-de-cornee.htm</loc>
<loc>http://edouardbenois.fr/akuta-glaukomo.htm</loc>
...
<loc>http://edouardbenois.fr/zonule.htm</loc>
<loc>http://edouardbenois.fr/zonulo.htm</loc>
Ensuite, il faut insérer entre chaque ligne d'adresse ces deux lignes :
       </url>
       <url>
Donc :


       sed 'i </url>\n<url>' sitemap3.txt > sitemap4.txt


Ce qui fournit :
</url>
<url>
<loc>http://edouardbenois.fr/abces-de-cornee.htm</loc>
</url>
<url>
<loc>http://edouardbenois.fr/akuta-glaukomo.htm</loc>
</url>
...
<url>
<loc>http://edouardbenois.fr/zonule.htm</loc>
</url>
<url>
<loc>http://edouardbenois.fr/zonulo.htm</loc>
Il n'est pas difficile :
- de déplacer la première ligne (</url>) à la fin du fichier
- puis de rajouter les deux premières lignes et la dernière ligne de la syntaxe .xml en haut et en bas respectivement :
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

</urlset>
Ce qui donne un sitemap.xml basique, qui n'attend que nos modifications :
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://edouardbenois.fr/abces-de-cornee.htm</loc>
</url>
<url>
<loc>http://edouardbenois.fr/akuta-glaukomo.htm</loc>
</url>
...
<url>
<loc>http://edouardbenois.fr/zonule.htm</loc>
</url>
<url>
<loc>http://edouardbenois.fr/zonulo.htm</loc>
</url>
</urlset>
Pour ma part, je n'utilise que la balise facultative "priority", pour attirer l'attention des robots des moteurs de recherche sur deux ou trois pages de mon site que je juge plus intéressantes que les autres, en particulier celle de la photothèque ; ce qui donne ce sitemap.xml, que votre navigateur interprète comme ceci (il vous affichera le code-source si vous tapez "Ctrl-U").


mon Linux


accueil