Почему важно удалять избыточные метаданные из WordPress
Метаданные — это служебная информация, которую WordPress добавляет автоматически в заголовки страниц и в тело HTML. К ним относятся версии WordPress, ссылки на RSS, ссылки на шрифты и скрипты, а также разнообразные метатеги, которые могут раскрывать информацию о системе. Удаление ненужных метаданных улучшает безопасность (уменьшает вектор атаки) и ускоряет загрузку страниц за счет уменьшения объема HTML.
Диагностика: как определить, какие метаданные лишние
Для начала откройте исходный код главной страницы сайта (Ctrl+U или через инструменты разработчика). Поиск по ключевым словам поможет выявить стандартные метаданные:
generator— версия WordPress;wlwmanifest— поддержка Windows Live Writer;rsd— Really Simple Discovery API;- автоматически подключаемые RSS-ссылки;
- внешние ссылки на шрифты и скрипты, которые не используются;
- иные лишние
metaиlinkтеги.
Также обратите внимание на HTTP-заголовки, некоторые плагины могут добавлять лишние заголовки, которые могут раскрывать информацию.
Пошаговое решение: удаление и отключение избыточных метаданных
1. Удаление мета-тега версии WordPress
remove_action('wp_head', 'wp_generator');Добавьте эту строку в functions.php вашей темы или в файл кастомного плагина.
2. Отключение ссылок RSD и WLW Manifest
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');3. Отключение автоматических RSS ссылок
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);4. Удаление REST API link из заголовка
remove_action('wp_head', 'rest_output_link_wp_head', 10);
remove_action('wp_head', 'wp_oembed_add_discovery_links', 10);5. Отключение Emoji скриптов и стилей
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');6. Удаление версии скриптов и стилей из URL
Это уменьшит количество «шумных» параметров в URL статических ресурсов:
function remove_cssjs_version( $src ) {
if( strpos( $src, '?ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_version', 9999 );
add_filter( 'script_loader_src', 'remove_cssjs_version', 9999 );Как проверить, что метаданные действительно удалены
- Обновите страницу сайта и откройте исходный код (Ctrl+U). Метатеги
generator,rsd,wlwmanifest, а также ссылки на emoji-скрипты должны отсутствовать. - Проверьте, что RSS ссылки больше не выводятся в
<head>. - Через консоль разработчика Chrome Network проверьте, что URL стилей и скриптов не содержат параметр
?ver=. - Убедитесь, что сайт работает корректно, без ошибок загрузки JS и CSS.
Частые ошибки и как их исправить
- Метаданные не исчезают после добавления кода: возможно, код добавлен в неправильное место или перекрыт плагином. Проверьте порядок подключения, попробуйте добавить код в кастомный плагин.
- Ошибки JS после удаления Emoji скриптов: некоторые темы или плагины могут зависеть от Emoji. Временно отключайте по одному действию и тестируйте.
- RSS ссылки важны для сайта: отключайте их только если вы точно не используете RSS, иначе потеряете функционал.
Практические советы по безопасности и производительности
- Регулярно проверяйте исходный код на предмет новых метаданных, которые могут добавлять плагины.
- Используйте плагины оптимизации, например Clearfy Pro — в них есть готовые функции для удаления лишних метаданных и оптимизации.
- Минимизируйте подключаемые внешние ресурсы, чтобы снизить время загрузки.
- Включите кеширование на уровне сервера и используйте CDN, чтобы компенсировать небольшие задержки.
Таблица сравнения методов удаления метаданных
| Метод | Плюсы | Минусы | Пример кода |
|---|---|---|---|
Ручное удаление через remove_action |
Полный контроль, без сторонних плагинов | Требует знаний, можно забыть что-то | |
| Использование плагинов (Clearfy и подобные) | Быстро, комплексное решение, поддержка | Дополнительная нагрузка, зависимость от плагина | Clearfy Pro через UI |
| Удаление через кастомный плагин | Лучшее из двух вариантов: контроль и удобство | Нужно создавать и поддерживать плагин | Код, аналогичный ручному, но в плагине |