Удалить неиспользуемые теги в заголовке WordPress

В содержимом HTML-документа, генерируемого WordPress, можно заметить множество служебных тегов, которые отображаются в заголовке head страницы. Эти теги достаточно редко используются и, как правило, абсолютно бесполезны для посетителей сайта или поисковых систем. Кроме того, некоторые мета-теги противоречат правилам безопасности и могут нанести вред для сайта WordPress.

Возьмем для примера мета-тег generator, который содержит информацию о используемой версии WordPress. На используемую в блоге версию WordPress хакеры смотрят в первую очередь. Зная точную версию движка, злоумышленник может использовать эту информацию для поиска потенциальных уязвимостей, с целью последующего взлома WordPress.

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

<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="xmlrpc.php">
<link rel="alternate" type="application/rss+xml" title="Лента" href="/feed/"/>
<link rel="alternate" type="application/rss+xml" title="Лента комментариев" href="comments/feed/"/>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="/xmlrpc.php?rsd"/>
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="wp-includes/wlwmanifest.xml"/>
<meta name="generator" content="WordPress 4.3.1"/>
<link rel='prev' title='' href=''/>
<link rel='canonical' href=''/>
<link rel='shortlink' href=''/>

Можно автоматически удалить неиспользуемые теги из заголовка WordPress с помощью специального плагина WP Head Cleanup. Для этого после установки необходимо выбрать соответствующие опции в настройках плагина. Я же предпочитаю, по возможности, не использовать плагины вообще.

Вместо установки дополнительных плагинов, мы можем вручную удалить неиспользуемые теги в заголовке WordPress c помощью специальных хаков. Для этого необходимо скопировать код ниже в содержимое файла functions.php вашей темы.

— meta name=’generator’
Убрать версию WordPress из заголовка страницы:

remove_action( 'wp_head', 'wp_generator' );

— link rel=’wlwmanifest’
Убрать ссылку для редактирования клиентом Windows Live Writer:

remove_action( 'wp_head', 'wlwmanifest_link' );

— link rel=’EditURI’
Убрать ссылку для редактирования внешними сервисами:

remove_action( 'wp_head', 'rsd_link' );

— link rel=’shortlink’
Убрать вывод коротких ссылок:

remove_action('wp_head', 'wp_shortlink_wp_head');

— link rel=’canonical’
Убрать вывод канонических ссылок:

remove_action('wp_head','rel_canonical');

— link rel=’prev’ и link rel=’next’
Убрать вывод ссылок на предыдущую / следующую запись:

remove_action('wp_head','adjacent_posts_rel_link_wp_head');

— RSS
Убрать вывод ссылок на основную и дополнительную ленту:

remove_action('wp_head','adjacent_posts_rel_link_wp_head');
remove_action('wp_head','feed_links_extra', 3);

— REST API
Убрать вывод ссылки REST API:

remove_action('xmlrpc_rsd_apis', 'rest_output_rsd');

— link rel=’profile’
Убрать в файле header.php ссылку на адрес профиля метаданных:

<link rel="profile" href="http://gmpg.org/xfn/11">

— link rel=’pingback’
Убрать в файле header.php ссылку на пингбэк-сервер:

<link rel="pingback" href="xmlrpc.php">

Следует отметит, что код из примеров удаляет неиспользуемые теги в заголовке head, при этом, никак не затрагивает функционал самого WordPress.