🔍 SEOIntermédiaire PS 1.7 PS 8.x

Empêcher l'indexation des pages tag PrestaShop malgré robots.txt

Les pages tag PrestaShop restent indexées malgré robots.txt ? Découvrez comment bloquer leur indexation avec la balise meta noindex dans le head de votre thème.

En bref : Le fichier robots.txt bloque le crawl mais pas l'indexation : les pages tag PrestaShop restent dans Google. La solution est d'injecter une balise meta noindex conditionnelle dans le head via Smarty ou un module hook displayHeader, puis de retirer le Disallow correspondant du robots.txt.

Publié le 21 mars 2026 5 min de lecture Alexandre Carette

Le problème : robots.txt ne suffit pas à désindexer les pages tag

Une erreur fréquente en SEO PrestaShop consiste à croire que bloquer une URL dans le fichier robots.txt empêche Google de l'indexer. C'est faux. Le fichier robots.txt empêche le crawl (l'exploration), mais pas l'indexation.

Concrètement, si d'autres pages de votre site — ou des sites externes — contiennent des liens vers vos pages tag (?tag=mot-clé), Google peut parfaitement les indexer sans jamais les explorer. Vous verrez alors dans la Search Console des URLs du type https://votresite.com/recherche?tag=chaussures apparaître dans l'index, souvent avec la mention « URL indexée, mais bloquée par le robots.txt ».

Les pages tag PrestaShop sont particulièrement problématiques pour le SEO :

  • **Contenu dupliqué** : elles affichent des listes de produits déjà présentes dans vos catégories
  • **Contenu mince** : souvent peu ou pas de contenu textuel unique
  • **Dilution du crawl budget** : des centaines de combinaisons possibles gaspillent les ressources de Googlebot
  • **Cannibalisation** : elles peuvent concurrencer vos pages catégories sur les mêmes requêtes

La solution : la balise meta robots noindex

Google recommande officiellement d'utiliser la balise pour empêcher l'indexation d'une page. Contrairement au robots.txt, cette directive nécessite que Google explore la page pour la lire, mais une fois lue, elle ordonne formellement au moteur de retirer la page de son index.

Pourquoi noindex est supérieur à robots.txt pour ce cas

MéthodeBloque le crawlBloque l'indexationFiabilité `robots.txt`OuiNonInsuffisant seul `meta noindex`NonOuiRecommandé par Google `robots.txt` + `meta noindex`ContradictoireAléatoireÀ éviter

Point crucial : si vous bloquez le crawl via robots.txt ET ajoutez une balise noindex, Google ne pourra jamais lire la balise noindex puisqu'il ne crawlera pas la page. Les deux méthodes sont contradictoires. Il faut donc retirer le blocage des pages tag du robots.txt et utiliser uniquement la balise noindex.

Implémentation dans PrestaShop 1.7

Dans PrestaShop 1.7, le fichier de template responsable de la section se trouve dans votre thème. L'injection conditionnelle se fait via Smarty.

Étape 1 : Identifier le bon fichier template

Le fichier cible est le template head de votre thème :


/themes/votre-theme/templates/_partials/head.tpl

Ce fichier est inclus dans le layout principal layout-both-columns.tpl (ou tout autre layout actif). Vous pouvez intervenir dans l'un ou l'autre.

Étape 2 : Ajouter la condition Smarty

Insérez le code suivant à l'intérieur du bloc , idéalement après les balises meta existantes :


{if $smarty.server.REQUEST_URI|strpos:"?tag="}
  <meta name="robots" content="noindex, nofollow">
  <meta name="googlebot" content="noindex, nofollow">
{/if}

Explications du code :

  • `$smarty.server.REQUEST_URI` : variable Smarty qui contient l'URI de la requête en cours (équivalent de `$_SERVER['REQUEST_URI']` en PHP)
  • `|strpos:"?tag="` : le modificateur Smarty `strpos` vérifie si la chaîne `?tag=` est présente dans l'URL
  • La double balise (`robots` + `googlebot`) cible à la fois tous les moteurs et spécifiquement Googlebot
  • `nofollow` est ajouté en complément pour indiquer aux moteurs de ne pas suivre les liens présents sur ces pages

Étape 3 : Vérification

Après modification, vérifiez le résultat :

  1. Accédez à une page tag de votre boutique (ex : `votresite.com/recherche?tag=test`)
  2. Affichez le code source (Ctrl+U)
  3. Recherchez `noindex` dans le code — la balise doit être présente dans le ``
  4. Accédez à une page produit ou catégorie classique et vérifiez que la balise n'y apparaît **pas**
  5. Implémentation dans PrestaShop 8.x

    PrestaShop 8.x conserve le moteur de templates Smarty, la méthode reste donc identique. Cependant, quelques ajustements sont recommandés pour une approche plus robuste.

    Approche améliorée avec un module personnalisé

    Pour une solution plus propre et résistante aux mises à jour du thème, préférez un module qui utilise le hook displayHeader :

    
    <?php
    // modules/ac_seonoindex/ac_seonoindex.php
    
    class Ac_SeoNoindex extends Module
    {
        public function __construct()
        {
            $this->name = 'ac_seonoindex';
            $this->version = '1.0.0';
            $this->author = 'Alexandre Carette';
            $this->tab = 'seo';
            parent::__construct();
            $this->displayName = $this->l('SEO NoIndex Manager');
        }
    
        public function install()
        {
            return parent::install()
                && $this->registerHook('displayHeader');
        }
    
        public function hookDisplayHeader($params)
        {
            $requestUri = $_SERVER['REQUEST_URI'] ?? '';
    
            // Pages tag
            if (strpos($requestUri, '?tag=') !== false || strpos($requestUri, '&tag=') !== false) {
                return '<meta name="robots" content="noindex, nofollow">' . "\n"
                     . '<meta name="googlebot" content="noindex, nofollow">';
            }
    
            return '';
        }
    }
    

    Avantages de l'approche module :

    • Survit aux mises à jour du thème
    • Facilement extensible (ajouter d'autres patterns d'URL à bloquer)
    • Activable/désactivable depuis le back-office
    • Testable indépendamment du thème

    Patterns d'URL supplémentaires à considérer

    Profitez de cette implémentation pour bloquer d'autres URLs parasites courantes :

    
    public function hookDisplayHeader($params)
    {
        $requestUri = $_SERVER['REQUEST_URI'] ?? '';
        $noindexPatterns = [
            '?tag=',
            '&tag=',
            '?q=',
            '&q=',
            'controller=search',
            'order=product.',
            '?n=',          // pagination de recherche
        ];
    
        foreach ($noindexPatterns as $pattern) {
            if (strpos($requestUri, $pattern) !== false) {
                return '<meta name="robots" content="noindex, nofollow">' . "\n"
                     . '<meta name="googlebot" content="noindex, nofollow">';
                }
        }
    
        return '';
    }
    

    Nettoyer le robots.txt

    Une fois la balise noindex en place, pensez à mettre à jour votre robots.txt. Retirez les lignes qui bloquaient les pages tag :

    
    # Avant (problématique)
    - Disallow: /*?tag=
    - Disallow: /recherche
    
    # Après (correct)
    # Les pages tag sont gérées via meta noindex
    # Ne pas bloquer le crawl pour que Google puisse lire la directive noindex
    

    Suivre la désindexation dans Google Search Console

    Après déploiement :

    1. Allez dans **Google Search Console > Pages**
    2. Filtrez par « URL contenant `?tag=` »
    3. Vérifiez que le statut passe progressivement à « Exclue – Page avec balise noindex »
    4. Utilisez l'**outil d'inspection d'URL** sur une page tag pour forcer Google à re-crawler
    5. La désindexation complète peut prendre de quelques jours à plusieurs semaines selon la fréquence de crawl de votre site.

      Résumé des bonnes pratiques

      • Ne comptez jamais sur `robots.txt` seul pour désindexer des pages
      • Utilisez `meta noindex` dans le `` pour un blocage fiable
      • Préférez un module PrestaShop à une modification directe du thème
      • Retirez les directives `Disallow` contradictoires du `robots.txt`
      • Surveillez la progression dans la Search Console
      • Étendez le `noindex` à toutes les pages à faible valeur SEO (recherche, tri, filtres)
#robots.txt #noindex #pages tag #indexation Google #Smarty #SEO PrestaShop #crawl budget

Questions fréquentes

Tout ce que vous devez savoir sur ce sujet.

Un projet PrestaShop ?

Discutons-en directement.

★★★★★

193 projets livrés

Gratuit & sans engagement — réponse sous 24h

Alexandre Carette

Alexandre Carette

Expert PrestaShop & Architecture E-commerce

Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.