Если сайт на WordPress уже живёт не первый месяц, в индексе часто всплывают страницы, которые не должны конкурировать с нормальными посадочными: результаты поиска по сайту, архивы авторов без контента, страницы пагинации с пустыми листингами, служебные URL. Проблема обычно не в одной настройке, а в сочетании: тема генерирует лишние ссылки, SEO-плагин не настроен, а поисковик успел всё это обойти.
Ниже — рабочий сценарий: как быстро найти такие URL, закрыть их от индексации без поломки сайта и проверить, что изменения действительно сработали.
Что именно нужно закрывать и почему
Не каждый «лишний» URL надо удалять. Часть страниц должна остаться доступной для пользователей, но не должна попадать в поиск. Для WordPress это чаще всего:
- страницы результатов внутреннего поиска вида
?s=...; - архивы авторов, если у автора нет уникального контента или все записи дублируют друг друга;
- служебные страницы с пагинацией, если они пустые или почти пустые;
- страницы с параметрами, которые создают дубли одного и того же контента;
- внутренние таксономии и архивы, которые не несут самостоятельной ценности.
Если закрыть всё подряд, можно случайно убрать из индекса полезные разделы. Поэтому сначала нужна диагностика.
Диагностика: какие URL уже попали в индекс
Самый простой способ — посмотреть отчёты в Google Search Console. В разделе индексации обычно видно, какие страницы обнаружены, но не проиндексированы, какие исключены, а какие уже участвуют в поиске. Для WordPress полезно отдельно проверить:
- поиск по сайту: запрос
site:example.com inurl:?s=; - архивы авторов:
site:example.com/author/; - пагинацию:
site:example.com/page/; - служебные URL с параметрами:
site:example.com inurl:?.
Если у вас уже есть SEO-плагин, проверьте, не выставляет ли он noindex автоматически. Иногда проблема не в отсутствии настройки, а в конфликте между темой и плагином: тема выводит canonical на один URL, а плагин — на другой.
Что смотреть в коде страницы
Откройте проблемный URL и проверьте исходный код. Ищите:
<meta name="robots" content="noindex,follow">или похожий вариант;<link rel="canonical" ...>;- нет ли у страницы случайного
index,followпри явном мусорном URL; - не закрыт ли нужный раздел по ошибке.
Если у вас включён кэш, после правки не забудьте очистить его, иначе будете смотреть старую версию страницы.
Пошаговое решение: закрываем поиск, авторов и мусорные архивы
Есть два нормальных пути: через SEO-плагин или кодом. Если сайт ведётся редакцией и настройки должны быть доступны без разработчика, удобнее плагин. Если нужна точечная логика под конкретную тему, лучше код.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро и без кода | Меньше гибкости, зависит от интерфейса плагина |
| Код в теме или mu-plugin | Нужна точная логика и контроль | Требует аккуратности и тестирования |
| Комбинация | Часть правил в плагине, часть в коде | Риск конфликтов, если не зафиксировать источник правил |
Вариант 1: закрыть поиск и архивы через код
Если вам нужно быстро и прозрачно выставить noindex для поиска и архивов авторов, можно добавить фильтр в functions.php дочерней темы или, что лучше, в небольшой mu-plugin.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_search() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
if ( is_author() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );
Здесь логика простая: страницы поиска закрываем полностью, архивы авторов — без индексации, но с переходом по ссылкам. Это важно, если архив автора нужен пользователю, но не должен ранжироваться отдельно.
Если у вас на сайте есть авторские страницы с нормальной биографией, списком материалов и уникальным текстом, закрывать их не обязательно. Тогда лучше оставить index,follow и доработать контент.
Вариант 2: убрать индексацию через SEO-плагин
В большинстве SEO-плагинов можно отдельно отключить индексацию архивов авторов и результатов поиска. Это удобнее, если редакторы сами управляют сайтом. Но перед сохранением проверьте, не отключаете ли вы случайно и другие архивы, которые нужны для навигации.
Если плагин умеет задавать мета-robots для архивов, используйте именно его настройки, а не дублируйте ту же логику в коде. Иначе потом будет сложно понять, кто именно выставил noindex.
Как убрать дубли и мусорные страницы без потери нужных разделов
Иногда проблема не в поиске и не в авторах, а в том, что WordPress создаёт несколько адресов для одного и того же контента. Типичный пример — страницы с параметрами сортировки, фильтрами или UTM, которые поисковик воспринимает как отдельные URL.
Здесь важно не путать noindex и canonical. Если страница должна существовать для пользователя, но не быть отдельной сущностью в индексе, canonical часто полезнее. Если же URL вообще не нужен поиску, можно закрыть его через robots и убрать из внутренней перелинковки.
Пример: canonical для страницы с параметрами
<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
if ( is_search() ) {
return home_url( '/' );
}
return $canonical;
} );
Этот пример относится к Yoast SEO. Если у вас другой SEO-плагин, используйте его фильтры или настройку canonical в интерфейсе. Смысл в том, чтобы не плодить отдельные адреса для одного и того же набора материалов.
Проверка результата после внедрения
После правки не ограничивайтесь просмотром HTML-кода. Нужно проверить, как страница выглядит для поисковика и как она отвечает на запросы.
- Откройте проблемный URL в браузере и проверьте meta robots.
- Очистите кэш сайта, серверный кэш и CDN, если он есть.
- В Google Search Console отправьте URL на повторную проверку.
- Проверьте, не изменился ли canonical на нужный адрес.
- Убедитесь, что внутренние ссылки больше не ведут на мусорные страницы.
Если страница уже была в индексе, удаление может занять время. Это нормально: поисковик не выкидывает URL мгновенно только потому, что вы поставили noindex.
Быстрая техническая проверка через консоль
Если есть доступ к серверу, можно посмотреть заголовки и убедиться, что страница отдаёт ожидаемый HTML. Например, для результата поиска:
curl -I 'https://example.com/?s=test'Ищите не только статус 200, но и отсутствие неожиданных редиректов на главную или на другую служебную страницу. Иногда именно редирект ломает индексацию и создаёт цепочки дублей.
Частые ошибки и как их исправить
1. Закрыли страницу в robots.txt вместо meta robots
Это частая ошибка. Disallow в robots.txt не гарантирует удаление URL из индекса, если он уже известен поисковику. Для страниц, которые должны быть доступны, но не индексироваться, обычно нужен noindex, а не запрет обхода.
2. Поставили noindex на весь архив автора, хотя он полезен
Если авторские страницы содержат уникальное описание, список материалов и помогают навигации, закрывать их не стоит. В этом случае лучше улучшить контент архива и оставить его открытым.
3. Не очистили кэш
После изменения robots или canonical старый HTML может продолжать отдаваться из кэша. Проверяйте не только страницу в админке, но и фактический ответ сервера.
4. Дублируют логику в плагине и в теме
Если один слой ставит noindex, а другой — canonical на другой URL, поведение становится непредсказуемым. Выберите один источник правды: либо SEO-плагин, либо код.
5. Закрыли URL, но оставили на него внутренние ссылки
Поисковик всё равно будет тратить обход на такие адреса. Проверьте меню, хлебные крошки, блоки похожих материалов и виджеты.
Что сделать для безопасности и производительности
Техническая чистка индекса — это не только про SEO. Чем меньше мусорных URL генерирует сайт, тем меньше лишней нагрузки на обход и тем проще поддерживать структуру.
- Не правьте
functions.phpнапрямую на рабочем сайте без бэкапа. - Если логика нужна надолго, вынесите её в mu-plugin.
- Проверяйте изменения на staging-копии, особенно если тема переопределяет шаблоны архивов.
- Следите, чтобы закрытые страницы не попадали в XML-карту сайта.
Если у вас уже есть плагин для технической чистки сайта, например Clearfy Pro, часть задач по дублям и служебным страницам можно закрыть через его настройки. Но даже в этом случае полезно понимать, какие именно URL вы закрываете и почему, чтобы не лечить симптомы вслепую.
Мини-чек-лист перед публикацией правок
- Проверил, какие URL реально мусорные, а какие нужны пользователям.
- Выбрал один способ управления: плагин или код.
- Добавил
noindexтолько туда, где это оправдано. - Проверил canonical на проблемных страницах.
- Очистил кэш и CDN.
- Отправил URL на повторную проверку в Search Console.
- Убедился, что закрытые URL не остались в sitemap и внутренних ссылках.
Если после внедрения в индексе всё ещё остаются старые страницы, это не всегда ошибка настройки. Иногда поисковику просто нужно время, чтобы переобойти сайт и обновить данные. Но если через несколько обходов ничего не меняется, значит, где-то остался второй источник генерации дублей — тема, плагин или кэш.