Убираем лишний мусор из <head>…</head>

31.05.2013

Удаляем из хеда служебную информацию о версии движка WordPress, ссылки на ленты новостей, следующие-предыдущие статьи и прочее. Меньше кода — лучше. Так же убирается ненужная служебная информация, и информация, которая может угрожать безопасности сайта — например, версия движка. Если вы не обновляете CMS WordPress до последней актуальной версии, злоумышленники могут зная вашу версию, использовать уязвимости, которые были исправлены в последних версиях, но остались у вас, получить доступ к вашему сайту и использовать полученный доступ в своих корыстных целях.

Например, на одном из сайтов удалились эти строки из <head>…</head> (это старый пример из версии WordPress 3.5):

<link rel="alternate" type="application/rss+xml" title="Сайт &raquo; Лента комментариев к &laquo;Главная&raquo;" href="http://site.ru/?feed=rss2&#038;page_id=4" />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://site.ru/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://site.ru/wp-includes/wlwmanifest.xml" />
<link rel='prev' title='О компании' href='http://site.ru/?page_id=7' />
<link rel='next' title='Прайс' href='http://site.ru/?page_id=13' />
<meta name="generator" content="WordPress 3.5" />

Более свежий пример из версии WordPress 4.9 — Было так:

Чтобы убрать весь мусор в файл functions.php добавляем строчки:

/*  ##################################
Clean Head by Denis Creative
################################## */

remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_post_rel_link_wp_head', 10, 0);
// REMOVE EMOJI ICONS
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
// removes oembed discorvery link
remove_action('wp_head','rest_output_link_wp_head');
remove_action('wp_head','wp_oembed_add_discovery_links', 10 );
remove_action('wp_head','wp_oembed_add_host_js');
// remove meta rel=dns-prefetch href=//s.w.org
remove_action( 'wp_head', 'wp_resource_hints', 2 );

Стало так:

В хедере не осталось ничего лишнего, только стили и скрипты шаблона и плагинов (в данном примере все плагины были отключены для уменьшения кода).

Этот код удаляет инлайновые стили и скрипты для встроенных смайлов emoji, если они вам нужны, тогда эти строки не добавляйте в свой functions.php

// REMOVE EMOJI ICONS
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

Так же, если в статьях вы используете встраеваемый контент с различных сайтов типа видео с ютуб или твиты из твиттера по прямой ссылке, тогда этот код тоже не используйте:

// removes oembed discorvery link
remove_action('wp_head','rest_output_link_wp_head');
remove_action('wp_head','wp_oembed_add_discovery_links', 10 );
remove_action('wp_head','wp_oembed_add_host_js');

После добавления данных функций необходимо просмотреть файл header.php, так как в нем могут выводиться некоторые данные напрямую, и их нужно будет удалить вручную из header.php.

Полезная инфа:

Комментарии (3) к “Убираем лишний мусор из <head>…</head>”

Оставить комментарий