# Noindex et robots.txt ne font pas la même chose : la confusion qui coûte cher

> Bloquer une page dans robots.txt ne l'empêche pas forcément d'apparaître dans Google. Explication du mécanisme, pour éviter une erreur fréquente chez les développeurs juniors.

- Auteur : WordPress Développement
- Publié le : 2020-09-15
- Mis à jour le : 2020-09-15
- Catégorie : SEO &amp; GEO
- URL : https://www.wpmoderne.fr/seo/noindex-robots-txt-confusion-qui-coute-cher/

## L’essentiel

- robots.txt bloque l'exploration, pas l'indexation
- Une page bloquée peut apparaître sans description dans les résultats
- noindex exige que la page soit explorable pour être vue

Pourquoi une page ajoutée dans `robots.txt` continue-t-elle parfois d'apparaître dans les résultats de recherche Google ? C'est une question que se posent régulièrement les développeurs qui débutent en référencement technique, et la réponse tient à une confusion très répandue entre deux mécanismes qui n'agissent pas au même endroit du processus.

D'un côté, le fichier `robots.txt` agit sur l'exploration (le *crawl*) : il indique aux robots quelles URL ils ont le droit de visiter. De l'autre, la balise meta `noindex` agit sur l'indexation : elle indique qu'une page, même visitée, ne doit pas apparaître dans les résultats. Ces deux étapes sont distinctes, et bloquer la première n'empêche pas forcément la seconde.

## Ce que fait réellement robots.txt

Le fichier `robots.txt` est une simple liste de règles d'autorisation ou d'interdiction d'exploration, placée à la racine du site. Sur WordPress, son contenu par défaut est généré dynamiquement via le filtre `robots_txt`, que l'on peut modifier ainsi :

```
add_filter( 'robots_txt', function( $output, $public ) {
    $output .= "Disallow: /panier/\n";
    return $output;
}, 10, 2 );
```

Un robot respectueux des règles ne visitera donc jamais l'URL `/panier/`. Mais s'il découvre cette même URL par un lien externe, il peut connaître son existence sans jamais l'avoir explorée — et Google peut afficher cette URL dans ses résultats, sans titre ni description, avec la mention « Aucune information n'est disponible pour cette page ».

## Ce que fait réellement la balise noindex

> L'essentiel à retenir : robots.txt bloque l'exploration, pas l'indexation ; Une page bloquée peut apparaître sans description dans les résultats ; noindex exige que la page soit explorable pour être vue

La balise meta `<meta name="robots" content="noindex">`, elle, est lue au moment où le robot explore effectivement la page. Elle indique explicitement de ne pas l'ajouter à l'index. C'est là que réside le piège : pour qu'un robot lise cette instruction, il doit pouvoir explorer la page. Si la page est bloquée par `robots.txt`, le robot ne la visite jamais et ne voit donc jamais l'instruction `noindex` qu'elle contient.

Sur un thème WordPress sans extension, on peut ajouter cette balise manuellement pour une page donnée via le hook `wp_head` :

```
add_action( 'wp_head', function() {
    if ( is_page( 'brouillon-interne' ) ) {
        echo '<meta name="robots" content="noindex">' . "\n";
    }
} );
```

## Le piège concret

Un développeur junior qui veut exclure une page de l'index Google commet souvent l'erreur suivante : il ajoute la ligne `Disallow: /brouillon-interne/` dans `robots.txt`, pensant avoir réglé le problème. Quelques semaines plus tard, la page apparaît toujours dans Google, simplement dépourvue de description. La cause : le robot ne peut plus explorer la page, donc il ne peut plus non plus lire une éventuelle balise `noindex` qui aurait réellement réglé le problème.

## Un scénario concret rencontré en audit

Sur un site institutionnel, une section entière d'archives d'anciens communiqués avait été ajoutée à `robots.txt` plusieurs années auparavant, dans l'idée de « nettoyer l'index ». En reprenant l'historique du rapport de couverture, ces mêmes URL apparaissaient encore, des années plus tard, sous la mention « Indexée, bien que bloquée par le fichier robots.txt ». Autrement dit, Google savait que ces pages existaient — par des liens externes anciens — sans jamais avoir pu les explorer pour vérifier s'il fallait ou non les afficher.

La correction a consisté à retirer temporairement la règle `Disallow`, le temps que le robot explore chaque page et lise une balise `noindex` ajoutée en parallèle, avant de vérifier leur retrait effectif du rapport de couverture puis, seulement à ce moment-là, de décider si un blocage d'exploration restait utile pour économiser le budget de crawl.

## La bonne méthode selon l'objectif

- Économiser le budget de crawl sur des pages sans valeur SEO (recherche interne, panier) : `robots.txt`
- Empêcher qu'une page apparaisse dans les résultats de recherche : balise `noindex`, sans bloquer l'exploration
- Retirer une page déjà indexée : d'abord laisser le robot explorer la page avec `noindex`, attendre son retrait, puis seulement bloquer l'exploration si besoin

> Le repère à donner à un client pressé : robots.txt ferme la porte d'entrée, noindex retire l'objet de la vitrine. Fermer la porte ne vide pas la vitrine si l'objet y était déjà.

## En résumé

Confondre ces deux mécanismes conduit à des situations où une page reste visible dans les résultats de recherche malgré une tentative de blocage, ou pire, où une page qu'on croyait exclue reste indexée indéfiniment. La règle à retenir est simple : pour qu'une instruction d'indexation soit lue, la page doit rester explorable. Le blocage d'exploration et l'exclusion d'indexation sont deux outils différents, à utiliser selon un objectif précis, jamais l'un à la place de l'autre.
