На WordPress часто остаются открытыми не только архивы авторов и меток, но и служебные XML-фиды, страницы поиска, вложения и другие технические URL. Сами по себе они не всегда вредны, но в индексе быстро создают мусор: дубли, пустые страницы, слабые сниппеты и лишнюю нагрузку на обход.
Если задача не в том, чтобы «всё закрыть», а в том, чтобы оставить в индексе только полезные страницы, сначала нужно понять, какие именно URL у вас реально доступны и что из этого уже попало в поиск.
Что именно стоит проверить перед правками
Не начинайте с массового noindex наугад. В WordPress есть несколько типов страниц, которые часто путают между собой: RSS/Atom-фиды, архивы таксономий, страницы вложений, внутренний поиск, пагинация архивов. Для каждой группы решение может быть разным.
Быстрая диагностика
Откройте сайт и проверьте несколько типовых адресов:
/feed/и/comments/feed/;/page/2/у архивов;/?s=тестили ЧПУ-поиск, если он включён;- страницы вложений медиафайлов;
- архивы тегов и рубрик, если они пустые или почти пустые.
Если у вас стоит SEO-плагин, посмотрите, не дублирует ли он свои настройки с темой или кастомным кодом. Частая ошибка — закрыть URL в robots.txt и одновременно ожидать, что они исчезнут из индекса. Для уже известных поисковику страниц это не всегда работает.
Какой способ выбрать: плагин, код или robots.txt
Для технической чистки WordPress лучше разделять три задачи: запрет индексации, запрет обхода и удаление лишних URL из шаблонов сайта. Это не одно и то же.
| Подход | Когда подходит | Плюс | Минус |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть типовые архивы и фиды | Меньше ручного кода | Не всегда удобно для точечных исключений |
| Код в теме/плагине | Нужны точные правила для конкретных URL | Полный контроль | Нужно аккуратно тестировать после обновлений |
| robots.txt | Нужно ограничить обход, а не индексацию уже известных страниц | Просто внедрить | Не решает задачу удаления из индекса само по себе |
Если у вас уже есть SEO-плагин, часто разумнее использовать его настройки для noindex и каноникал, а код оставить для нестандартных случаев. Если плагина нет или нужен точечный контроль, можно закрывать отдельные шаблоны через фильтры WordPress.
Пошаговое решение для WordPress
1. Закройте служебные фиды от индексации
Фиды обычно не нужны в поиске как отдельные страницы. Их можно оставить для подписок и интеграций, но убрать из индекса. Если SEO-плагин это не делает или делает не так, как нужно, добавьте заголовок X-Robots-Tag для фидов.
add_action('template_redirect', function () {
if (is_feed()) {
header('X-Robots-Tag: noindex, follow', true);
}
});Этот вариант не ломает сам фид, но подсказывает поисковикам не индексировать его как отдельную страницу. Если у вас есть нестандартные фиды или сторонние интеграции, проверьте, не завязаны ли они на прямой доступ к XML.
2. Закройте страницы поиска и вложений
Внутренний поиск почти всегда даёт слабые страницы. А вложения без контента часто дублируют медиафайл или пустую страницу вложения. Для них обычно используют noindex и каноникал на родительскую запись или сам файл, если это оправдано.
add_action('wp_head', function () {
if (is_search() || is_attachment()) {
echo "<meta name=\"robots\" content=\"noindex,follow\" />\n";
}
}, 1);Если у вас уже есть SEO-плагин, не дублируйте мета-тег вручную. Иначе можно получить два одинаковых robots-тега, а это лишний шум в шаблоне и риск конфликтов.
3. Уберите из индекса пустые или слабые архивы
Теги, рубрики, архивы по датам и авторов стоит оценивать отдельно. Если архив полезен для навигации и содержит нормальный объём материалов, его можно оставить. Если это технический мусор, лучше закрыть его через настройки SEO-плагина или через фильтры темы.
Для архивов, которые должны оставаться доступными, но не индексироваться, логика обычно такая: noindex,follow плюс нормальная внутренняя перелинковка. Для полностью бесполезных архивов иногда уместно убрать ссылки из шаблона, чтобы они не создавали лишний обход.
Пример точечной настройки через functions.php
Если нужен аккуратный контроль без тяжёлых решений, можно собрать небольшую функцию для нескольких типов страниц. Ниже пример для дочерней темы или собственного мини-плагина.
add_action('wp_head', function () {
if (is_search() || is_attachment() || is_feed()) {
echo "<meta name=\"robots\" content=\"noindex,follow\" />\n";
}
if (is_tax('post_tag') || is_date()) {
echo "<meta name=\"robots\" content=\"noindex,follow\" />\n";
}
}, 1);Это рабочий, но не универсальный вариант. Если у вас теги реально приводят трафик, закрывать их не нужно. То же самое касается архивов по датам на новостных сайтах или блогах с сильной хронологией.
Как проверить, что решение сработало
Проверка должна быть не «открыл страницу — вроде всё ок», а по нескольким признакам сразу.
- в исходном коде страницы есть
noindex,followтам, где вы его добавили; - в ответе сервера для фида или служебного URL приходит нужный заголовок
X-Robots-Tag; - в Search Console страница не получает новые ошибки индексации;
- внутренние ссылки на закрытые разделы не ведут к массовым 404;
- каноникал не указывает на случайную страницу, если вы его не меняли специально.
Проверять заголовки удобно через DevTools, curl или инструменты SEO-плагина. Например:
curl -I https://example.com/feed/В ответе ищите X-Robots-Tag: noindex, follow. Если заголовка нет, значит правило не сработало или его перехватывает другой слой — кэш, серверная конфигурация или плагин безопасности.
Частые ошибки и как их исправить
Закрыли в robots.txt и ждёте удаления из индекса
Это самая распространённая ошибка. Disallow мешает обходу, но не гарантирует удаление уже известных страниц. Если URL уже в индексе, нужен noindex или удаление через инструменты поисковика, а не только robots.txt.
Поставили noindex на всё подряд
Иногда под раздачу попадают рубрики, пагинация, полезные архивы и даже страницы сайта, которые реально собирают трафик. Сначала оцените, какие URL дают входы и нужны ли они пользователю. Закрывать стоит мусор, а не всё техническое подряд.
Смешали SEO-плагин и ручной код
Если плагин уже добавляет мета-теги, а вы сверху дублируете их в теме, получите конфликт. В результате поисковик может увидеть несколько сигналов с разными значениями. Оставьте один источник правды: либо настройки плагина, либо свой код.
Забыли про кэш
После изменений старые версии страниц могут ещё какое-то время отдаваться из кэша. Очистите кэш плагина, серверный кэш и CDN, если он есть. Иначе вы будете проверять уже не тот HTML, который видит бот.
Безопасность и производительность
Техническая чистка должна уменьшать шум, а не создавать новые проблемы. Не добавляйте тяжёлые проверки на каждый запрос без необходимости. Если правило можно ограничить только нужными шаблонами, так и делайте. Для массовых изменений лучше использовать SEO-плагин или мини-плагин, а не править тему напрямую.
Если вы работаете на продакшене, сначала проверьте всё на staging-копии. Особенно это важно, когда сайт использует нестандартные типы записей, мультиязычность или отдельные шаблоны для архивов. На таких проектах одно неосторожное правило может закрыть не только мусор, но и полезные страницы.
Если нужен более широкий набор инструментов для технической чистки WordPress, в том числе для дублей и служебных страниц, можно посмотреть Clearfy Pro. Но даже с плагином полезно понимать, какие именно URL вы закрываете и зачем.
В итоге рабочая схема обычно простая: сначала находите конкретные типы страниц, потом выбираете способ закрытия, затем проверяете заголовки, HTML и поведение в Search Console. Если всё сделано аккуратно, сайт становится чище без потери полезного трафика.