Убираем ссылки на 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  8888888888     d8b           
d88P 888 Y8P
d88P 888
d88P 8888888 8888 888 888
88888888 888 "888 888 888
d88P 888 888 Y88 88P
d88P 888 888 Y8bd8P
d88P 8888888888 888 Y88P
888
d88P
888P"
Зарегистрируйтесь для добавления материалов без проверки.