Concours de référencement en cours : Trikapalanet.

Accueil du site > Le Geek Lab > SEO & Spip : robots et sitemap désormais en natif !

SEO & Spip : robots et sitemap désormais en natif ! | Et dynamiques, avec ça !

vendredi 27 février 2009, par Loiseau2nuit
Mis jour le 17 novembre 2009

Les fan(atique)s de la SEO apprécieront. En quète du positionnement idéal de vos pages web dans les moteurs de recherche, vous serez certainement heureux de savoir que grâce à Fil, les templates de Spip sont désormais dotés en natif de nouvelles composantes très utiles en terme de référencement web. :-)

Suite à un échange de mails sur la mailing-list "Spip-zone" [1], et deux "commits" [2] de Fil (ici et ), Les fichiers du dossier /squelettes-dist, templates par défaut livré avec Spip (depuis la version 2.0.5) embarquent donc un fichier robots.txt standard et un sitemap.xml géré dynamiquement sous forme de squelettes, ainsi qu’un .htaccess, légèrement revu pour intégrer et normaliser ces nouveautés (urls ré-écrites notament)

Au risque de brûler un peu les étapes, je pars du principe que vous savez déjà ce qu’est un favicon, un sitemap et un fichier robots.txt, c’est pourquoi je serai bref ici quand aux rôles de chacun, quite à faire un article dédié un peu plus tard, ce que la section de Google pour les Webmasters fait déjà très bien, soit-dit en passant.

favicon.ico

Le favicon, ce petit logo qui se place dans la barre d’URL à côté de l’adresse de votre site sera donc désormais paramétré dans un squelette favicon.ico.html pour afficher de base le logo de Spip ( le petit écureuil dit "polatouche" dessiné par IZO. ) en miniature, si à tout hasard un fichier favicon.ico personnalisé n’est pas présent à la racine de votre site.

Rien de bien révolutionnaire, j’en viens donc à la suite qui elle m’intéresse au plus haut point :

Google Sitemap

A l’origine, cette fonctionnalité faisait l’objet d’un filtre pour Spip 1.8.x, puis avait été portée en plugin. Une chose avait cependant sauté pendant le portage, c’est le "ping" du sitemap vers Google et ses moteurs partenaires, désormais capables d’analyser ce type de fichier (Yahoo et Ask, notamment !)

Le fichier Sitemap sera donc maintenant généré dynamiquement par défaut grâce à un fichier-squelette sitemap.xml.html, et l’ajout d’un article dans Spip provoquera automatiquement le ping vers les moteurs ayant eu vent de l’existence de votre sitemap. (EDIT : sous réserve qu’un plugin l’implémente un jour…)

  1. [(#REM)
  2.         Exemple tres simple de sitemap.xml accessible via URL_SITE_SPIP/sitemap.xml
  3.         (copier htaccess.txt en .htaccess pour en beneficier)
  4.         Ce sitemap affiche la liste des rubriques, breves et articles, en se limitant a 1000 rubriques, 1000 breves et 2000 articles pour des raisons
  5.         de performances.
  6.         Duree de reindexation et priorite ne sont pas precisees,
  7.         sauf pour l'accueil.
  8.         Mais si date_modif est recente (1 jour) on l'indique, pour que ce
  9.         soit reindexe en priorite
  10. ]#HTTP_HEADER{Content-Type: text/xml; charset=utf-8}
  11. <?xml version="1.0" encoding="UTF-8"?>
  12. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  13. [(#REM) Accueil]
  14. <url>
  15.         <loc>#URL_SITE_SPIP/</loc>
  16.         <changefreq>hourly</changefreq>
  17. </url>
  18. [(#REM) Rubriques ]
  19. <BOUCLE_r(RUBRIQUES){!par date}{0,1000}>[
  20. <url><loc>(#URL_RUBRIQUE|url_absolue)</loc></url>]</BOUCLE_r>
  21. [(#REM) Articles ]
  22. [(#SET{recent,[(#VAL{'Y-m-d H:i:s'}|date{[(#DATE|affdate{U}|moins{86400})]})]})]
  23. <BOUCLE_a(ARTICLES){!par date_modif}{!par date}{0,2000}>[
  24. <url><loc>(#URL_ARTICLE|url_absolue)</loc>[(#DATE_MODIF|>{#GET{recent}}|?{[<lastmod>(#DATE_MODIF|date_iso)</lastmod>]})]</url>]</BOUCLE_a>
  25. [(#REM) Breves ]
  26. <BOUCLE_b(BREVES){!par date}{0,1000}>[
  27. <url><loc>(#URL_BREVE|url_absolue)</loc></url>]</BOUCLE_b>
  28. </urlset>

L’adresse du sitemap Spip reste inchangée :
http://www.votre-site-spip.truc/spip.php?page=sitemap

robots.txt

Le robots.txt est un de ces fichiers placé en racine également et qui permet de spécifier quelques règles de conduite pour les robots d’indexation des moteurs de recherche (*en très gros* : "Robot X, tu peux référencer ça. Robot Y, tu dois pas indexer ça, et Robot Z, tu passes ton chemin merci")

Assez pratique pour affiner en aval les résultats de recherche en ne les polluant pas avec des pages inutiles et sans réel intérêt du site (vous conviendrez qu’indexer une page de recherche vide ou une rubriques de tests typographiques pleine de Lorem Ipsum, ca fait pas sérieux !) il permet maintenant, chose énorme, d’annoncer son sitemap, évitant ainsi la soumission manuelle de celui-ci aux moteurs de recherches !

Spip l’intègre donc sous la forme d’un fichier-squelette robots.txt.html dans lequel il pourrait même être envisageable de mettre des BOUCLES comme dans n’importe quel autre squelette : on pourrait par exemple imaginer une boucle de mot-clé conditionnant l’indexation ou non d’un article, d’une rubrique… par l’ajout d’un mot clé technique "Allow" ou "Disallow"… vraiment par exemple ! [3]

L’URL finale du fichier :
http://www.votre-site-sppip.truc/spip.php?page=robots.txt

PS : Vous constaterez ici et que la syntaxe à suivre pour le fichier robots.txt est quand même vachement rigoureuse ! Attention donc si vous modifier ce fichier "à la mano" !!!

.htaccess

Pour normaliser un peu tout ceci, quelques règles nouvelles dites "RewriteRules" font leur apparition dans le htaccess.txt (à renommer en .htaccess une fois le fichier uploadé sur le serveur). Il faut donc pour cela que ModRewrite soit activé chez votre hébergeur

Ces règles, basées sur le principe de celles qui transforment vos URLs standards (spip.php ?article=1234) en URL propres (/ma-rubrique/mon-article) ont pour seul but de convertir les adresses au format Spip de ces fichiers, en adresses que tous les moteurs vont comprendre.

Car, par exemple, si Google comprend très bien http://www.votre-site-spip.truc/spip.php?page=sitemap, ce n’est en revanche pas le cas de Ask qui lui a besoin d’une terminaison standard pour un fichier xml, soit http://www.votre-site-spip.truc/sitemap.xml.
Et de surcroit, aucun robot ne comprendra http://www.votre-site-spip.truc/spip.php?page=robots.txt, à plus forte raison que celui-ci n’est pas à proprement parler à la racine de votre site alors que, comme le sitemap, pour que les moteurs le voient, il devrait l’être.

Il fallait donc simuler ces comportements, et voici le code qui remplit désormais cette tâche, à partir de la ligne 99 de votre htaccess.txt (à renommer en .htaccess après passage en production du site) :

Vous permettant alors d’avoir des adresses de la forme

  • http://www.votre-site-spip.truc/sitemap.xml
  • http://www.votre-site-spip.truc/robots.txt
  • http://www.votre-site-spip.truc/favicon.ico

Précision concernant l’hébergeur Free.fr

Certaines fonctions PHP du serveur étant délibérément bridées par l’hébergeur, le fonctionement chez Free est quelque peu altéré :

  • Mode Rewrite non disponible : les URL Réécrites par le .htaccess pour les fichiers sitemap.xml et robots.txt ne fonctioneront donc pas
  • Le sitemap et le favicon restent utilisables tout de même, même avec une URL standard au format brut de SPIP spip.php?page=sitemap.xml ...
  • Le Robots.txt embarqué ne devrait à priori pas tourner non plus mais il est tout à fait possible de le recréer proprement à la main à la racine de son site SPIP. Voir Robots.txt sur The Web Robots Pages pour plus d’information sur ce que peut/doit contenir un fichier robots.txt minimal.

Notes

[1] Spip-zone = l’espace en ligne des développeurs de plugins et autres contributions communautaires autour de Spip

[2] commit = modifications des fichiers sur l’espace de développement collaboratif en SVN de Spip

[3] Le test reste à faire… Sachant qu’il serait peut être aussi (voire plus) judicieux de créer une boucle à même son squelette article.html ou rubrique.html avec des mot-clés "index" ou "no-index" pour conditionner l’affichage dans celui-ci des balises métas du même nom… à voir…

6 commentaires - participer

Bonjour, si j’ai bien compris : impossible d’utiliser SEO avec free ?!

cordialement,

arno

Hélas ! A moins qu’il n’ait décidé de vous faire profiter du ModRewrite mais je doute. Déjà qu’il a fallu plusieurs années avant de pouvoir utiliser mail()

En même temps, mon expérience avec Free commence à remonter donc ne pas hésiter à retster et à nous faire profiter de vos retours.

Bonne chance.

je corrige un peu mon propos dans le commentaire du dessus :

concernant Free, le sitemap et le favicon RESTENT UTILISABLES tout de même, ce sont bien les seules URL Ré-écrites qui ne fonctionneront pas !

Le Robots.txt embarqué ne devrait à priori pas tourner non plus mais il est tout à fait possible de recréer à la main un fichier texte propre ’robots.txt’ à la racine de son site SPIP.

voir Robots.txt sur The Web Robots Pages


poster commentaire

Site web personnel et (plus ou moins) professionnel d’Etienne Brackers aka Loiseau2nuit.

Webdesigner, musique-addict, rôliste, geek (un peu), atypique, … et assimilé !

En savoir plus sur l’auteur