
🚫 Comment noindexer les pages de pagination dans Yoast SEO
Lorsque vous avez des centaines d’articles, des dizaines de catégories et un nuage de tags, les pages de pagination se multiplient sans qu’on y prête attention. /page/2/, puis /page/3/, puis /page/15/, et avant même de vous en rendre compte, Google indexe un millier d’URL sans contenu unique qui consomment votre budget de crawl.
Dans les anciennes versions de Yoast SEO, il existait une option intégrée appelée «Noindex subpages of archives». Une case à cocher et le problème était réglé. Mais en 2020, l’équipe Yoast a retiré ce réglage de l’interface. La position officielle: Google est devenu plus intelligent dans le traitement des séries paginées et le réglage n’est plus nécessaire.
En pratique, il l’est. Surtout pour les sites volumineux où chaque page supplémentaire dans l’index grignote le quota de crawl destiné aux URL qui devraient réellement se positionner.
Les développeurs de Yoast ont laissé une solution de contournement: le filtre wpseo_robots. Il vous permet de définir par programmation noindex, follow pour toutes les pages de pagination. Voici deux options de code: une stricte (toutes les URL /page/) et une sélective (archives de catégories et de tags uniquement).
💡 Aperçu rapide:
- Comprendre pourquoi Yoast a supprimé l’option intégrée et quand elle reste nécessaire
- Obtenir un code prêt à l’emploi pour
functions.php: deux versions du filtrewpseo_robots - Apprendre à vérifier les résultats via le code source de la page et la Google Search Console
Pourquoi bloquer l’indexation des pages de pagination
Chaque page de pagination présente trois problèmes. Premièrement, la duplication de contenu: /category/seo/, /category/seo/page/2/ et /category/seo/page/3/ affichent les mêmes aperçus, simplement répartis sur plusieurs pages. Deuxièmement, le contenu pauvre: une page de pagination ne contient aucun article complet, seulement une liste de titres avec des extraits. Troisièmement, le budget de crawl: Googlebot dépense sa limite de crawl sur des URL sans valeur de recherche au lieu de réexplorer les nouveaux articles.
Yoast SEO a historiquement résolu ce problème avec une simple case à cocher dans les réglages. Mais à partir de la version 14.0, l’entreprise a reconsidéré son approche. La logique était la suivante: Google a appris à reconnaître rel="prev" et rel="next", comprend la structure de pagination et redirige les utilisateurs vers la première page de lui-même. Et le noindex sur les sous-pages, selon Yoast, réduit le nombre de crawls et empêche le moteur de recherche de redécouvrir d’anciens articles via les liens présents sur ces pages.
Cet argument est discutable. Si vous avez un petit blog de 30 articles, très bien, Google s’en sortira. Mais si votre site a atteint plusieurs milliers d’URL avec la pagination des catégories, des tags et des archives par date, le moteur de recherche perd du temps sur ce qui n’est pas prioritaire. Bloquer l’indexation des sous-pages par code est une solution contrôlée et réversible.
Option 1: noindex pour toutes les pages de pagination
L’approche la plus simple et la plus radicale. Le filtre vérifie la condition is_paged(), une fonction standard de WordPress qui renvoie true sur toute page de pagination (archives, catégories, tags, page d’accueil). Si la condition est vraie, on substitue noindex, follow.
Ajoutez ce code au fichier functions.php de votre thème actif ou via l’extension Code Snippets:
1 add_filter('wpseo_robots', function($robots) { 2 if (is_paged()) { 3 return 'noindex,follow'; 4 } 5 return $robots; 6 });
Ce qui se passe ligne par ligne:
add_filter('wpseo_robots', ...)se branche sur le filtre Yoast SEO responsable du contenu de la balise metarobots. Le filtre accepte la valeur actuelle de$robotset attend une chaîne de caractères en retour.is_paged()est une fonction native du cœur de WordPress. Elle se déclenche sur toute URL où la variablepagedest présente (c’est-à-dire/page/N/).return 'noindex,follow'indique au moteur de recherche: «n’indexez pas cette page, mais suivez les liens qu’elle contient». Les liens au sein de la pagination continuent de transmettre du poids.return $robotsrenvoie la valeur Yoast standard inchangée pour toutes les autres pages.
Après avoir ajouté le code, visitez une page comme /category/seo/page/2/ et ouvrez le code source HTML (Ctrl+U). Trouvez la ligne <meta name="robots". Si vous voyez content="noindex, follow", le filtre a fonctionné.
Option 2: noindex uniquement pour les archives de catégories et de tags
La première option touche indistinctement toutes les pages paginées, y compris la page d’accueil (/page/2/). Si votre page d’accueil affiche des aperçus d’articles et que vous souhaitez conserver ses sous-pages dans l’index, vous avez besoin d’une logique plus ciblée.
Nous ajoutons une seconde condition: is_archive(). Cette fonction WordPress renvoie true uniquement sur les pages d’archives: catégories, tags, archives par date, archives d’auteur et taxonomies personnalisées.
1 add_filter('wpseo_robots', function($robots) { 2 if (is_paged() && is_archive()) { 3 return 'noindex,follow'; 4 } 5 return $robots; 6 });
La différence avec la première option réside dans la combinaison des conditions. is_paged() && is_archive() signifie: «page de pagination ET page d’archive simultanément». La pagination de la page d’accueil (/page/2/) ne correspond pas à la condition is_archive(), donc son indexation est préservée.
Quelle option choisir:
Situation | Option |
|---|---|
Site volumineux, milliers d’URL de pagination, contrôle maximal nécessaire | Option 1 |
La page d’accueil affiche un flux d’articles, les sous-pages de l’accueil sont importantes pour l’indexation | Option 2 |
Boutique e-commerce sur WooCommerce avec des catégories de produits | Option 2 |
Prévisibilité et minimum d’exceptions nécessaires | Option 1 |
Comment vérifier le résultat
Après avoir inséré le code, vérifiez trois éléments.
Premièrement, le code source. Ouvrez n’importe quelle page de pagination, Ctrl+U, cherchez <meta name="robots". Assurez-vous de voir content="noindex, follow", et non content="index, follow".
Deuxièmement, la Google Search Console. Allez dans l’outil d’inspection d’URL, collez l’adresse de la page paginée et cliquez sur «Tester». Dans le bloc «Indexation», vous verrez le statut: «La page n’est pas indexée» avec le motif «Exclusion par balise noindex». Cela confirme que Googlebot a reçu et traité la directive.
Troisièmement, la dynamique d’indexation. Dans la Search Console, ouvrez «Index» → «Pages». Dans les 2 à 4 semaines suivant la mise en œuvre du code, vous constaterez une augmentation des pages avec le statut «Exclusion par balise noindex» et une réduction des URL paginées indexées. Le processus n’est pas instantané: Googlebot doit réexplorer chaque URL pour lire la nouvelle balise.
Limitations et précautions importantes
Le code modifie le comportement à l’échelle du site. Avant de le mettre en œuvre, assurez-vous de bien comprendre les conséquences.
Supprimer brutalement des milliers de pages de l’index peut temporairement entraîner une baisse de trafic. Si le site a vécu avec l’indexation de la pagination pendant plusieurs années et que certaines sous-pages recevaient du trafic de recherche, vous perdrez ces visites. En contrepartie, vous libérerez du budget de crawl pour les pages qui doivent réellement se positionner. Mais une période d’adaptation de 3 à 6 semaines est inévitable.
Faites une sauvegarde de functions.php avant toute modification. Une erreur de syntaxe dans le code PHP fera tomber tout le site (écran blanc de la mort). Si vous utilisez Code Snippets, l’extension interceptera l’erreur fatale et désactivera le snippet. Si vous modifiez functions.php directement, gardez un accès FTP à portée de main pour restaurer le fichier.
Si le site utilise une extension de cache (WP Rocket, W3 Total Cache), videz le cache après avoir ajouté le code. Sinon, d’anciennes copies HTML des pages sans la nouvelle balise meta robots seront servies aux visiteurs et aux moteurs de recherche pendant plusieurs heures ou jours.
Pour une analyse plus détaillée de toutes les fonctionnalités de Yoast SEO, de l’installation au réglage fin des balises meta, consultez notre guide de configuration de Yoast SEO pour WordPress.
⁉️🤔 Foire aux questions
Pourquoi Yoast SEO a-t-il supprimé l’option intégrée de noindex pour les sous-pages?
Google a appris à reconnaître les séries paginées grâce aux balises
rel="prev"etrel="next"et à diriger les utilisateurs vers la première page. Yoast a estimé que forcer le noindex sur les sous-pages réduit les crawls et interfère avec la réindexation des anciens articles via les liens des pages paginées. La documentation officielle de Yoast le confirme: le réglage a été retiré de l’interface, mais le filtrewpseo_robotsreste disponible pour un contrôle programmatique.
Le filtre wpseo_robots est-il toujours pris en charge en 2026?
Oui. Le filtre
wpseo_robotsfonctionne dans les versions actuelles de Yoast SEO (24.x, 2026) et est documenté dans l’API Metadata sur developer.yoast.com. Un changement important: avant la version 19.8, le filtre permettait de renvoyerfalsepour supprimer la balise meta robots. À partir de la 19.8, renvoyerfalseest ignoré; le filtre attend uniquement une chaîne de caractères ('noindex,follow'ou$robots). Les deux versions de code de cet article renvoient une chaîne et sont entièrement compatibles.
Le code fonctionnera-t-il si le site a une structure de pagination personnalisée?
La fonction
is_paged()repose sur le paramètre de requête WordPress standardpaged. Si la pagination est implémentée via un paramètre personnalisé (par exemple,?pg=2ou un défilement virtuel), la condition ne se déclenchera pas. Pour une pagination personnalisée, remplacezis_paged()par une vérification du query_var spécifique:get_query_var('custom_page_var'). Les extensions comme WP-PageNavi fonctionnent avec le paramètrepagedstandard, il n’y a donc pas de conflit.
Combien de temps faut-il à Google pour supprimer les pages paginées de l’index?
En moyenne, de 2 à 6 semaines. La vitesse dépend de la taille du site et de la fréquence de crawl: sur un site crawl quotidiennement, Googlebot réexplorera les sections principales en 7 à 10 jours; sur un petit blog crawlé chaque semaine, en un mois. Vous pouvez accélérer le processus via une demande de réexploration manuelle dans la Search Console («Index» → «Pages» → sélectionner l’URL → «Demander une indexation»), mais Google traite ces demandes en file d’attente.
Peut-on bloquer la pagination via robots.txt au lieu du noindex?
Techniquement oui:
Disallow: */page/*dans le robots.txt interdira le crawl des URL paginées. Mais c’est moins efficace que le noindex. La raison: le robots.txt bloque le crawl de la page, pas son indexation. Si des liens externes pointent vers une page paginée, Google peut l’indexer comme une «page sans description». En même temps, les liens de la page elle-même ne seront pas non plus crawlés, et vous perdrez le transfert de poids vers les articles.noindex, followrésout les deux problèmes: la page n’est pas indexée, mais les liens qu’elle contient sont crawlés.
Faut-il bloquer l’indexation de la pagination dans votre cas
La réponse tient à deux facteurs: la taille du site et la question de savoir si le budget de crawl est une ressource rare.
Si vous avez 50 articles et trois catégories, ne vous en préoccupez pas. Google déterminera quelles pages afficher dans les résultats de recherche et filtrera de lui-même les moins pertinentes. Le filtre wpseo_robots dans ce scénario est une complexité inutile.
Si vous avez plus de 500 articles, des dizaines de catégories, un blog actif avec des tags et des archives par date, la pagination crée des centaines et des milliers d’URL que le moteur de recherche explore au lieu de vos nouveaux articles. Activez l’option 2 (archives) ou l’option 1 (tout), vérifiez le résultat via le code source et la Search Console, et laissez 3 à 4 semaines à Google pour réexplorer.
Le code est réversible: commentez le filtre, et en l’espace d’un mois, toutes les pages paginées réintégreront l’index. Aucune conséquence irréversible.



