# Antipatterns de pagination infinie : un scroll qui rend un catalogue invisible

> Sur un catalogue industriel en chargement infini, Google n'explore jamais la suite des pages. Ce qu'on observe, pourquoi c'est un problème, et quoi faire.

- Auteur : WordPress Développement
- Publié le : 2023-05-28
- Mis à jour le : 2023-05-28
- Catégorie : SEO &amp; GEO
- URL : https://www.wpmoderne.fr/seo/antipatterns-pagination-infinie-scroll-catalogue/

## L’essentiel

- Le scroll infini masque les pages suivantes aux robots classiques
- Une pagination classique en parallèle rétablit l'accès
- Le lazy loading du contenu principal doit rester distinct du scroll de navigation

96 % des références d'un catalogue industriel de pièces détachées n'apparaissaient dans aucun rapport d'exploration au-delà de la toute première page de résultats, alors que le catalogue complet en comptait plusieurs milliers. Le chiffre, obtenu par croisement entre les journaux serveur et l'export du catalogue, a mis en évidence un antipattern classique du scroll infini appliqué sans filet à la navigation d'un catalogue.

Le site avait choisi le scroll infini pour des raisons d'expérience utilisateur, chaque nouveau lot de vingt références se chargeant automatiquement lorsque le visiteur approchait du bas de la page. Ce choix, pertinent pour l'utilisateur humain qui fait défiler la souris, ne fonctionne tout simplement pas de la même façon pour un robot d'exploration.

## Ce qu'on observe sur le terrain

L'analyse des journaux serveur a montré que Googlebot chargeait systématiquement la première réponse HTML de la page catalogue, contenant les vingt premières références, sans jamais déclencher les requêtes JavaScript de chargement supplémentaire qui alimentaient le scroll pour un visiteur humain. Résultat : le robot voyait toujours le même sous-ensemble limité du catalogue, quelle que soit la page d'entrée.

Ce comportement n'est pas propre à un robot mal configuré : il reflète la réalité de la plupart des robots d'exploration, qui ne simulent pas un défilement de souris et ne déclenchent donc jamais les événements de scroll censés provoquer le chargement de contenu supplémentaire.

## Pourquoi c'est un problème pour l'indexation

> L'essentiel à retenir : Le scroll infini masque les pages suivantes aux robots classiques ; Une pagination classique en parallèle rétablit l'accès ; Le lazy loading du contenu principal doit rester distinct du scroll de navigation

Sans accès aux références situées au-delà du premier lot, ces pages n'existent tout simplement pas pour le moteur de recherche : elles ne peuvent ni être explorées, ni être indexées, ni recevoir de trafic organique, quel que soit par ailleurs leur intérêt commercial. Le problème s'aggrave avec le temps, puisque chaque nouvelle référence ajoutée en fin de catalogue hérite du même sort que ses prédécesseurs.

L'effet secondaire, plus insidieux, touche le budget de crawl global du site : Googlebot, ne trouvant aucun lien vers la suite du catalogue, réoriente son activité d'exploration vers d'autres zones du site, potentiellement moins prioritaires du point de vue commercial.

## Quoi faire : une pagination classique en parallèle

La correction ne consiste pas à supprimer le scroll infini, qui reste apprécié par les visiteurs humains sur ce type de catalogue, mais à lui adjoindre une pagination classique fonctionnant indépendamment, avec des URL propres que le scroll peut ignorer complètement côté interface :

```
function catalogue_pagination_liens( $page_courante, $total_pages ) {
    echo '<nav><ul>';
    for ( $i = 1; $i <= $total_pages; $i++ ) {
        $url = get_pagenum_link( $i );
        echo '<li><a href="' . esc_url( $url ) . '">Page ' . $i . '</a></li>';
    }
    echo '</ul></nav>';
}
```

Ce bloc de liens, positionné en bas de page et masqué visuellement pour les visiteurs qui utilisent le scroll, reste parfaitement accessible à un robot qui suit les liens `<a href>` classiques, indépendamment de toute exécution de JavaScript.

## Distinguer le lazy loading des images du scroll de navigation

Un point de confusion fréquent mérite d'être clarifié : le lazy loading natif des images, activé via l'attribut `loading="lazy"`, ne pose aucun problème d'indexation en soi, puisque le navigateur charge ces images dès que leur position devient proche de la zone visible, sans dépendre d'un scroll actif de l'utilisateur. Le problème décrit ici concerne uniquement le chargement du contenu principal du catalogue, c'est-à-dire les références elles-mêmes, pas les images qui les illustrent.

- Lazy loading des images : sans risque pour l'indexation, mécanisme géré nativement par le navigateur
- Scroll infini du contenu principal : nécessite un mécanisme de repli en pagination classique
- Confondre les deux mène à corriger le mauvais problème et à laisser le vrai persister

## Vérifier que la correction fonctionne

Après la mise en place de la pagination parallèle, un nouveau crawl avec Screaming Frog, configuré pour ignorer l'exécution JavaScript, a permis de vérifier que la totalité des références du catalogue devenait effectivement atteignable en suivant uniquement les liens HTML classiques, sans dépendre d'aucun événement de défilement.

> Le scroll infini plaît aux visiteurs, jamais aux robots. La bonne réponse n'est pas de choisir entre les deux publics, mais de servir chacun par le mécanisme qui lui correspond.

## En résumé

Un catalogue en scroll infini sans filet de pagination classique condamne la majorité de ses références à rester invisibles pour les moteurs de recherche, quelle que soit la qualité de leur contenu. Ajouter une pagination fonctionnant indépendamment du scroll, sans renoncer à ce dernier pour l'expérience humaine, rétablit un accès complet au catalogue pour les robots sans dégrader l'expérience de navigation.
