Comme vous le savez (ou pas), il est capital de rediriger l’ensemble des URL d’un site lors d’une refonte avec des redirections 301 afin de redistribuer la popularité des pages/site vers le nouveau site.
Ayant fait des recommandations pour plusieurs migrations SEO concernant les sites de deux clients récemment, je tenais à partager avec vous quelques éléments qui me semblent indispensables afin d’éviter toute chute de trafic.
Lors d’une refonte d’un site Web, toutes les URL ne peuvent pas forcément être maintenues (nouveau CMS, fusion de plusieurs sites, etc).
De bons articles sur la migration SEO existent comme celui de Ramenos qui détaille les 5 étapes pour sauver son SEO lors d’une refonte ou migration de site, mais j’aimerais faire un focus sur sa deuxième étape qui consiste à récupérer toutes les URLs du site.
J’utilise pour ma part 4 méthodes pour rediriger un maximum d’URLs:
Le crawl du site
Le crawl du site avec un logiciel tel que Xenu ou Screaming Frog SEO est la première étape afin de récupérer les URL du site.
L’ensemble des liens du site seront parcourus afin d’englober toutes les URL accessibles directement via un lien sur le site Web lui-même. Cela vous permettra dans un premier temps d’analyser la structure du site et des ses URL afin de procéder à l’organisation de votre future table de correspondance (typologie de pages & catégories).
Une fois le crawl fini, vous pensez avoir toutes les URL du site à migrer en main? Il n’en est rien, il vous en manque peut être une partie…
Liste d’URLs via l’outil de Web Analytics
Il est probable que des pages ne recevant plus de liens internes existent encore et génèrent du trafic SEO (ancienneté, liens externes).
Je demande donc au client de récupérer via sa plateforme de Web Analytics (Google Analytics, Xiti, NetRatings…), un export des URLs qui ont reçu un minimum de trafic sur les 6 derniers mois (voir plus), afin de compiler ces données avec le crawl déjà effectué à l’étape précédente.
Au delà de détecter d’autres pages à rediriger, cela me permet également de rediriger en priorité de manière stricte (page à page), les URL recevant le plus de trafic via les résultats organiques pour une transmission optimale de la popularité. Une redirection 301 importante oubliée risquerait d’impacter directement le trafic SEO de manière négative.
Outil d’analyse de linking
En complément de la liste d’URLs recevant encore du trafic (non détectées avec le linking interne), j’effectue également une analyse des pages qui bénéficient de backlinks.
J’utilise dans ce cas des outils comme Majestic SEO, (ou OSE, Ahrefs) pour trouver les pages « zappées » par les étapes précédentes qui reçoivent des liens externes et donc potentiellement du PR à retargeter.
On peut tomber sur d’anciens jeux-concours ou des pages évènementielles, avec un bon capital « linkjuice » quoi;)
Fouiller l’index de Google
Cette dernière étape permet de rediriger des pages ayant été indexées malgré le robots.txt et d’anciennes pages dupliqués entre autres. Les commandes site:, inurl: et autre filetype: seront vos alliées pour cette vérification ultime.
En fonction du volume de pages indexées, il est possible d’extraire l’ensemble des URL via Scrapebox RDDZ Scraper et la commande site: de Google en effectuant du scraping de manière récursive dans les répertoires afin de dépasser la limite des 1.000 premiers résultats de Google.
site:domaine.com/repertoire1/ = 1200 pages indexés
Il est donc nécessaire de segmenter /repertoire1/. On effectue donc la recherche suivante :
site:domaine.com/repertoire1/repertoireA = 850 pages indexés
puis
site:domaine.com/repertoire1/ -site:domaine.com/repertoire1/repertoireA = 350 pages indexés
et ce jusqu’à avoir extrait l’ensemble des pages indexées.
Cette dernière méthode permet de retrouver l’ensemble des URL dans l’index de Google et qui seront potentiellement re-crawlées. Dans la majeure partie des cas, c’est une sécurité supplémentaire mais elle n’est obligatoire.
Sur un site avec des dizaine de milliers de pages, hormis si vous développez un script spécifique pour effectuer l’opération décrite ci-dessus, cela peu s’avérer très fastidieux.
Dans ce cas, une analyse approfondie des logs serveurs sur plusieurs semaines peut permettre de récupérer une partie des pages crawlés par GoogleBot pour compléter la liste d’URL à rediriger. Une commande Bash tel que:
awk '{if($14 ~ /Googlebot/) {print $7}}' /var/log/apache2/access.log | sort | uniq -c | sort -n >> urlstoredirect.txt
fera l’affaire.
Table de redirections
Je vous recommande d’organiser les anciennes URL dans votre table de correspondances avec plusieurs colonnes supplémentaires:
[table “8” not found /]
Un tableau de ce type pourra vous aider à renforcer la popularité de certaines pages comme il offre une vision globale et structurée du site. Il aidera l’admin système à estimer le temps nécessaire à l’intégration des règles et directives Apache.
Cela vous permettra de gagner du temps après le crawl du nouveau site pour la mise en place des correspondances anciennes URL > nouvelles URL. Bien évidemment, en cas de pages supprimées lors de la refonte, il conviendra de les rediriger vers la catégorie la plus proche (ou un article similaire) pour garder une cohérence par rapport aux contenus demandés pour les internautes et les moteurs.
Pour ce qui est des listings d’articles/dossiers, je redirige en générale les pages 2,3,4,5 etc vers la première page du listing, sachant que ces pages peuvent bouger régulièrement dès qu’un article est ajouté. Attention toutefois aux QUERY_STRING lors de la création des règles : RewriteCond, QSA et autres flags se manipulent avec précautions si vous ne voulez pas générer encore plus de contenu dupliqué que vous n’en avez déjà…
Bref
La migration d’un site est pour moi l’occasion de redistribuer la popularité sur des pages spécifiques, ce qui peut parfois s’avérer assez efficace. J’en profite aussi pour retrouver d’éventuels domaines ou sous-domaines oubliés façon grand nettoyage de printemps.
À l’inverse, le fait d’avoir trop d’erreurs 404 et un plan de redirection mal construit peut être pénalisant et difficilement récupérable d’où l’intérêt de n’oublier aucune URL comme des liens de référents voir même des anciens liens d’affiliation.
Si vous souhaitez avoir plus d’infos, je vous invite à consulter ce topic Scoop it! sur la migration SEO
PS: Pour mieux surveiller vos erreurs 404 après la mise en production des règles de redirection, je vous recommande vivement de procéder à la correction des erreurs 404 déjà existantes au début du projet grâce à Google Webmasters Tools.
Vous y verrez plus clair dans un moment crucial (à savoir les jours qui suivent la mise en ligne), mais aussi vous pourrez tester le process d’intégration des directives par l’équipe IT de votre client: une sorte de répétition quoi 😉
Merci d’expliquer ta propre méthode. Ca permet aux débutants comme moi qui n’ai jamais encore fait de migration SEO sur de gros sites d’acquérir une méthode afin de réduire le risque de connerie ^^
Bref encore un article à mettre de côté qui pourra être utile le moment venu. 🙂
Les migrations, c’est pour les faibles, les vrais de vrais supprime tout du serveur et mettent en ligne la nouvelle version, Google retrouve toujours ses petits !
Ou pas. 😉
Tu joues souvent avec les 301 lors des migrations pour booster certaines partie du site?
Pas souvent je ne fais pas de migration tous les 4 matins non plus! j’ai déjà renforcé les positions de certaines landings pages avec des 301, oui.
Toutes les idées sont là. On parle bien ici de redirection de contenu et non de migration de site !
Il est vraiment important d’avancer avec une feuille de route sur ce type d’intervention.Typiquement un fichier XLS avec case à cocher, car une étape est vite oubliée !
Merci aymeric pour ce petit tuto, encore une fois, très utile !
Sur la remarque de la fin, tu rediriges les pages 2 et + vers la première page, ce n’est pas une micro-optimisation qui n’en même pas une ? D’une, je trouve que ces pages de listings ont très peu de poids, et de deux ça peut paraitre étrange aux yeux d’un algorithme.
Plus précisément, Google verra sa version de la page 2, qui contient des produits donnés, redirigée de façon permanente vers une page qui propose des produits différents. À mon gout, un redirect vers la première page est à effectuée quand le contenu des listings change, auquel cas c’est la meilleure chose à faire clairement. Si c’est uniquement les urls qui sont modifiées, mieux vaut ne pas toucher et que Google retrouve exactement le même contenu.
Sinon bonne technique qui marche pour tout type de site dont l’architecture est migrée.
Super tuto, moi qui pensai être carré à ce niveau je vois que tu prend encore plus de précaution que moi.
Je m’arrête aux crawl xenu + ga et parfois backlink même si en générale ce sont les pages principales d’un site qui reçoivent le maximum de linkjuice.
Par contre un truc que je fais parfois pour de très gros site c’est lecrawl de l’index secondaire de google.
Exemple un site avec des annuaires se retrouve généralement avec plus de la moitié de ces pages annuaires dans l’index secondaire de google.
Il suffit que l’arborescence du site soit pourri pour que les robots (xenu ou ga) n’est pas accès à la totalité des pages du site.
Tiens d’ailleurs ton article permet de mettre en avant l’importance du ou des sitemap pour un gros site pour facilité sa refonte futur.
D’ailleur RDDZ Scraper aide bien de se coté là 😉
La recherche des pages indexées via les site: dans Google risque de ne pas fonctionner si les URL ne sont pas formatées par répertoires 🙂
A part ça, super, merci pour ce récap cher Filleul :p
Bonjour, un article vraiment très complet, merci.
J’aurais également ajouté la vérification des urls listées dans le sitemap XML et le flux RSS. On pourra également checker les logs serveur pour rechercher des ancien formats d’url qui ne bénéficieraient pas d’une 301.
On peut conclure l’article avec une dernière étape, qui est celle du crawl des URL de l’ancien site sur l’environnement de dev/recette pour voir si la migration est bien OK avant de passer en prod. Ca permet d’éviter bien des frayeurs.
« La migration d’un site est pour moi l’occasion de redistribuer la popularité sur des pages spécifiques, ce qui peut parfois s’avérer assez efficace. » Je le fais aussi et ça donne parfois des résultats spectaculaires 🙂
Par contre dans ton article tu parles uniquement du SEO ainsi que de l’affiliation. Notamment dans la partie « Il est probable que des pages ne recevant plus de liens internes existent encore et génèrent du trafic SEO (ancienneté, liens externes). »
Perso lors de l’analyse des pages ayant drainé des visites sur les 6 derniers mois dans Analytics, je ne mets aucun segment mais je laisse au global, car il y a bien évidemment des pages hors de portée SEO à rediriger. Egalement, je regarde les pages ayant généré du trafic direct car ça signifie bien souvent que les gens les ont en favoris 🙂
Merci pour l’article, plutôt intéressant, j’utilise Xenu depuis assez longtemps.
Outil très pratique pour répérer facilement les erreurs 404 et autres bugs internes.
Qu’en est-il de Screaming Frog SEO? Avec Xenu j’ai souvent fait planter l’ordi ou mis de longues heures avant de générer un rapport !
A plus 😉
Je suis en plein sur une grosse migration (30 sites multilingues de plusieurs centaines de pages chacun vers un gros portail) en dehors du fait que c’est la première fois que je me retrouve avec un haccess de plusieurs centaines de ligne tout c’est bien passé et pour la technique c’est :
xenu -> un bon vieux excel pour faire le matching entre nouvelles et anciennes pages (un gros avantage, comme c’est moi qui rédige le htaccess, il n’y a pas d’infos perdues) et au final peaufinage avec les logs.
Avec les sites multilingues, bon courage… N’hésite pas à lire cet article concernant les gros fichiers htaccess, ça peut être très mauvais pour les performances! http://www.yapasdequoi.com/blog/apache/2649-les-fichiers-htaccess-a-utiliser-avec-moderation.html
A croire que tu as écrit cet article pour moi. Je travaille sur une refonte de site comme tu le sais et j’ai demandé un extract des logs serveurs aujourd’hui sur 4 semaines mais je me demande si c’est assez long … tu les regardes sur une période de combien de temps toi ?
ça dépend du nombre d’URLs dans l’index et du nombre de pages crawlées par jour. Vu ton site, je pense que ça devrait suffir.
Pour exemple, j’ai déjà analyser des logs d’un site avec plus d’un million d’urls dans l’index, et j’en avais retrouvé plus de la moitié qui avaient été crawlées par GoogleBot dans les logs (moyenne de 40.000 pages/jour)
Pour les URL non redirigées et peu crawlées (ayant à priori peu de poids), tu les redirigera avec GWT après migration au coup par coup?
Ce site a moins de 5000 pages … ca devrait donc le faire 😉 Merci pour ton retour.
Un boulot chronophage mais nécessaire lors d’une refonte. Et indispensable sur des gros sites portail ou e-commerce.
Ouuuuuh mais dis moi l’ami tu en prends des précautions a chaque migration – je t’avouerai que je me prends moins le teston que toi – enfin – je suis plus radical on va dire – je redirige tout!page a page et sans exception en regle générale – et oui je fouille l’index GG, a la pogne au cas ou Xenu aurait raté une URL toute moisie qui trainerait la depuis mathusalem, ou depuis la migration précédente – par contre je ne me prends pas la tete avec GG analytics – peut etre devrais-je – ni avec l’audit de popularité des pages internes – mais peut etre devrais-je aussi c’est pas con – je me contente de redirection « thématique » alors que toi tu inclue un concept de redirection « performance » qui est interessant – méthode a creuser donc.
Ah un petit trc par contre que pour lequel je fais plus gaffe d’orénavant c’est inclure les NDD anexes du client – car des fois on oublie de les rediriger comme il faut – et on se tire dans le pied
J’essaye d’être attentif avec Google Analytics pour ne pas oublier une page bien positionnée qui ne reçoit plus de liens en interne (ça m’est déjà arrivé). c’est surtout pour faire les redirections 301 par ordre d’importance et ne pas se retrouver avec quelques redirections cruciales manquantes. Excellente remarque pour les NDD annexes, (et les sous-domaines également), on en découvre parfois beaucoup qui traînent et c’est aussi l’occasion de remettre tout ça « au propre »!
Ce n’est jamais évident de faire ce type de redirection, tu as quasiment tout dit, il existe également webmastertools pour corriger les erreurs 404 au passage.
oui tout à fait d’accord Julien, c’est ce que j’ai précisé à la fin de mon article du coup 😉
Voila plusieurs méthodes à utiliser dans le cas d’un changement de domaine. Les utiliser toute reste quand même du luxe 😛 En général, j’utilise une voir 2 techniques. Les plateformes sont la plupart du temps identiques donc j’ai beaucoup moins de problèmes. Une petite ligne dans le htaccess et c’est ‘job done’. Cependant, si c’est suite à une pénalisation Penguin, EMD, dans ce cas je ne fais même pas de 301. Je désindexe le premier site et je le remonte sur une url toute neuve avec des contenus et urls internes légèrement différentes.
D’ailleurs, tu conseilles quoi à tes clients qui se prennent la màj concernant les EMD de type {ma|le|la|un|une}-keyword-keyword.com ? Désopti ? Changement d’url ? Ton avis m’intéresse…
Les utiliser toutes n’est pas un luxe sur un site très ancien avec des dizaines de milliers de pages indexées. J’ai déjà retrouvé de vieilles URL dans Majestic SEO avec des BL intéressants, c’est d’autant plus utile que ça permet de contre-balancer la légère perte de jus générée par les 301. Après pour de plus petits sites, je ne vais pas forcément si loin. Pour la MAJ des EMD, je n’ai pas eu de cas similaires pour des client, je me baserais pas mal sur l’historique de l’EMD je pense… Et en fonction des autres paramètres, j’aviserais.
Superbe article l’ami !
Les différentes sources pour retrouver ses petits et s’approcher de l’exhaustivité sont bien citées.
Ce travail peut en effet devenir un vrai casse tête sur des opérations multi-sites mais il est pour moi indispensable à chaque refonte pour ne pas voir partir à l’égout un partie du jus gagné avec le temps …
Merci pour la citation :).
Effectivement, mon article étant assez ancien, je trouve que tu l’as bien complété. Pour ma part, quand j’ai peu de temps, je me concentre principalement sur les étapes 1 et 2 qui permettent déjà d’éviter d’avoir une chute.
Pour les 404, je trouve que c’est un travail permanent tellement il s’en crée facilement de nouvelles…
Oui tu n’as pas tort pour les 404! il faut juste arriver à prendre le temps de s’en occuper sur certaines prestas complexes… 😉
Beaucoup de temps à prendre pour mettre tout ça au propre, mais un travail absolument obligatoire.
A vrai dire, j’ai fait une fois un changement de toutes mes URL sans faire de redirection, et j’ai compris pourquoi il ne fallait pas le faire ! En revanche, je trouve que ce n’est pas simple du tout de se taper toutes les redirections lorsque vous gérez plus de 10 000 pages sur un site !
Excellent sujet de plus en plus courant à traiter maheureusement notamment l’affiliation, la mtéthode proposée évite la panique à bord, c’est certain.
Merci pour ce topo bien complet. La dernières migration que j’ai eu à faire, a été bien moins fine. J’aurais bien aimé pouvoir faire un peu de tri et pousser un peu plus certaines pages du site mais comme dit dans un des commentaires, il y a des cas ou l’on ne peut pas penser uniquement SEO et au final, on se retrouve à faire de la redir page a page… même pour des pages qui n’ont pas d’intérêt SEO et qui ne sont plus d’actualité 🙁
Merci pour l’astuce, je vais changer de NDD, je vais suivre ces conseils en essayant de perdre le moins de jus possible !
J’ai migré un site international, il y a peu et j’ai tout perdu, une solution pour l’avenir?
Merci 😉
Jean
Salut,
Super article,
Je rajoute simplement quelques étapes:
– audit du nouveau site, pour pas se retrouver avec des effets de bords pouvant créer du crawl vers des pages inutiles. C’est important car lors d’une migration, il faut faire en sorte que la distribution du crawl googlebot soit optimal, notamment à cause des redirections qui implique du crawl supplémentaire.
– Pour l’étape de l’identification des liens à rediriger et notamment lors du crawl, je catégorise les urls afin de rediriger uniquement les urls qui me semble importantes . J’exclue donc les pages « inutiles » :pages d’erreurs, des « junk pages », les urls dupliquées, 404, 301,etc… afin d’économiser du crawl googlebot. De toute façon lors des étapes suivantes, d’éventuelles urls « inutiles » visitées et/ou recevant du jus peuvent être ajoutées.
D’ailleurs, c’est l’occasion de faire aussi du ménage pour purger de l’index de google d’éventuelles urls « inutiles » avec un no-index (panda). Pas la peine de rediriger une junk page surtout si elle reçoit aucun backlink et pas de visites sous seul prétexte qu’elle est indéxée (google indexe encore bcp de merde), risquant ainsi de récupérer des mauvais signaux vers le nouvelle page et par la meme gaspillant du crawl.
– L’étape de la table de redirections est importante aussi, suivant le nombre de redirections, il faut éviter de plomber son .htaccess et mettre ca en BDD, c’est plus performant. Une petite requete sur les vieilles pages , se chargera d’aller vérifier la correspondance dans cette table en base.
– Une étape recettage pour vérifier le bon fonctionnement des règles de redirection dans un environnement de test.
– Un bon sitemap pour aider google à crawler les nouvelles urls du site.
A+
Serge
Hello Serge. Effectivement, inutile de rediriger les « junk pages » et autres contenus dupliqués sans valeur. J’en profite également pour faire le ménage (mais j’ai oublié de le préciser). Ton commentaire est un super complément à cet article, merci 😉
Une belle migration via la redirection 301, ça sonne comme l’autoroute des vacances mais c’est une aventure qui peut finir avec du goudron et des plumes.
Donc vaut mieux bien préparer son déménagement avec des pros de l’audit: Xenu, GWT ou BWT… et alors la route est plus soft.
Merci pour l’itinéraire.
Franchement, je suis admiratif, se lancer dans de telles opérations, d’autant que certains y laissent des plumes en route. Je vais étudier le dossier de la migration SEO d’un peu plus près
cela peut être utile par gros temps.