Cómo no indexar comentarios / respuestas en Drupal 7

9

Uso Drupal 7 y estoy intentando usar la metaetiqueta "noindex" para evitar que los motores de búsqueda indexen http://example.com/comment/reply/43/738 .

La página de comentarios / respuestas se está indexando, a pesar de que he utilizado la siguiente función en robots.txt:

Disallow: /comment/reply/

¿En qué archivo de plantilla tendré que incorporar la metaetiqueta "noindex" para / comment / reply / pages?

Naweed Chougle
fuente
1
¿Qué regla has escrito en tu robots.txtarchivo?
tostinni
@tostini: He usado Disallow: / comment / reply /
Naweed Chougle el

Respuestas:

7

Puede usar cualquiera de este código en robots.txt:

User-agent: *
Disallow: /*comment

Esto descuidará cada URL que contenga comentarios .

También puede usar lo siguiente para descuidar cada URL que contenga / comente .

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

Después de hacer esto, verifique si funciona o no utilizando el verificador Google Robots.txt .

Vivek R
fuente
¿Qué piensas sobre esto? google.co.in/support/forum/p/Webmasters/…
Naweed Chougle
Dado que Noindex es la metaetiqueta, evitará que toda la página se indexe. Ahora ha inhabilitado los comentarios para que pueda rastrear los enlaces indexados de Google utilizando las herramientas de webmaster. vaya a la configuración del sitio >> acceso al rastreador >> Eliminar URL. Creo que esta será la mejor solución.
Vivek R
Después de eliminar las URL con las herramientas para webmasters, aparecen nuevas con el mismo patrón / comentario / respuesta / aparecer Y las URL se indexaron a pesar de que Disallow: / comment / reply / se estaba utilizando en el archivo de robots.
Naweed Chougle
2
dedique algo de tiempo para que el motor de búsqueda se elimine ... no va a suceder de la noche a la mañana, así que espere un momento ... puede ser una semana más o menos.
Vivek R
Como dije antes, las URL se indexaban incluso después de usar Disallow / comment / reply / .... Esto podría estar sucediendo debido a los enlaces al formulario de respuesta que provienen de sitios externos. He actualizado mi pregunta e incluido detalles sobre la posible necesidad de la etiqueta meta noindex.
Naweed Chougle
4

En el template.php de su tema, o en page.tpl.php, puede verificar la url de la página para ver si la página es una página de comentarios, luego agregar código que inserte la metaetiqueta.

Puede hacerlo en la función template.php YOURTHEME_preprocess_html (), o insertarlo en algún lugar cerca de la parte superior de page.tpl.php. El código para agregar sería algo como esto:

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

Ver drupal_add_html_head () .

jmarkel
fuente
Gracias, @jmarkel! ¿Pueden ayudarme a verificar, programáticamente, que la página es algo así como: example.com/comment/reply/32/409 .... para que pueda configurar el meta índice no solo para esas páginas?
Naweed Chougle
1
Aquí está el problema: realmente no existe ningún tipo de nodo como un comentario, solo parecen vivir con los nodos sobre los que están comentando. Por lo tanto, no es realmente posible distinguirlos genéricamente. Si hace clic en el enlace permanente de un comentario, obtiene una url que comienza con 'comment /' pero que no ayuda porque no llevan esa url internamente. Supongo que podría buscar el argumento de "página" en las páginas siguientes (es decir, cuando hay más de una página de comentarios), pero aún tiene que distinguir entre comentarios y otras páginas utilizando un localizador. Larga historia corta - no está seguro de cómo hacerlo ...
jmarkel
Por ahora, @jmarkel, tendré que vivir con la herramienta de eliminación de URL del webmaster de Google. Al pasar por uno de los videos de Matt Cutts, parece que una URL eliminada no volverá a aparecer. ¡El problema es que he visto aparecer nuevos en los resultados de búsqueda!
Naweed Chougle
1

Actualización : lo siguiente funciona, se imprime <meta name="robots" content="noindex,follow" />en la sección de encabezado de todas las páginas a las que se accede a través de una ruta que comienza con comment. Esto es para evitar el hecho de que una página como comment / 3 lleva internamente node / nid como argumentos, como jmarkel señaló anteriormente.

<?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');
  }
}

Con la ayuda de un comentario útil sobre la función arg .

Con suerte, esto eventualmente será abordado por el módulo Meta Tags: hay una solicitud de función , pero aún no está claro si el autor del módulo desea admitir esto.


[Mi comentario anterior] Solo quería agregar que el uso de robots.txt no es la respuesta, como ya lo notó, los enlaces siguen apareciendo en los resultados de búsqueda a pesar de usarlos Disallow: /comment. Esto se espera, ya que robots.txt le dice al bot que no rastree esas páginas, pero no le dice a Google que no lo indexe. Como se explica en SEOmoz Robots.txt y las mejores prácticas de Meta Robots para la optimización de motores de búsqueda :

En la mayoría de los casos, los meta robots con parámetros "noindex, follow" deben emplearse como una forma de restringir el rastreo o la indexación.

Bloquear con Robots.txt: esto les dice a los motores que no rastreen la URL dada, pero les dice que pueden mantener la página en el índice y mostrarla en los resultados.

Bloquear con Meta NoIndex: esto le dice a los motores que pueden visitar, pero no se les permite mostrar la URL en los resultados. (Este es el método recomendado) Entonces, la metaetiqueta noindex que está buscando es lo que necesita.

Arjan
fuente
Eso es cierto, @arjan, has repetido uno de los comentarios que hice con detalles adicionales. Estoy buscando una manera de establecer meta noindex para las páginas que no quiero en los resultados de búsqueda.
Naweed Chougle
1
Sí, parecía que no estabas 100% seguro, así que quería agregar que es correcto;)
arjan
@ProgrammingEnthusiast: ver actualización más arriba.
Arjan