На WordPress чаще всего индексируются не те страницы, которые вы хотели бы показывать в поиске: архивы авторов на одностраничном блоге, страницы тегов без контента, результаты внутреннего поиска, служебные URL с параметрами, вложения изображений и дубли пагинации. Проблема обычно не в одной настройке, а в том, что разные типы страниц создаются разными механизмами: темой, плагином, ядром и сервером.
Ниже — рабочий сценарий: как сначала найти лишние URL, потом закрыть их от индексации, а после проверить, что решение не задело важные страницы.
Что именно нужно закрывать от индексации
Не стоит массово ставить noindex на всё подряд. Для WordPress есть несколько типовых групп страниц, которые часто не несут самостоятельной ценности для поиска:
- страницы внутреннего поиска вида
?s=; - архивы автора, если на сайте один автор и нет редакционной пользы;
- пустые или почти пустые архивы рубрик и тегов;
- страницы вложений медиафайлов, если они не используются как отдельные посадочные;
- технические страницы с параметрами сортировки, фильтров, UTM и других служебных меток;
- страницы пагинации, если они создают мусорные дубли и не нужны в выдаче.
При этом рубрики с нормальным текстом, полезные теги, страницы авторов в медиа-проектах и контентные архивы закрывать не нужно. Здесь важен не тип URL, а его реальная ценность.
Диагностика: где у вас появляются дубли и мусорные URL
Перед правками проверьте, какие страницы уже попали в индекс или активно обходятся ботами. Самый простой путь — посмотреть отчёты в Google Search Console и выгрузить список URL из карты сайта, если она есть. Дополнительно полезно пройтись по сайту краулером или хотя бы вручную открыть типовые шаблоны архивов.
На что смотреть в первую очередь
- URL с
?s=— страницы поиска; /author/— архивы авторов;/tag/— теги без контента;/page/2/,/page/3/— пагинация архивов;/attachment/или страницы вложений без текста;- URL с параметрами сортировки и фильтрации, если они есть у темы или плагина.
Если у вас установлен SEO-плагин, проверьте, не дублирует ли он настройки темы. Частая ситуация: в плагине уже стоит noindex для архивов, а тема дополнительно выводит мета-тег или canonical с ошибкой.
Как закрыть технические страницы: плагин, код или сервер
Для WordPress есть три нормальных подхода. Выбор зависит от того, где именно создаётся URL и насколько точечно вы хотите управлять индексацией.
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Если нужно быстро закрыть архивы и поиск без кода | Просто, наглядно, меньше риска | Не всегда хватает для точечных случаев |
| Код в теме или мини-плагине | Если нужен контроль над конкретным типом URL | Точность, не зависит от интерфейса плагина | Нужно аккуратно тестировать |
| Серверные правила | Если нужно убрать доступ к служебным URL до WordPress | Быстро и жёстко | Легко ошибиться и задеть нужные страницы |
Вариант 1: закрыть архивы и поиск через SEO-плагин
Если у вас уже стоит SEO-плагин, начните с него. В большинстве случаев достаточно отключить индексацию архивов автора, тегов или результатов поиска в настройках. Это безопаснее, чем вручную править шаблоны, если вы не уверены, как тема формирует <meta name="robots">.
Плюс такого подхода в том, что плагин обычно сам добавляет корректный noindex, follow и не требует правок шаблона. Минус — не все плагины одинаково хорошо работают с нестандартными архивами и кастомными типами страниц.
Вариант 2: добавить noindex точечно через код
Если нужно закрыть только отдельные типы страниц, удобнее добавить фильтр в functions.php дочерней темы или в небольшой mu-plugin. Ниже пример для WordPress, который добавляет noindex, follow на страницы поиска, архивы автора и вложения.
<?php
add_filter('wp_robots', function ($robots) {
if (is_search() || is_author() || is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант хорош тем, что не трогает нормальные записи и страницы. Но важно помнить: noindex — это не запрет на обход. Если URL должен исчезнуть из поиска и не тратить краулинговый бюджет, иногда нужно дополнительно закрыть его через robots.txt или отдать 404/410, если страница вообще не нужна.
Вариант 3: убрать доступ к служебным URL на уровне шаблона
Для страниц вложений часто логичнее не просто ставить noindex, а перенаправлять их на сам файл или родительскую запись. Если вложение как отдельная страница не используется, можно вернуть пользователя и робота туда, где есть контент.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_the_ID());
if ($parent) {
wp_safe_redirect(get_permalink($parent), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Такой код лучше применять только после проверки, что на сайте нет сценариев, где attachment-страницы реально используются как посадочные. Для фотогалерей и медиа-порталов это может быть ошибкой.
Пошаговое решение без лишнего риска
- Составьте список URL, которые не должны индексироваться: поиск, архивы автора, теги, вложения, служебные параметры.
- Проверьте, не закрыты ли они уже в SEO-плагине или в теме.
- Выберите один источник правды: либо плагин, либо код, чтобы не получить конфликт мета-тегов.
- Добавьте
noindexтолько на нужные шаблоны. - Для совсем бесполезных страниц используйте редирект,
404или410, а не толькоnoindex. - Обновите sitemap, если туда попали лишние URL.
- Переобойдите сайт в Search Console и проверьте, как бот видит новые директивы.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Откройте несколько проблемных URL и посмотрите исходный код страницы. В нём должен быть корректный robots-мета-тег или заголовок, если вы настраивали его на уровне сервера.
- для поиска и архивов должен появиться
noindex; - на страницах, которые вы редиректите, должен быть один понятный ответ
301без цепочки; - в sitemap не должно быть URL, которые вы хотите убрать из индекса;
- в Search Console статус страницы должен начать меняться после переобхода;
- в логах сервера или краулере не должно быть массовых ошибок на новых правилах.
Если используете код, проверьте именно HTML-ответ, а не только настройки в админке. Иногда тема выводит один robots-тег, а плагин — другой, и поисковик получает конфликтующую инструкцию.
Частые ошибки и как их исправить
Ставят noindex на всё подряд
Это самая частая ошибка. После неё из поиска пропадают не только мусорные архивы, но и полезные страницы рубрик, которые приводили трафик. Исправление простое: верните индексацию на контентные архивы и оставьте закрытыми только технические URL.
Путают noindex и disallow
noindex говорит поисковику не показывать страницу в выдаче, а Disallow в robots.txt ограничивает обход. Если запретить обход слишком рано, поисковик может не увидеть директиву noindex. Для уже известных страниц это может затянуть удаление из индекса.
Дублируют настройки в плагине и теме
Когда один плагин ставит canonical на главную, а тема добавляет свой robots-тег, результат получается непредсказуемым. Оставьте один механизм управления индексацией и уберите второй.
Редиректят всё на главную
Это плохая практика для вложений и служебных URL. Массовый редирект на главную часто выглядит как soft-404 и не решает проблему дубликатов. Лучше перенаправлять на релевантную страницу или отдавать 404/410, если контент удалён окончательно.
Не обновляют sitemap
Если закрытая страница остаётся в карте сайта, поисковик продолжает её обходить. После правок обязательно пересоберите sitemap и проверьте, что лишние URL из него исчезли.
Практические советы по безопасности и производительности
Если вы добавляете код вручную, не вносите его в основной файл темы. Используйте дочернюю тему или мини-плагин, чтобы обновление не затёрло правки. Для точечных SEO-правок это особенно важно: одна ошибка в шаблоне может сломать вывод мета-тегов на всём сайте.
Ещё один полезный момент — не плодить тяжёлые проверки на каждом запросе. Фильтр wp_robots и template_redirect должны содержать только простую логику. Если вам нужно управлять большим количеством исключений, лучше вынести список правил в отдельную функцию и тестировать её по шагам.
Если на сайте много дублей и мусорных архивов, иногда удобнее сначала навести порядок через инструменты чистки SEO-обвязки. Например, в Clearfy Pro есть функции для отключения лишних элементов WordPress и борьбы с дублями, но даже в таком случае логику индексации лучше перепроверять вручную, а не полагаться только на чекбоксы.
Мини-чек-лист перед публикацией изменений
- Проверил, какие URL реально нужно закрыть.
- Убедился, что SEO-плагин и тема не конфликтуют.
- Добавил
noindexтолько на нужные шаблоны. - Для бесполезных страниц настроил редирект или удаление.
- Обновил sitemap.
- Проверил исходный код и ответ сервера.
- Запросил переобход в Search Console.
Если после правок в индексе всё ещё остаются старые страницы, это не всегда ошибка настройки. Поисковику нужно время, чтобы переобойти URL и обновить статус. Но если в исходном коде уже нет лишних страниц, а sitemap чистый, значит решение внедрено правильно.