Как не указывать комментарий/ответ в Drupal 7
Я использую Drupal 7, и я пытаюсь использовать мета-тег "noindex", чтобы предотвратить http://example.com/comment/reply/43/738 от индексирования поисковыми системами.
Страница комментариев/ответов индексируется, хотя я использовал следующую роль в robots.txt :
Disallow: /comment/reply/
В каком файле шаблона мне нужно будет включить мета-тег "noindex" для /комментариев/ответов/страниц?
3 answers
Вы можете использовать любой из этих кодов в robots.txt :
User-agent: *
Disallow: /*comment
При этом будет игнорироваться каждый URL-адрес, содержащий комментарий .
Вы также можете использовать следующее, чтобы игнорировать каждый URL-адрес, содержащий /комментарий.
User-agent: *
Disallow: /comment/reply
User-agent: *
Disallow: /comment
После этого проверьте, работает ли он или нет, используя Google Robots.txt контролер.
В вашей теме 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().
Обновление: работает следующее: он печатает <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, которым вы являетесь после - это действительно то, что вам нужно.