Как noindex комментировать / отвечать в Drupal 7

9

Я использую Drupal 7 и пытаюсь использовать метатег noindex для предотвращения индексации http://example.com/comment/reply/43/738 поисковыми системами.

Страница комментариев / ответов индексируется, хотя я использовал следующую роль в файле robots.txt:

Disallow: /comment/reply/

В какой файл шаблона мне нужно будет включить метатег noindex для / comment / reply / pages?

Naweed Chougle
источник
1
Какое правило вы написали в своем robots.txtфайле?
Тостинни
@tostini: я использовал Disallow: / comment / reply /
Naweed Chougle

Ответы:

7

Вы можете использовать любой из этого кода в robots.txt:

User-agent: *
Disallow: /*comment

Это будет игнорировать каждый URL, который содержит комментарий .

Вы также можете использовать следующее, чтобы пренебрегать каждым URL, содержащим / комментарий .

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

После этого проверьте, работает ли он или нет, с помощью средства проверки Google Robots.txt .

Вивек Р
источник
Что Вы думаете об этом? google.co.in/support/forum/p/Webmasters/…
Naweed Chougle
Так как Noindex является метатегом, он будет препятствовать индексации всей страницы. Теперь вы отключили сканирование комментариев и теперь можете удалять проиндексированные ссылки из Google с помощью инструментов для веб-мастеров. Перейдите в раздел конфигурации сайта >> Доступ для сканера >> Удалить URL. Я думаю, что это будет лучшим решением.
Vivek R
После того, как я удалю URL с помощью инструментов для веб-мастеров, появятся новые с таким же шаблоном / комментарий / ответ /! И URL были проиндексированы, хотя Disallow: / comment / reply / использовался в файле роботов.
Naweed Chougle
2
Дайте время, чтобы поисковая система удалила ... это не произойдет в одночасье, так что подождите некоторое время ... может быть, неделю или около того.
Vivek R
Как я уже говорил ранее, URL-адреса индексируются даже после того, как я использовал Disallow / comment / reply / .... Это может происходить из-за ссылок на форму ответа, поступающих с внешних сайтов. Я обновил свой вопрос и включил подробную информацию о возможной необходимости мета-тега noindex.
Naweed Chougle
4

В template.php вашей темы или в page.tpl.php вы можете проверить URL страницы, чтобы увидеть, является ли страница страницей комментариев, а затем добавить код, который будет вставлять метатег.

Вы можете сделать это в функции template.php YOURTHEME_preprocess_html () или вставить ее где-нибудь в верхней части page.tpl.php. Код для добавления будет выглядеть примерно так:

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

Смотрите drupal_add_html_head () .

jmarkel
источник
Спасибо, @jmarkel! Можете ли вы помочь мне проверить программно, что страница выглядит примерно так: example.com/comment/reply/32/409 .... чтобы я мог установить meta noindex только для таких страниц?
Naweed Chougle
1
Вот в чем проблема - на самом деле нет такого типа узла, как комментарий - они, кажется, живут только с узлами, которые комментируют. Так что на самом деле их невозможно отличить. Если вы нажмете на постоянную ссылку комментария, вы получите URL, который начинается с «comment /», но это не поможет, потому что они не содержат этот URL внутри. Я полагаю, что вы могли бы искать аргумент "page" на последующих страницах (то есть, когда имеется более одной страницы комментариев), но вам все равно придется различать комментарии и другие страницы, используя пейджер. Короче говоря - не уверен, как это сделать ...
jmarkel
На данный момент, @jmarkel, мне придется жить с инструментом удаления URL для веб-мастеров Google. Судя по одному из видео Мэтта Каттса, кажется, что однажды удаленный URL не появится снова. Проблема в том, что я видел новые, появляющиеся в результатах поиска!
Naweed Chougle
1

Обновление : работает следующее, печатает <meta name="robots" content="noindex,follow" />в разделе заголовка все страницы, к которым осуществляется доступ, начиная с пути comment. Это нужно для того, чтобы обойти тот факт, что страница, подобная comment / 3, внутренне несет в качестве аргументов node / nid, как указывалось выше в jmarkel.

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

С помощью полезного комментария к функции arg .

Надеемся, что в конечном итоге это будет решено модулем мета-тегов - есть запрос на добавление функции , но пока не ясно, хочет ли автор модуля поддержать это.


[Мой предыдущий комментарий] Я просто хотел добавить, что использование robots.txt не является ответом - как вы уже заметили, ссылки продолжают появляться в результатах поиска, несмотря на использование Disallow: /comment. Это ожидаемо, поскольку robots.txt говорит боту не сканировать эти страницы, но не говорит Google не индексировать его. Как объяснено в SEOmoz Robots.txt и Meta Robots Best Practices для поисковой оптимизации :

В большинстве случаев мета-роботы с параметрами «noindex, follow» должны использоваться как способ ограничения сканирования или индексации.

Блокировать с помощью Robots.txt - Это говорит механизмам не сканировать данный URL, но говорит им, что они могут сохранить страницу в индексе и отобразить ее в результатах.

Блокировать с помощью Meta NoIndex - это говорит механизмам, которые они могут посетить, но им не разрешено отображать URL в результатах. (Это рекомендуемый метод) Итак, метатег noindex, который вы ищете, действительно то, что вам нужно.

Арьян
источник
Это правда, @arjan, вы повторили один из моих комментариев с дополнительными подробностями. Я ищу способ установить мета-индекс для страниц, которые мне не нужны в результатах поиска.
Naweed Chougle
1
Да, казалось, вы не были на 100% уверены, поэтому я хотел добавить, что это правильно;)
arjan
@ProgrammingEnthusiast: см. Обновление выше.
Арджан