wpapp.ru wordpress wpapp.ru

Как исключить адрес из индексации в WordPress без закрытия всего сайта

Ситуация типовая: в индексе уже есть лишняя страница — тестовый URL, служебный архив, дубль фильтра, старая версия материала или страница, которую нельзя удалять из-за внутренних ссылок. Полностью закрывать сайт не нужно, но один конкретный адрес надо убрать из поиска и не допустить повторной индексации.

Важно сразу разделить задачи: не индексировать и не сканировать — это не одно и то же. Для удаления URL из поиска обычно работает связка noindex + корректный canonical + отсутствие ссылки в sitemap. robots.txt помогает ограничить обход, но сам по себе не гарантирует выпадение страницы из индекса, если она уже известна поисковику.

Когда проблема действительно в индексации, а не в дублировании

Перед правкой кода проверьте, что именно происходит с адресом. Иногда страница уже не нужна, но в выдаче висит её копия с другим параметром, а иногда поисковик показывает URL без текста, потому что он был закрыт от обхода слишком рано.

Что посмотреть в первую очередь

  • есть ли URL в индексе по запросу site:example.com/адрес;
  • отдаёт ли страница код 200, 301 или 404;
  • не стоит ли на ней noindex уже сейчас;
  • не попадает ли адрес в XML-карту сайта;
  • не ведут ли на него внутренние ссылки из меню, хлебных крошек, архива или похожих записей.

Если страница должна исчезнуть окончательно, но при этом отдаёт 200, поисковик будет держать её в базе дольше. Если же вы просто хотите убрать её из выдачи, но оставить для пользователей, нужен именно noindex, а не удаление файла или запрет в robots.txt.

Рабочая схема: noindex для одного URL и проверка канонического адреса

Самый надёжный вариант — повесить noindex,follow только на нужную страницу. В WordPress это можно сделать через wp_head, если URL известен заранее и не зависит от сложной логики.

<?php
add_action('wp_head', function () {
    if (is_page(123)) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
        echo '<link rel="canonical" href="' . esc_url(home_url('/nuzhnyy-adres/')) . '" />' . "\n";
    }
});

В этом примере страница с ID 123 не будет индексироваться, а канонический адрес укажет поисковику, какую версию считать основной. Если у вас не одна страница, а целый тип контента или набор URL по шаблону, логику лучше строить через условные теги WordPress, а не через ручные правки в шаблоне.

Если нужно закрыть архив, тег или вложение

Для архивов и медиа-страниц часто удобнее использовать фильтры SEO-плагина или собственную логику в теме. Например, у вложений в WordPress нередко есть отдельная страница-обёртка, которая не несёт пользы в поиске. Её лучше либо редиректить на сам файл/родительскую запись, либо закрывать от индексации.

<?php
add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = get_post_field('post_parent', get_queried_object_id());
        if ($parent) {
            wp_safe_redirect(get_permalink($parent), 301);
            exit;
        }
    }
});

Такой редирект полезнее, чем просто оставлять attachment-страницу в индексе. Но если вложение уже используется как отдельная посадочная, редирект делать нельзя — в этом случае лучше ограничиться noindex.

Что делать с robots.txt, а что не делать

robots.txt нужен, когда вы хотите ограничить обход технических разделов, а не точечно убрать страницу из индекса. Если закрыть уже проиндексированный URL через Disallow, поисковик может перестать его обходить, но запись в индексе останется без обновления. Для удаления это слабый инструмент.

СпособКогда использоватьПлюсМинус
noindexНужно убрать конкретный URL из поискаПрямой сигнал поисковикуНужно дождаться переобхода
robots.txtНужно ограничить сканированиеСнижает нагрузку на обходНе гарантирует удаление из индекса
301 на новый адресСтраница переехалаПередаёт сигнал о замене URLНе подходит, если страницы больше не должно быть
404/410Страница удалена навсегдаЧёткий сигнал об исчезновенииНельзя использовать, если нужен контент для пользователей

Если URL уже в индексе и вы хотите ускорить его исчезновение, обычно делают так: ставят noindex, убирают ссылку из sitemap, при необходимости возвращают 404 или 410, а затем отправляют страницу на переобход через панели вебмастеров.

Пошаговое решение без лишнего риска

  1. Определите точный URL, который надо исключить.
  2. Проверьте, есть ли у него внутренние ссылки и есть ли он в XML-карте сайта.
  3. Выберите сценарий: оставить страницу доступной, удалить её или перенести на другой адрес.
  4. Добавьте noindex только на нужный URL или шаблон.
  5. Если страница переехала, поставьте 301 на актуальный адрес.
  6. Если страница удалена навсегда, отдавайте 404 или 410, а не пустую страницу с 200.
  7. Проверьте исходный код, заголовки ответа и статус в панели вебмастера.

Если вы используете SEO-плагин, часть задачи можно решить без кода. Например, в некоторых конфигурациях удобнее отключить индексацию конкретной записи через метабокс SEO-плагина и отдельно исключить её из карты сайта. Это проще поддерживать, чем держать ручной код в теме, если контентом управляет редактор.

Как проверить, что решение сработало

Проверка должна быть не визуальной, а технической. Откройте страницу и посмотрите исходный код: должен быть мета-тег robots с noindex, если вы выбрали именно этот путь. Затем проверьте HTTP-статус ответа. Если был редирект, он должен вести на нужный адрес без цепочки из нескольких переходов.

  • в HTML есть <meta name="robots" content="noindex,follow" />;
  • канонический URL указывает на правильную страницу;
  • страница не попадает в XML sitemap;
  • в панели вебмастера URL отмечен как исключённый или неиндексируемый;
  • при запросе site: страница постепенно исчезает из выдачи после переобхода.

Если используете Google Search Console или Яндекс.Вебмастер, не ждите мгновенного результата. Сначала поисковик должен заново обойти адрес и увидеть новый сигнал. Если страница закрыта от обхода в robots.txt, а не через noindex, процесс может затянуться.

Частые ошибки и как их исправить

Закрыли URL в robots.txt и ждёте удаления

Это самая частая ошибка. Если страница уже в индексе, Disallow не сообщает поисковику, что её надо убрать. Сначала дайте сигнал через noindex или 404/410, потом ограничивайте обход.

Оставили страницу с кодом 200 и пустым контентом

Пустая или почти пустая страница с 200 — плохой сигнал. Если контент не нужен, отдавайте честный 404 или 410. Если контент нужен, но не должен индексироваться, используйте noindex.

Поставили canonical на нерелевантный адрес

Каноникал не должен уводить на случайную главную страницу или на страницу, которая не соответствует содержанию. Иначе поисковик может проигнорировать подсказку. Канонический адрес должен быть логичным дублем или основной версией того же материала.

Забыли убрать URL из sitemap

Если адрес остаётся в карте сайта, вы сами подсказываете поисковику, что его стоит переобойти. Для исключаемых страниц это лишний шум. После правки проверьте генератор sitemap и исключите нужный тип записей или конкретный объект.

Безопасность и производительность: что учесть в WordPress

Если вы добавляете логику в тему, не привязывайте её к случайным шаблонам. Лучше держать такие правила в дочерней теме или небольшом mu-plugin, чтобы они не пропали после обновления. Для массовых правил по индексации удобнее использовать SEO-плагин или отдельный слой конфигурации, а не размазывать код по functions.php.

Ещё один практический момент: не плодите редиректы. Если URL уже закрыт и не нужен, один корректный ответ лучше, чем цепочка 301302404. Это и для обхода поисковиком хуже, и для сервера лишняя нагрузка.

Если вам нужно регулярно чистить сайт от дублей, служебных архивов и лишних страниц, удобнее держать это в одном инструменте, а не собирать вручную по кускам. В таких задачах иногда используют Clearfy Pro: он закрывает часть типовых SEO- и технических настроек без постоянного редактирования шаблонов. Но даже с плагином важно понимать, какой именно сигнал вы отправляете поисковику — noindex, редирект или удаление страницы.

Когда задача точечная, ориентируйтесь на простой принцип: если страница должна остаться доступной — noindex; если она переехала — 301; если она больше не нужна — 404/410. Всё остальное — вспомогательные меры, а не замена основному сигналу.

×
Сделай WordPress мощнее!

Скидка -20% на топовые премиум плагины

Выбрать плагин сейчас ⋙