Убираем ссылки на 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.   8888888888  8888888888 
d88P Y88b d88P d88P
888 d88P d88P
.d8888b .d88P d88P d88P
d88P" .od888P" 88888888 88888888
888 d88P" d88P d88P
Y88b. 888" d88P d88P
"Y8888P 888888888 d88P d88P


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