wpbook.ru wordpress WP Book

Как убрать дубли страниц из переадресации в WordPress и сохранить SEO

Если в отчётах поисковых систем всплывают дубли, а в логах видно, что одна и та же страница доступна по нескольким адресам, проблема часто не в контенте, а в маршрутизации. В WordPress это обычно происходит из-за архивов автора, вложений, пагинации, параметров ?replytocom, а иногда — из-за неверных редиректов в теме, плагине или на уровне сервера.

Ниже разберём, как найти источник дублей, что можно исправить кодом, а что лучше закрыть настройками или редиректом. Без лишней теории — только рабочие шаги.

Как понять, что дубли появились именно из-за переадресации

Сначала нужно отличить настоящий дубль контента от технического дубля URL. Для SEO это разные истории: в первом случае у вас несколько страниц с одинаковым текстом, во втором — одна и та же страница открывается по разным адресам.

Типичные признаки

  • в Google Search Console растёт число страниц с пометкой о дубликате, выбранной канонической странице или альтернативной странице с правильным каноническим URL;
  • одна запись открывается и по /post-name/, и по /post-name/?utm_source=..., и по адресу с replytocom;
  • архивы автора, даты и вложений индексируются, хотя не несут самостоятельной ценности;
  • после смены структуры ссылок старые адреса ведут на цепочку редиректов, а не на один конечный URL.

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

Откройте несколько подозрительных URL и посмотрите код ответа. Если страница отдаёт 200 OK по нескольким адресам, это дубль. Если есть 301 или 302, но цепочка длинная, поисковик всё равно может тратить краулинговый бюджет впустую.

curl -I https://example.com/sample-post/?replytocom=123

Полезно сравнить конечный адрес после редиректа и канонический тег в HTML. Если они расходятся, сначала исправляют именно это.

Какие источники дублей встречаются в WordPress чаще всего

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

ИсточникКак выглядитЧто делать
Архивы автора/author/name/Оставить только если авторские страницы реально полезны; иначе закрыть от индексации или убрать из карты сайта
Страницы вложений/image-name/ вместо медиафайлаРедиректить на файл или на родительскую запись
Параметры комментариев?replytocom=...Отключить генерацию ссылок с параметром и при необходимости редиректить
Пагинация архивов/page/2/, /page/3/Проверить каноникал и индексацию, не закрывать без причины
Старые URL после смены структурыцепочки 301Свести к одному редиректу на финальный адрес

Пошаговое решение: как убрать дубли без потери полезных страниц

Шаг 1. Найдите проблемные URL

Соберите список адресов из Search Console, логов сервера или краулера вроде Screaming Frog. Ищите не только страницы с одинаковым текстом, но и URL с параметрами, дубли архивов и старые адреса после миграции.

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

Шаг 2. Уберите лишние архивы из индекса

Если архивы автора не несут пользы, их обычно закрывают от индексации и исключают из карты сайта. Это можно сделать через SEO-плагин или кодом. Важно не путать noindex и редирект: если страница нужна пользователю, но не поисковику, чаще подходит noindex, follow.

add_filter( 'wp_robots', function( array $robots ) {
    if ( is_author() || is_attachment() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
} );

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

Шаг 3. Перенаправьте страницы вложений на полезный URL

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

add_action( 'template_redirect', function() {
    if ( is_attachment() ) {
        $parent_id = get_post_field( 'post_parent', get_queried_object_id() );

        if ( $parent_id ) {
            wp_safe_redirect( get_permalink( $parent_id ), 301 );
            exit;
        }
    }
} );

Этот код стоит добавлять в дочернюю тему или в небольшой mu-plugin, а не в файл основной темы, если она регулярно обновляется.

Шаг 4. Уберите цепочки редиректов

Если старый URL сначала ведёт на промежуточный адрес, а потом ещё раз редиректится, это нужно сократить. Ищите правила в .htaccess, конфигурации nginx, SEO-плагинах и в коде темы. Частая ошибка — одновременно настроить редирект в плагине и в сервере.

Хорошая практика — один редирект с устаревшего адреса сразу на конечный канонический URL.

Шаг 5. Проверьте канонический тег

Даже если редиректы настроены правильно, канонический URL должен совпадать с конечным адресом страницы. Иначе поисковик может считать, что вы сами не уверены в основном варианте.

add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( is_attachment() ) {
        $parent_id = get_post_field( 'post_parent', get_queried_object_id() );
        if ( $parent_id ) {
            return get_permalink( $parent_id );
        }
    }

    return $canonical;
} );

Этот пример относится к Yoast SEO. Если у вас другой SEO-плагин, проверьте его документацию: фильтры у всех разные, и не стоит подменять их наугад.

Когда лучше использовать плагин, а когда код

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

ПодходПлюсыМинусы
Плагинбыстро, без правки кода, удобно для редакторазависимость от интерфейса и обновлений, иногда меньше контроля
Кодточечное поведение, можно версионировать в Gitнужна аккуратность, легко сломать логику при обновлении темы
Серверные правилабыстро и эффективно для редиректовсложнее сопровождать, выше риск ошибки в конфиге

Если нужен аккуратный набор SEO-настроек и чистка технических дублей, в некоторых проектах удобно использовать Clearfy Pro: он закрывает часть типовых задач без ручной правки шаблонов. Но если проблема нестандартная, код всё равно придётся проверять отдельно. Ссылка для ориентира: Clearfy Pro.

Проверка результата после внедрения

После изменений не ограничивайтесь открытием страницы в браузере. Нужно проверить и HTTP-ответ, и каноникал, и индексацию.

  • проверьте, что старые URL отдают один 301 и сразу ведут на финальный адрес;
  • убедитесь, что вложения больше не открываются как отдельные контентные страницы;
  • посмотрите исходный код страницы: канонический URL должен указывать на нужный адрес;
  • в Search Console отправьте на переобход несколько проблемных URL и отследите статус через несколько дней;
  • проверьте карту сайта: в ней не должно быть страниц, которые вы намеренно закрыли от индексации.

Для быстрой локальной проверки удобно сравнить заголовки ответа:

curl -I https://example.com/old-url/
curl -I https://example.com/new-url/

Если на старом адресе вы видите 301, а на новом — 200, это хороший знак. Если есть цепочка из нескольких редиректов, её стоит сократить.

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

Закрыли страницу от индексации, но не убрали из карты сайта

Такой конфликт часто сбивает поисковик с толку. Если URL не должен индексироваться, уберите его из sitemap и проверьте, что SEO-плагин не добавляет его обратно автоматически.

Сделали редирект на главную

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

Оставили несколько источников редиректов

Когда одно и то же правило есть в .htaccess, в плагине и в PHP-коде, отладка становится мучительной. Оставьте один источник истины: либо сервер, либо плагин, либо код темы.

Поменяли каноникал, но не проверили пагинацию

На архивных страницах пагинация должна вести себя предсказуемо. Если вы бездумно назначите всем страницам один и тот же canonical, можно ухудшить индексацию полезных страниц архива.

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

Не добавляйте редиректы в шаблоны без проверки условий. Ошибка в template_redirect может привести к бесконечному циклу или поломке админки. Для постоянных правил лучше использовать mu-plugin или отдельный мини-плагин, чтобы не потерять логику при смене темы.

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

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

Короткий чек-лист перед публикацией изменений

  • проверены проблемные URL и источник дубля;
  • настроен один понятный редирект для старых адресов;
  • вложения и архивы автора обработаны отдельно;
  • канонический URL совпадает с конечным адресом;
  • технические страницы не попадают в sitemap;
  • нет цепочек редиректов и циклов;
  • изменения протестированы через curl -I или аналогичный инструмент.

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

×
-15%
на премиум-тему
Reboot

Создай сайт мечты
на WordPress!

Купить со скидкой »