Убираем ссылки на 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 попробуй.

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

 8888888888  888       888            888       888 
888 888 o 888 888 o 888
888 888 d8b 888 888 d8b 888
8888888 888 d888b 888 888 888 888 d888b 888
888 888d88888b888 888 888 888d88888b888
888 88888P Y88888 888 888 88888P Y88888
888 8888P Y8888 Y88b 888 8888P Y8888
8888888888 888P Y888 "Y88888 888P Y888


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