На WordPress чаще всего индексируются не те страницы, которые вы реально хотите продвигать: архивы тегов, авторов, дат, служебные страницы, страницы поиска и пагинация с тонким контентом. В результате в индексе растёт шум, а важные URL конкурируют с дублями.
Если задача именно в том, чтобы убрать технические страницы из поиска, важно не путать три вещи: noindex, запрет обхода в robots.txt и канонические URL. Это разные инструменты, и работают они по-разному.
Какие страницы обычно нужно закрывать
Перед правками полезно понять, что именно у вас создаёт дубли. В типичном WordPress-сайте это:
- архивы тегов, если они не несут самостоятельной ценности;
- архивы авторов на сайте с одним автором;
- архивы по датам;
- страницы внутреннего поиска;
- страницы пагинации в разделах, где они не нужны в поиске;
- RSS-ленты и служебные страницы, если они попадают в индекс;
- страницы вложений медиафайлов, если они пустые и не используются отдельно.
Не стоит закрывать всё подряд. Например, теги могут быть полезны, если вы реально строите структуру контента вокруг них. Тогда лучше не ставить общий запрет, а сначала проверить, есть ли у архивов уникальный текст и трафик.
Диагностика: как понять, что проблема именно в индексации дублей
Начните с поиска в Google по шаблону site:example.com. Смотрите не только количество страниц, но и типы URL. Если в выдаче всплывают /tag/, /author/, /page/2/, /?s= или вложения медиа, это уже повод проверить настройки.
Дальше откройте отчёты в Google Search Console:
- раздел «Страницы» — там видно, какие URL исключены, а какие попали в индекс;
- раздел «Проверка URL» — полезен для точечной проверки конкретной страницы;
- отчёт по sitemap — помогает понять, не отдаёте ли вы в карту сайта лишние типы архивов.
Если у вас установлен SEO-плагин, проверьте, не дублирует ли он настройки темы или другого плагина. Частая ошибка — один инструмент ставит noindex, а другой одновременно добавляет страницу в sitemap.
Что лучше использовать: noindex, robots.txt или каноникал
| Подход | Когда применять | Ограничение |
|---|---|---|
noindex | Страница должна открываться, но не индексироваться | Поисковик должен сначала увидеть страницу |
robots.txt | Нужно ограничить обход служебных разделов | Не гарантирует удаление уже проиндексированного URL |
| canonical | Есть похожие страницы и нужен основной URL | Не подходит для полного скрытия служебных страниц |
Если цель — убрать страницу из индекса, обычно нужен именно noindex. robots.txt полезен как дополнительная мера, но не как единственный способ. Каноникал нужен там, где есть близкие по смыслу страницы, но одна из них должна считаться основной.
Пошаговое решение через код
Если вы не хотите ставить отдельный плагин только ради закрытия архивов, можно сделать это в теме или в небольшом mu-plugin. Ниже пример, который закрывает от индексации архивы тегов, авторов, дат, поиск и вложения.
<?php
add_action('wp_head', function () {
if (is_tag() || is_author() || is_date() || is_search() || is_attachment()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);
add_filter('wp_robots', function ($robots) {
if (is_tag() || is_author() || is_date() || is_search() || is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант лучше, чем просто печатать meta-тег вручную: WordPress сам формирует robots-правила через фильтр wp_robots, и это более совместимо с ядром и плагинами.
Если вам нужно убрать из индекса только часть архивов, условия можно сузить. Например, оставить теги открытыми, но закрыть авторов и даты:
<?php
add_filter('wp_robots', function ($robots) {
if (is_author() || is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Как закрыть страницы поиска и вложений аккуратнее
Страницы поиска почти всегда дают слабый SEO-сигнал. Вложение медиафайлов тоже часто не нужно индексировать, если у них нет отдельного контента. Для вложений полезно ещё и настроить редирект на родительскую запись, если медиа-страница не используется как самостоятельная.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_the_ID());
if ($parent) {
wp_redirect(get_permalink($parent), 301);
exit;
}
}
});Этот код не закрывает вложения от индексации напрямую, но убирает пустые attachment-страницы из пользовательского обхода. Если у вас медиа-страницы уже в индексе, после редиректа они постепенно выпадут.
Если используете SEO-плагин
В большинстве случаев удобнее настроить индексацию в одном месте, а не размазывать правила по теме, плагину и robots.txt. В SEO-плагине обычно можно отдельно отключить индексацию архивов тегов, авторов, дат и страниц поиска, а также исключить их из sitemap.
Если вы используете Clearfy Pro, это может быть удобно именно для технической чистки сайта: закрытие дублей, отключение лишних архивов и служебных страниц, настройка robots и других базовых SEO-правил. Но даже в этом случае проверьте, не конфликтуют ли настройки с вашим SEO-плагином.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковый робот видит именно то, что вы ожидаете.
- Откройте страницу в браузере и посмотрите исходный код: должен быть
noindexтам, где вы его включали. - Проверьте заголовки ответа через DevTools или
curl -I, если вы используете HTTP-заголовки для robots. - В Search Console отправьте URL на повторную проверку.
- Проверьте sitemap: закрытые страницы не должны туда попадать.
Пример быстрой проверки через консоль:
curl -I https://example.com/tag/sample/Если вы видите, что страница всё ещё индексируется, не спешите менять всё сразу. Сначала проверьте, не отдаёт ли другой плагин свой robots meta, и не осталась ли страница в sitemap.
Частые ошибки и как их исправить
Ставят disallow в robots.txt и ждут удаления из поиска
Это самая частая ошибка. Disallow мешает обходу, но не гарантирует удаление уже проиндексированного URL. Если страница уже в индексе, добавьте noindex и дождитесь переобхода.
Закрывают страницу и одновременно оставляют её в sitemap
Так делать не стоит. Sitemap должен отражать только те URL, которые вы хотите индексировать. Иначе вы посылаете поисковику противоречивый сигнал.
Используют несколько SEO-инструментов сразу
Когда один плагин ставит canonical, второй — noindex, а третий — переписывает robots.txt, отладка превращается в угадайку. Оставьте один источник правды для SEO-настроек.
Закрывают всё подряд без проверки трафика
Иногда архивы тегов или авторов дают полезный трафик. Перед отключением проверьте отчёты и убедитесь, что вы не режете рабочие страницы.
Чек-лист перед публикацией изменений
- Проверены URL, которые реально попадают в индекс.
- Определено, что закрываем: noindex, robots.txt или canonical.
- Закрытые страницы исключены из sitemap.
- Нет конфликта между темой, SEO-плагином и кастомным кодом.
- После правок проверен исходный код страницы и ответ сервера.
- URL отправлены на повторную проверку в Search Console.
Практические советы по безопасности и производительности
Если вы вносите правки кодом, лучше не редактировать файлы темы напрямую. Используйте дочернюю тему или небольшой mu-plugin, чтобы обновление темы не затёрло изменения. Для сайта с высокой нагрузкой это ещё и удобнее в сопровождении.
Не добавляйте тяжёлую логику в wp_head без необходимости. В примерах выше проверка условий дешёвая, но если вы начинаете делать дополнительные запросы к базе, это уже лишняя нагрузка на каждую страницу.
И ещё один практический момент: после массового закрытия архивов не ждите мгновенного эффекта. Поисковику нужно время, чтобы переобойти URL и обновить индекс. В этот период важнее не добавлять новые противоречия в sitemap и robots-настройки.