В WordPress технические страницы часто попадают в индекс не из-за одной ошибки, а из-за набора мелочей: поиск по сайту, архивы автора, страницы вложений, пагинация, служебные шаблоны, тестовые URL. В результате в поиске появляются дубли и пустые страницы, а краулинговый бюджет уходит не туда, куда нужно.
Если задача не в том, чтобы «закрыть всё подряд», а в том, чтобы оставить в индексе только полезные страницы, сначала нужно понять, какие именно URL создаёт ваш сайт и как они сейчас отдаются поисковым роботам.
Что именно нужно закрывать от индексации
Не все технические страницы одинаково вредны. Одни можно закрыть почти всегда, другие зависят от структуры сайта. Для большинства проектов стоит проверить такие типы URL:
- страницы внутреннего поиска, например
?s=; - архивы автора, если на сайте один автор или они не несут ценности;
- страницы вложений медиафайлов;
- теги и таксономии с пустым или слабым содержимым;
- пагинация архивов, если она создаёт дубли без полезной нагрузки;
- технические шаблоны и служебные страницы темы или плагинов;
- страницы предпросмотра, черновиков и временных ссылок, если они доступны публично.
Смысл не в том, чтобы закрыть всё через robots.txt. Для части страниц правильнее отдавать noindex, чтобы робот мог увидеть запрет и не индексировать URL, а не просто не заходить на него.
Диагностика: как найти лишние страницы в индексе
Начните с проверки того, что уже попало в поиск. Самый быстрый способ — посмотреть отчёты в Google Search Console и список URL по запросу site:example.ru. Но этого мало: поисковик может показывать только часть проблемы.
Что смотреть в Search Console
Откройте отчёт по индексированию страниц и найдите группы вроде «Просканировано — не проиндексировано», «Дубли, выбранный канонический URL отличается» и «Исключено тегом noindex». Если там есть архивы автора, страницы поиска или медиа-вложения, это уже повод разбираться в шаблонах темы и настройках SEO-плагина.
Проверка на стороне сайта
Полезно пройтись по сайту вручную и посмотреть, какие URL формируются автоматически. Для этого достаточно:
- открыть архив автора и проверить, есть ли у него реальная ценность;
- открыть страницу вложения изображения и понять, нужна ли она пользователю;
- выполнить поиск по сайту и посмотреть, индексируется ли страница результатов;
- проверить, не создаёт ли тема отдельные архивы по нестандартным таксономиям без контента.
Если у вас есть доступ к серверу, полезно быстро проверить заголовки ответа:
curl -I https://example.ru/?s=testИщите X-Robots-Tag, noindex в HTML и корректный canonical. Если страница должна быть закрыта, но отдаёт обычный индексируемый ответ, проблема в шаблоне или SEO-настройках.
Какой способ выбрать: плагин, код или robots.txt
Для закрытия технических страниц есть три рабочих подхода. Они не взаимозаменяемы, и у каждого свой компромисс.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы и типовые дубли | Меньше кода, проще поддержка | Не всегда закрывает нестандартные URL |
| Код в теме или мини-плагине | Нужна точечная логика под конкретный сайт | Полный контроль над условиями | Нужно следить за обновлениями и тестировать |
robots.txt | Нужно ограничить обход, а не индексацию | Просто и быстро | Не гарантирует удаление URL из индекса |
Если задача именно в индексации, а не в обходе, ориентируйтесь на noindex и каноникал. robots.txt используйте как дополнительный слой, а не как единственный механизм.
Пошаговое решение через код
Если вам нужно закрыть конкретные типы страниц без зависимости от плагина, удобнее сделать это через небольшой mu-plugin или код в дочерней теме. Ниже пример, который добавляет noindex,follow для страниц поиска, архивов автора и вложений.
<?php
/**
* Plugin Name: WPGen Noindex Technical Pages
*/
add_filter('wp_robots', function (array $robots) {
if (is_search() || is_author() || is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});
add_action('wp_head', function () {
if (is_search() || is_author() || is_attachment()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);В современных версиях WordPress лучше опираться на фильтр wp_robots: он формирует корректный robots meta без ручной вставки в шаблон. Блок с wp_head здесь оставлен как запасной вариант для тем, где нужно быстро проверить поведение в браузере.
Если нужно закрыть только архивы автора
На многопользовательском сайте архивы автора могут быть полезны. Тогда не закрывайте их глобально, а добавьте условие по роли или количеству записей. Например, если у автора одна-две публикации, архив обычно не даёт ценности.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_author()) {
$author_id = get_queried_object_id();
$count = count_user_posts($author_id, 'post', true);
if ($count < 3) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
}
return $robots;
});Такой подход лучше, чем слепо закрывать все архивы автора: на редакционных сайтах с сильными профилями авторов они могут приносить трафик и внутреннюю перелинковку.
Как закрыть страницы поиска и вложений без побочных эффектов
Страницы поиска почти всегда стоит закрывать от индексации. Они создают бесконечное число URL с низкой ценностью и часто дублируют друг друга. Для вложений логика зависит от темы: если у медиафайла есть отдельная полезная страница с описанием, её можно оставить. Если это просто пустая страница изображения, лучше закрыть и сделать редирект на сам файл или на родительскую запись.
Для вложений часто полезно не только поставить noindex, но и перенаправить их на родительский пост, если он существует:
<?php
add_action('template_redirect', function () {
if (!is_attachment()) {
return;
}
$parent_id = wp_get_post_parent_id(get_the_ID());
if ($parent_id) {
wp_safe_redirect(get_permalink($parent_id), 301);
exit;
}
});Это помогает убрать из индекса пустые attachment-страницы и одновременно не терять пользователя, который открыл вложение по старой ссылке.
Проверка результата после внедрения
После изменений не ограничивайтесь просмотром исходника страницы. Проверьте цепочку целиком:
- в HTML есть
<meta name="robots" content="noindex,follow" />или эквивалентный заголовок; - страница поиска, автора или вложения отдает ожидаемый код ответа;
- канонический URL указывает на нужную страницу, а не на сам дубль;
- в Search Console страница попадает в исключённые, а не продолжает индексироваться;
- редиректы для вложений не создают цепочку 301 → 301 → 200.
Для быстрой проверки можно использовать команду:
curl -I https://example.ru/author/admin/
curl -I https://example.ru/?s=testЕсли вы видите обычный 200 без X-Robots-Tag и без noindex в HTML, значит правило не сработало или подключено не в том месте.
Частые ошибки и как их исправить
Закрыли в robots.txt, но URL остались в индексе
Это типичная ситуация. robots.txt запрещает обход, но не всегда удаляет уже известный URL из индекса. Если страница уже проиндексирована, нужен noindex и, при необходимости, запрос на переобход через Search Console.
Поставили noindex на страницу, но оставили canonical на неё же
Если дубль должен исчезнуть, canonical должен указывать на основную страницу. Иначе поисковик получает смешанный сигнал: страница закрыта, но одновременно объявлена канонической.
Закрыли все архивы без проверки структуры сайта
На некоторых проектах архивы категорий и авторов реально дают трафик. Перед массовым закрытием проверьте, какие архивы имеют входящие ссылки, показы и полезный контент.
Редиректнули вложения на главную
Это плохой универсальный вариант. Для большинства вложений логичнее вести на родительскую запись, а не на главную страницу. Иначе пользователь теряет контекст, а поисковик получает слабый сигнал релевантности.
Практические советы по безопасности и производительности
Чем меньше лишних страниц открыто для обхода, тем меньше мусора в логах и отчётах. Но не стоит превращать закрытие индексации в хаотичный набор правок в теме. Лучше вынести логику в отдельный мини-плагин или mu-plugin, чтобы она не исчезла при обновлении темы.
- не правьте родительскую тему напрямую;
- проверяйте изменения на staging-копии;
- после правок очищайте кеш страницы и кеш CDN, если он есть;
- не закрывайте от индексации страницы, которые используются в навигации или внутренней перелинковке без понимания последствий;
- если используете SEO-плагин, не дублируйте его правила своим кодом без необходимости.
Если вам нужен более удобный контроль над дублями, архивами и техническими страницами без ручного кода, можно посмотреть на инструменты класса Clearfy Pro: у него есть функции для чистки сайта и управления SEO-дублями. Но даже с плагином полезно понимать, какие URL вы закрываете и почему.
Главный критерий, что всё сделано правильно, простой: в индексе остаются только страницы, которые реально нужны пользователю и поиску, а служебные URL перестают конкурировать с основным контентом.