Créer un sitemap XML avec Drupal Views

Sitemap ?

Pour optimiser l'indexation des pages d'un site internet, il est souvent recommandé d'envoyer un sitemap (ou plan de site en français) aux différents moteurs de recherche.
Ce sitemap est un simple fichier XML qui peut être créer manuellement et déposer sur le serveur.

Exemple de sitemap.xml :

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.monsite.fr/</loc>
      <lastmod>2015-02-10</lastmod>
      <changefreq>daily</changefreq>
      <priority>1</priority>
   </url>
   <url>
      <loc>http://www.monsite.fr/page1</loc>
      <lastmod>2015-02-10</lastmod>
      <changefreq>daily</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://www.monsite.fr/page2</loc>
      <lastmod>2015-02-10</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.5</priority>
   </url>
</urlset> 

Dans ce fichier, chaque page du site est représentée par une branche <url> qui contient :

  • <loc> : URL de la page. C'est le seul élément obligatoire.
  • <lastmod> : Date de dernière modification. Facultatif.
  • <changefreq> : Fréquence de modification (always, hourly, daily, weekly, monthly, yearly ou never). Facultatif.
  • <priority> : Poids de la page : une page avec 1 sera considérée comme plus importante qu'une page avec 0.5. Facultatif.

 

Générer automatiquement le sitemap avec Views

Pour automatiser la création du sitemap sur un site Drupal, une méthode simple et souple est d'utiliser le module Views, qui est un des modules les plus populaires et est sûrement déjà installé sur votre site.
En complément, le module Views Datasource permettra la sortie de la vue sous forme de fichier. Ce dernier module contient 4 sous-modules : seul Views XML est nécessaire pour le sitemap.

Créer la vue...

... de la manière habituelle mais en ne se préoccupant que des critères de filtres et de tri qui sélectionnent les nodes que l'on souhaite voir apparaître dans le sitemap.

Dans les options de pagination, sélectionner Display all items.
Il est préférable de désactiver la prévisualisation s'il y a beaucoup de contenus.

Configurer la sortie en XML

Dans Format, sélectionner XML data document

Dans la page de paramètres qui suit, indiquer :

Appliquer les modifications puis modifier le chemin dans Page settings en sitemap.xml .

À ce stade, la vue est presque prête : elle exporte une liste de nodes dans un fichier au format XML. Il ne reste qu'à configurer les champs exportés pour qu'ils correspondent au schéma spécifique aux sitemap.

Dans Fields, ajouter le champ Content: path.
Indiquer loc dans le champ label puis, dans Rewrite results, cocher la case "Use absolute link". Appliquer.

Ajouter ensuite le champ Content: updated date.
Indiquer lastmod dans le champ label puis sélectionner le format de date Custom avec le format suivant : Y-m-d. Appliquer.

Supprimer ensuite les autres champs (comme Title) dont on n'a pas besoin et enregistrer la vue.

Le sitemap est maintenant disponible pour être soumis aux moteurs de recherche.

Configuration de la vue