Drupal 8 автоматически генерирует несколько link-тегов, которые могут навредить SEO. В частности, теги rel="delete-form", rel="edit-form", rel="version-history" и rel="revision" могут индексироваться с ошибками 401 и попадать в поисковую выдачу.
Вместо правки core-файлов создадим небольшой кастомный модуль «Unset HTML head link». Он состоит из двух файлов.
Файл конфигурации
Файл unset_html_head_link.info.yml:
# Имя модуля. name: Unset HTML head link # Описание. description: 'Module for unset any HTML links (like rel="delete-form" or rel="edit-form" and etc.) from head in Drupal 8.x sites.' # Информация о модуле. core: 8.x type: module package: SEO # Версия модуля. version: 1.0
Основной файл модуля
Файл unset_html_head_link.module — реализация через hook_entity_view_alter() для нод:
$value) {
if (isset($value[0]['rel']) && in_array($value[0]['rel'], $unset_html_head_link)) {
unset($build['#attached']['html_head_link'][$key]);
}
}
}
}
Для страниц таксономии
Дополнительно через hook_page_attachments_alter() и hook_module_implements_alter():
/**
* Implements hook_page_attachments_alter().
*/
function unset_html_head_link_page_attachments_alter(array &$attachments) {
$unset_html_head_link = [
'delete-form',
'edit-form',
'version-history',
'revision'
];
foreach ($attachments['#attached']['html_head_link'] as $key => $value) {
if (isset($value[0]['rel']) && in_array($value[0]['rel'], $unset_html_head_link)) {
unset($attachments['#attached']['html_head_link'][$key]);
}
}
}
/**
* Implements hook_module_implements_alter().
*/
function unset_html_head_link_module_implements_alter(&$implementations, $hook) {
// Определяем выполнение hook_page_attachments_alter() в самом конце.
if ($hook === 'page_attachments_alter') {
$group = $implementations['unset_html_head_link'];
unset($implementations['unset_html_head_link']);
$implementations['unset_html_head_link'] = $group;
}
}
Установка
Скачайте модуль, поместите в директорию modules/, включите через /admin/modules в секции SEO и очистите кэш.