Убираем ссылки на RSS со страниц терминов

Есть у Drupal такая привычка на странице терминов таксономии указывать в метатегах ссылки на RSS Feed, а у Google есть привычка игнорировать Robots.txt и индексировать весь этот хлам. В один момент мне это надоело и я решил побороть это.

Может для разработчика это и мелочь, но меня, как SEOшника, наличие мусорных страниц в "соплях" Google (Supplemental Index) дико раздражают. Индексируются эти страницы благодаря тому, что в страницы присутствует ссылка на RSS, например:

  1. <link rel="alternate" type="application/rss+xml" title="RSS - Google" href="http://www.angarsky.ru/taxonomy/term/10/feed" />

Первой мыслью для решения этой задачи было использовать hook_menu_alter() для отключения страницы RSS термина вообще в целом. Однако это не помогло: страницы отключена, а ссылка в метатегах все равно осталась. Поэтому пришлось подбираться к метатегам через hook_html_head_alter():

  1. /**
  2.  * Implements hook_html_head_alter().
  3.  */
  4. function MY_MODULE_html_head_alter(&$head_elements) {
  5. foreach ($head_elements as $key => $element) {
  6. // Disables links to taxonomy term rss.
  7. $href = isset($element['#attributes']['href']) ? $element['#attributes']['href'] : NULL;
  8. if (isset($href) && preg_match("/taxonomy\/term\/[0-9]+\/feed$/", $href)) {
  9. unset($head_elements[$key]);
  10. }
  11. }
  12. }

Видел решение, где вместо RegExp предлагалось проверять на $element['#attributes']['type'] == 'application/rss+xml', однако считаю его не совсем корректным, так как этой проверкой можно зарубить ссылки и на нужные фиды RSS.

Комментарии

Аватар пользователя Dzmitry Roshchyn
Dzmitry Roshchyn

Благодарю за код. Вопрос. Как мне убрать значок и ссылку в нем на ленту, как на главной станице так и таксономиях. Тема стандартная, garland.

Аватар пользователя angarsky
angarsky
В page.tpl.php убрать $feed_icons попробуй.

Добавить комментарий

            .d8888b.   d8b  Y88b   d88P 
d88P Y88b Y8P Y88b d88P
888 Y88o88P
.d8888b .d88P 888 Y888P
88K .od888P" 888 888
"Y8888b. d88P" 888 888
X88 888" 888 888
88888P' 888888888 888 888


Зарегистрируйтесь для добавления материалов без проверки.