Comment noindex commenter / répondre dans Drupal 7

9

J'utilise Drupal 7 et j'essaie d'utiliser la balise META "noindex" pour empêcher http://example.com/comment/reply/43/738 d'être indexé par les moteurs de recherche.

La page de commentaire / réponse est en cours d'indexation, même si j'ai utilisé le rôle suivant dans robots.txt:

Disallow: /comment/reply/

Dans quel fichier de modèle dois-je incorporer la balise META "noindex" pour / comment / reply / pages?

Naweed Chougle
la source
1
Quelle règle avez-vous écrite dans votre robots.txtdossier?
tostinni
@tostini: J'ai utilisé Disallow: / comment / reply /
Naweed Chougle

Réponses:

7

Vous pouvez utiliser n'importe lequel de ces codes dans robots.txt:

User-agent: *
Disallow: /*comment

Cela négligera toutes les URL contenant des commentaires .

Vous pouvez également utiliser ce qui suit, pour négliger chaque URL contenant / commentaire .

User-agent: *
Disallow: /comment/reply
User-agent: *
Disallow: /comment

Après cela, vérifiez si cela fonctionne ou non en utilisant le vérificateur Google Robots.txt .

Vivek R
la source
Que penses-tu de cela? google.co.in/support/forum/p/Webmasters/…
Naweed Chougle
Étant donné que Noindex est la balise META, cela empêchera l'indexation de la page entière.Maintenant, vous avez désactivé les commentaires de l'exploration maintenant afin de pouvoir supprimer les liens indexés de Google à l'aide des outils pour les webmasters. aller à la configuration du site >> accès au robot >> Supprimer l'URL. Je pense que ce sera la meilleure solution.
Vivek R
Après avoir supprimé les URL à l'aide des outils pour les webmasters, de nouvelles avec le même modèle / commentaire / réponse / apparaissent! Et les URL ont été indexées même si Disallow: / comment / reply / était utilisé dans le fichier robots.
Naweed Chougle
2
donnez un peu de temps au moteur de recherche pour le supprimer ... cela ne se fera pas du jour au lendemain, alors attendez un peu ... peut-être une semaine environ.
Vivek R
Comme je l'ai dit plus tôt, les URL étaient indexées même après avoir utilisé Disallow / comment / reply / .... Cela pourrait se produire en raison de liens vers le formulaire de réponse provenant de sites externes. J'ai mis à jour ma question et inclus des détails sur le besoin éventuel de la balise meta noindex.
Naweed Chougle
4

Dans template.php de votre thème, ou dans page.tpl.php, vous pouvez vérifier l'url de la page pour voir si la page est une page de commentaire, puis ajouter du code qui insérera la balise META.

Vous pouvez le faire dans la fonction template.php YOURTHEME_preprocess_html (), ou l'insérer quelque part près du haut de page.tpl.php. Le code à ajouter serait quelque chose comme ceci:

    <?php
      $element = array(
        '#tag' => 'meta', 
        '#attributes' => array(
          'property' => 'robots',
          'content' => 'noindex',
        ),
      );
    drupal_add_html_head($element, 'robots');
?>

Voir drupal_add_html_head () .

jmarkel
la source
Merci, @jmarkel! Pouvez-vous m'aider à vérifier, par programme, que la page est quelque chose comme: example.com/comment/reply/32/409 .... afin que je puisse définir le méta noindex uniquement pour ces pages?
Naweed Chougle
1
Voici le problème - il n'y a vraiment pas de type de nœud comme commentaire - ils ne semblent vivre qu'avec les nœuds sur lesquels ils commentent. Il n'est donc pas vraiment possible de les distinguer génériquement. Si vous cliquez sur le lien permanent d'un commentaire, vous obtenez une URL qui commence par «commentaire /», mais cela n'aide pas car ils ne portent pas cette URL en interne. Je suppose que vous pouvez rechercher l'argument "page" sur les pages suivantes (c'est-à-dire lorsqu'il y a plus d'une page de commentaires) mais il vous reste à faire la distinction entre les commentaires et les autres pages à l'aide d'un pager. Longue histoire courte - je ne sais pas comment le faire ...
jmarkel
Pour l'instant, @jmarkel, je devrai vivre avec l'outil de suppression d'URL de Google Webmaster. En passant par l'une des vidéos de Matt Cutts, il semble qu'une URL supprimée ne réapparaîtra pas. Le problème est que j'en ai vu de nouveaux apparaître dans les résultats de recherche!
Naweed Chougle
1

Mise à jour : les œuvres suivantes, elle s'imprime <meta name="robots" content="noindex,follow" />dans la section tête de toutes les pages accessibles via un chemin commençant par comment. C'est pour contourner le fait qu'une page comme comment / 3 porte en interne node / nid comme arguments, comme jmarkel l'a souligné ci-dessus.

<?php
function metarobots_comment_help() {
  $url_components = explode('/', request_uri());
  if ($url_components[1] == 'comment') {
    $elements = array(
      '#tag' => 'meta',
      '#attributes' => array(
        'name' => 'robots',
        'content' => 'noindex,follow',
      ),
    );
   drupal_add_html_head($elements, 'robots');
  }
}

À l'aide d'un commentaire utile sur la fonction arg .

Espérons que cela sera éventuellement traité par le module Meta Tags - il y a une demande de fonctionnalité , mais il n'est pas encore clair si l'auteur du module souhaite prendre en charge cela.


[Mon commentaire précédent] Je voulais juste ajouter que l'utilisation de robots.txt n'est pas la réponse - comme vous l'avez déjà remarqué, les liens continuent d'apparaître dans les résultats de recherche malgré l'utilisation Disallow: /comment. Cela est attendu, car robots.txt indique au bot de ne pas explorer ces pages, mais il ne dit pas à Google de ne pas l'indexer. Comme expliqué sur SEOmoz Robots.txt et Meta Robots Best Practices for Search Engine Optimization :

Dans la plupart des cas, les méta robots avec les paramètres "noindex, follow" doivent être utilisés comme moyen de restreindre l'exploration ou l'indexation.

Bloquer avec Robots.txt - Cela indique aux moteurs de ne pas explorer l'URL donnée mais leur dit qu'ils peuvent conserver la page dans l'index et l'afficher dans les résultats.

Bloquer avec Meta NoIndex - Cela indique aux moteurs qu'ils peuvent visiter mais ils ne sont pas autorisés à afficher l'URL dans les résultats. (C'est la méthode recommandée) Donc, la balise META noindex que vous recherchez est en effet ce dont vous avez besoin.

arjan
la source
C'est vrai, @arjan, vous avez reformulé un des commentaires que j'ai fait avec des détails supplémentaires. Je cherche un moyen de définir un méta noindex pour les pages que je ne veux pas dans les résultats de recherche.
Naweed Chougle
1
Oui, il semblait que vous n'étiez pas certain à 100% alors je voulais ajouter que c'est correct;)
arjan
@ProgrammingEnthusiast: voir la mise à jour ci-dessus.
arjan