В содержимом 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.