mardi 4 mars 2008

Sitemap : les étapes


Pour afficher une sitemap (fichier sitemap.xml) que Google utilisera afin de parcourir et d'indexer les pages de votre site, il faut installer le snippet Sitemap programmé par Grad. Les instructions d'install disponibles sur le wiki, outre qu'elles sont en anglais, sont incomplètes, surtout pour un blaireau comme moi. Voici donc comment il faut procéder :

1- téléchargez le fichier texte fourni à la page de sitemap. Au moment ou j'écris cet article, nous en sommes à la version sitemap_1.0.6.txt

2- Dans le manager de MODx, allez dans Ressources>Gestion ressources >snippets. Cliquez sur nouveau snippet, et donnez lui le nom SiteMap en respectant bien les majuscules, sans espace, bref tout bien comme j'ai écrit.

3- Retournez ouvrir le fichier sitemap_1.0.6.txt précedemment téléchargé, faites Tout sélectionner (Ctrl+A) et copier, puis revenez dans MODx et collez ce texte dans le nouveau snippet, en ayant auparavant pris soin d'effacer tout le contenu que MOdx assigne par défaut au snippet (il s'agit des caractères qui sont déjà contenus dans le fichier texte. Pas la peine de les mettre 2 fois).

4- Cochez la case Lancer l'exécution du snippet après l'enregistrement et cliquez sur Enregistrer.

5- Toujours dans l'onglet Gestion des Ressources, allez à l'onglet Gestion des Modèles et cliquez sur Nouveau Modèle. Nommez le nouveau modèle SitemapGoogle et laissez le vide (sans contenu) puis sauvegardez.

6 - rendez-vous ensuite dans l'arborescence des documents. Créez un nouveau document que vous appelerez sitemap, et surtout indiquez dans l'alias du document : sitemap.xml Dans Modèle utilisé, choisissez le template SitemapGoogle que vous venez de créer. Décochez l'option afficher dans le menu. Ensuite cliquez sur l'onglet Réglage de la page et décochez les cases Editeur Wysiwyg, Enregistrer les visites, A placer en cache et Retirer du cache. Enfin, dans le menu déroulant Type de contenu, indiquez Text/XML, puis faites enregistrer.

7- Editez ce document que vous venez de créer, et vérifiez bien que le contenu du document ne s'affiche pas avec un éditeur Wysiwyg tel que TinyMCE : le code ne supporterait pas les tags ajoutés par ce module. Dans le corps du document, insérez ceci : [!SiteMap? &format=`sp`!]
Enregistrez puis publiez le document.

8- Vous avez tout fait comme il fallait ? Hébin chez moi ça ne marche pas. J'ai tout essayé, rien à faire. Le document devrait être accessible depuis http://www.votresite.com/sitemap.xml, mais rien à faire. Ca ne marche même pas si vous tapez dans la barre d'adresse le numéro du document, par exemple (s'il porte le numéro 75) : http://www.votresite.com/index.php?id=75.
Chez moi, j'obtiens un affichage du type :

Erreur d'analyse XML : aucun élément trouvé
Emplacement : http://www.votresite.com/index.php?id=75
Numéro de ligne 1, Colonne 1 :

^

9- Mais comme un authentique blaireau ne blesse pas les bras, voici la solution que j'ai trouvé en fouillant sur les forums de MODx : revenez à l'étape 7, et effacez le contenu du document. Ou plutôt, coupez-le : on va le mettre ailleurs. Quoiqu'il en soit le document sitemap doit être vide.

10- Allez dans le template SitemapGoogle et éditez-le. Collez le bout de code [!SiteMap? &format=`sp`!] puis enregistrez.

11- retournez sur l'adresse de votre doc, par exemple
http://www.votresite.com/index.php?id=75. Ca marche ! Bon d'accord ce n'est pas nickel, mais comme le but est d'indiquer à Google (par le biais des outils webmaster) ou se trouve la sitemap de votre site, il sufit de lui donner cette URL et le tour sera joué. Et hop. Alors par contre, vous dire pourquoi c'est comme ça je n'en sais rien. Si un gentil lecteur a une idée... Par contre, l'adresse http://www.votresite.com/sitemap.xml ne fonctionne toujours pas. J'ai comme une idée qu'il va falloir que je me penche sur ces histoires d'alias. J'ai essayé en enlevant l'extension .xml dans l'alias, mais rien ne change.

J'ai donc recommencé quelques temps plus tard sur un autre site. Rien ne vaut de laisser mûrir un peu parfois. Et ça a marché !
Voici donc la technique :

- Je crée un snippet intitulé SiteMap dans lequel je code le contenu dufichier sitemap_1.0.6.txt évoqué à l'étape 3 ci-dessus. Je ne coche pas la case "lancer l'exécution du contenu après enregistrement".

- Je crée un template intitulé SitemapGoogle dont le contenu indique ceci :
[!SiteMap? &format=`sp`!]

-Je crée un document dont le titre est sitemap et l'alias sitemap.xml. Attention, il faut bien rajouter.xml après sitemap ! Ce document utilise le template SitemapGoogle. Je le publie puis je l'édite et je vais dans les réglages de la page, ou je ne laisse cochée que les cases "cherchable" et "supprimer du cache". Je choisis un type de contenu text/xml dans le menu déroulant, et c'est tout.

Précisons que le site en question utilise le réglage Configuration>Outils>Réglages URL simples> case cochée à oui pour l'option "utiliser les URL simples".

Et voila.

Aucun commentaire: