Path et path_auto : réorganiser le contenu et les alias d'URL

Quand on renomme un contenu ou qu'on réorganise...

Un utilisateur lambda de drupal ne comprend pas que modifier le titre de la page va générer des erreurs 404 chez les moteurs de recherche, et impacte le module xml sitemap (sans parler des liens internes "en chemin absolu")... Drupal se comportera différement selon les modules installés et leurs configuration, d'où un certain casse-tete "SEO" (sans parler des bugs avec i18n, mais pour écrire ce paragraphe, i18n n'était pas installé)...
Je dis "renommer" mais cela est vrai lorsque le rédacteur rassemble divers contenus dans une meme page (et supprime les anciens nodes). Pour lui, le contenu et ses images sont toujours là, mais déplacées smiley.

Roles et perms "typiques" ou à repenser

Le dev ou admin a pour Path : Administrer les alias d'URL et Créer et modifier des alias d'URL pour Path_auto Administer pathauto et Notify of Path Changes (qui je crois ne fonctionne pas, ou alors créer une règle?).
Un Webmestre/Editeur a : pour Path "Créer et modifier des alias d'URL", rien pour Path_auto (Administer pathauto trop puissant).
Un simple user (logué) : rien. L'anonyme n'a plus n'a pas de droit.

Gérer le nombre croissant des alias

Un meme contenu (node, terme de taxonomie) peut avoir plusieurs alias, mais cela complique la gestion des alias pour nous, et surtout, le travail des bots (qui se trouvent face à une multitude de liens qui pointent tous vers le meme contenu, d'où l'utilité de Global redirect - vers mes notes Global redirect). C'est gérable de corriger 2-3 manips de ce genre, en ajoutant manuellement des alias (admin/config/search/path/add).

Pour voir rapidement le nombre d'alias par entitée: regarder admin/config/search/path/delete_bulk

Avec path (core drupal 7) et path_auto, quand un user renomme le Title d'une page (qui avait déja un alias), drupal se comportera différement selon le paramètre sélectionné dans "Update action" - mais en général (soucis avec i18n ?), ca va créer une erreur (l'ancienne URL était dans le sitemap, envoyé automatiquement aux divers bots).

Dans ce node, en bas à gauche dans la partie "Paramètres des chemins URL" et après avoir renommé le Title :

  • "Generate automatic URL alias" reste cochée, avec le nouveau chemin (définit par path_auto et Transliteration quand on clique sur Enregistrer)
    si Update action est configuré (admin/config/search/path/settings) avec "Create a new alias. Delete the old alias" -> parfait quand on dev son site, mais pas en prod.
    Quand on voit l'erreur avec Google Webmaster tool, il faudra alors créer un alias manuellement (admin/config/search/path/add) pour référencer ce contenu (qui a été renommé) vers le réel node/ID, si l'on souhaite laissser au rédacteur le temps de corriger par ex une faute de frappe dans le titre (ie garder cette configuration pour "réduire le nombre d'alias").
  • si par contre l'on avait choisi (admin/config/search/path/settings) "Create a new alias. Leave the existing alias functioning  ou " -> car on s'était dit "ok on est en prod"... sans vérifier ce qu'a fait le webmaster/rédacteur, le nombre d'alias peux très vite grimper.
    Le rédacteur, lui, ne s'en rend jamais compte (c'est ce qui est arrivé sur transforme.fr, où elle a effacé des nodes pour rassembler diverses images dans une seule page d'album => erreur pour les bots). Voir l'éditeur a effacé du contenu et Google rale plus bas.
    "Generate automatic URL alias" reste cochée, mais affiche l'ancienne URL (ben oui, on a demandé de conserver l'alias), mais le rédacteur ne regarde que rarement là.
    Notes :
    • Les liens internes (pointant vers ce qui avait été renommé) créés avec le bouton Lien (de ckeditor + ckeditor_Link) au survol parraissent erronés (ancien Title), mais le lien fonctionne (et s'auto update silencieusement quand on modifie par la suite le contenu).
    • l'éditeur a vu la partie "Paramètre des chemins d'URL" et a décoché la case "Generate automatic URL alias"
      il a donc accès à Alias d'URL et le modifie (sans modifier Title) -> le titre du navigateur reflète toujours "Title | nom du site" mais l'alias a été modifié. S'il y retourne alors " " reste cochée mais Alias d'URL correspond au bon alias.

la solution : les outils GoogleL'éditeur a effacé du contenu et Google rale...

Dans cet ex, avec i18n.
Il faut donc recréer ces anciens alias pour les envoyer sur le nouveau contenu : 1. trouver l'ID du node (node/66) puis 2. menu Configuration/Recherche et méta/Alias d'URL/Ajouter un alias :

  • pour l'anglais seul,
  • vers content/oakwood-panel (et vérifier avant de cliquer chez Google sur "corrigé")

seul LISTER n'est pas dangereux

Vers L'éditeur a effacé du contenu et Google rale... (article complet)


sur le web

Voir aussi https://www.drupal.org/project/redirect
Pathologic aide, si l'on déplace le site de dossier ou de domaine, à résoudre les soucis de liens dans le contenu
Global redirect (mes notes Global redirect) Searches for an alias of the current URL and 301 redirects if found. Stops duplicate content arising when path module is enabled.