Как не указывать комментарий/ответ в Drupal 7


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

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

Disallow: /comment/reply/

В каком файле шаблона мне нужно будет включить мета-тег "noindex" для /комментариев/ответов/страниц?

 9
Author: kiamlaluno, 2011-12-26

3 answers

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

User-agent: *
Disallow: /*comment

При этом будет игнорироваться каждый URL-адрес, содержащий комментарий .

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

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

После этого проверьте, работает ли он или нет, используя Google Robots.txt контролер.

 7
Author: Vivek R, 2012-01-14 22:04:04

В вашей теме 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().

 4
Author: jmarkel, 2012-01-14 22:09:02

Обновление: работает следующее: он печатает <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 и Лучшие практики Мета-роботов для оптимизации поисковых систем:

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

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

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

 1
Author: arjan, 2012-01-15 14:53:41