Makina Blog
Drupal SEO Recipe
Celles et ceux qui me connaissent bien dans la communauté Drupal savent que je râle depuis de nombreuses années sur la plupart des articles consacrés à Drupal et au référencement qui ne sont qu’une longue liste de modules, souvent inutiles, parfois contre-productifs.
L’émergence de « recettes » (recipes) dans Drupal me permet enfin de proposer ce que je considère comme la meilleure configuration par défaut pour le SEO dans Drupal. Je vais tenter dans cet article d’expliquer mes choix.
Les personnes intéressées uniquement par le code pourront le trouver à la toute fin de cet article.
La gestion des URLs
Tout d’abord, on va souhaiter réécrire automatiquement les URLs. Le module Pathauto est la solution utilisée depuis longtemps par la communauté. Depuis Drupal 8, il ne fournit cependant plus de motifs par défaut, et il faut donc ajouter notre propre configuration pour qu’il fonctionne correctement.
Depuis Drupal 8, le fil d’Ariane est basé sur l’URL du contenu. Pour assurer une cohérence entre le fil d’Ariane et l’arborescence de menu, nous avons donc choisi de baser nos URLs sur l’arborescence de menu ainsi que le titre du contenu, afin d’éviter d’installer des modules complémentaires de manipulation du fil d’Ariane. Nous allons donc utiliser un motif d’URL par défaut correspondant à : « [node:menu-link:parents:join-path]/[node:title] ».
Que faire en cas de changement du menu ?
C’est là où la configuration n’est plus si triviale. En effet, Drupal souffre actuellement d’un problème à ce niveau-là, et nous embarquons donc sur tous nos projets des patchs, à la fois de Pathauto et du core, pour permettre un changement d’URL en cas de changement du menu. Pour s’assurer de ne perdre aucun référencement associé aux anciennes URLs, nous activons également le module Redirect afin de rediriger l’ancienne URL du contenu vers la nouvelle (c’est le comportement par défaut de Redirect).
C’est trop compliqué pour moi !
Je peux le comprendre. Dans ce cas, nous vous proposons une autre configuration, plus simple (mais ce n’est pas celle contenue dans notre recette). Cette configuration correspondra à une structure classique de site Drupal, où la page d’accueil d’une rubrique est une vue listant les contenus (et nous considérons une rubrique par type de contenu : Actualités, Presse, Annuaire, …). Le motif d’URL générique sera alors « [node:content-type:machine-name]/[node:title] ».
Et pour éviter tout problème, nous vous suggérons : d’une part, de changer la configuration Pathauto pour ne jamais changer l’URL ; d’autre part, d’installer un module permettant de calquer le fil d’Ariane sur l’arborescence de menu, comme Menu Breadcrumb, Easy breadcrumb ou Breadcrumb manager.
La gestion des balises META
Là encore, il existe dans la communauté une solution universellement adoptée : le module Metatag. Ici, c’est simple, nous allons le laisser dans sa configuration par défaut, qui suffit la plupart du temps. Cette configuration a un seul problème, elle manque, au goût de certains référenceurs, de subtilité. Mais en première approche, c’est largement suffisant.
Et… c’est tout ?
Si vous comptez bien, nous avons installé 3 modules : Pathauto, Redirect & Metatag. Nous considérons que cette configuration est largement suffisante pour la plupart des sites, surtout dans des secteurs non concurrentiels (ce qui est le cas de nombreux sites publics institutionnels utilisant Drupal). Réduire le nombre de modules installés améliore les performances et réduit la maintenance.
Si vous avez des besoins plus poussés, vous travaillerez alors probablement avec des personnes chargées de ce référencement qui auront des demandes précises auxquelles aucune configuration générique ne pourrait répondre directement. Nous préférons donc éviter de surcharger le site avec de nombreux modules inutiles (oui, je parle notamment de « SEO Checklist »), et n’installer que ceux qui seront nécessaires à vos besoins précis, en fonction de votre stratégie. Éventuellement, contactez-nous pour en parler ;-)
Modules additionnels
Bien sûr, nous proposons d’autres modules dans la recette, comme ceux liées au balisage Schema.org ou à la création d’un fichier sitemap.xml :
Mais aucun de ces modules additionnels n’est activé par défaut, pour vous laisser maître de votre stratégie.
Plusieurs façons de faire les choses
Parce qu’il y a souvent avec Drupal de nombreuses solutions techniques menant au même résultat, c’est parfois contre-productif d’en choisir une qui ne sera pas la plus adaptée à votre projet. Par exemple, il y a au moins 3 façons d’implémenter un balisage sémantique du fil d’Ariane tout en respectant les standards (pas de code dans un module personnalisé, uniquement des modules issus de la communauté si on peut) :
- Si vous utilisez déjà le module Schema.org Metatag, le sous-module Schema.org WebPage vous donne accès à la configuration pour le fil d’Ariane :
- L’utilisation d’un module dédié de gestion du fil d’Ariane fournit parfois directement le balisage sémantique, c’est le cas de Easy Breadcrumb, par exemple :
- Enfin, il est possible de simplement modifier le template consacré au fil d’Ariane (breadcrumb.html.twig) :
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
{% for item in breadcrumb %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
{% if item.url %}
<a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="{{ item.url }}">
<span itemprop="name">{{ item.text }}</span>
</a>
{% else %}
<span itemprop="name">{{ item.text }}</span>
{% endif %}
<meta itemprop="position" content="{{ loop.index }}" />
</li>
{% endfor %}
</ol>
Yoast ou pas Yoast ?
Les personnes familières de Wordpress connaissent probablement le plugin Yoast qui permet de guider l’équipe de rédaction du site sur l’utilisation de mots-clés au sein du contenu des pages. Si cette approche paraît un peu simpliste aujourd’hui, cela peut constituer une première étape d’aide pour des équipes qui ne seraient que peu formées.
Ce module « Yoast » existe également au sein de la communauté Drupal sous le nom « Real-time SEO for Drupal ». Mais il n’est malheureusement pas compatible avec le « Layout Builder » à l’heure actuelle. Nous lui préférons donc Yoast Analysis qui se base lui sur des modes d’affichage de Drupal et permet donc beaucoup plus de liberté :
Que fait la communauté aujourd’hui ?
La communauté Drupal a lancé en 2024 une initiative « Drupal CMS » fournissant un Drupal déjà pré-configuré pour une majorité de besoins. Dans le cadre de cette initiative, ils ont naturellement proposé une configuration pour le référencement, et vous y retrouverez en partie ce que nous décrivons dans cet article, notamment sur la configuration du module Pathauto.
Mais même la recette « basique » (dont vous pouvez consulter le code ici) ne me satisfait pas pleinement, notamment parce qu’elle n’utilise pas le module Metatag. Cela reste néanmoins un bon exemple de configuration de recette, et pourra vous servir comme point de départ pour configurer votre propre recette SEO. La recette avancée, disponible dans le même dépôt, active beaucoup (trop) de modules, et n’est probablement pas un exemple à suivre sans réflexion préalable.
Récupérer notre recette
Si vous souhaitez consulter ou utiliser notre recette, vous pouvez télécharger le code ici.
Formations associées
Formations Drupal
Formation Drupal Administrateur
Paris Du 29 au 31 janvier 2025
Voir la Formation Drupal AdministrateurFormations Drupal
Formation Drupal Développeur
À distance (FOAD) Du 2 au 4 avril 2025
Voir la Formation Drupal DéveloppeurActualités en lien
Migration d'un site Drupal 7 en Drupal 11
Migration Drupal
04/04/2024
Trucs, astuces et "bouts" de code pour migrer votre site web de Drupal 7 à Drupal 11. Compte-rendu d'une conférence donnée au Drupalcamp Rennes 2024.
Du nouveau dans notre gamme de formations Drupal
Migration Drupal
03/04/2024
Makina Corpus, partenaire du DrupalCamp 2024
Migration Drupal
06/03/2024
Nous sommes fiers d’annoncer que Makina Corpus est le sponsor du DrupalCamp à Rennes. Notre expert vous y propose une conférence « migrer de Drupal 7 à Drupal 10 ».