WordPress Notes WPTicket

Как найти и убрать дубли в WordPress без поломки структуры сайта

Дубли в WordPress редко выглядят как одна очевидная ошибка. Чаще это набор мелких проблем: одна и та же запись открывается по разным URL, архивы дублируют контент, в sitemap попадают лишние страницы, а пагинация и теги создают вторую копию того же материала. В итоге поисковик тратит краулинговый бюджет не туда, а вы получаете размытые сигналы по основным страницам.

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

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

Перед исправлением важно понять, о каком типе дубля идет речь. Для WordPress это обычно не «копия статьи» в бытовом смысле, а несколько URL с одинаковым или почти одинаковым содержимым.

  • одна запись доступна с /post-name/ и через параметры вроде ?amp, ?replytocom или UTM;
  • архивы категорий, тегов, авторов и дат повторяют основной текст;
  • страницы пагинации дублируют заголовки и первые абзацы;
  • страницы вложений открываются как отдельные тонкие страницы;
  • сайт отдает и http, и https, или с www и без него;
  • в sitemap попадают технические URL, которые не должны конкурировать в индексе.

Диагностика: где искать проблему

Начинать лучше не с правок, а с проверки фактических URL. Это экономит время: иногда дубли создают не плагины, а тема или старые правила редиректов.

Проверьте канонический URL и ответы сервера

Откройте несколько подозрительных адресов и посмотрите, какой код ответа они возвращают. Если одна и та же страница доступна по разным адресам без редиректа, это уже повод для исправления.

curl -I https://example.com/post-name/
curl -I https://example.com/?p=123
curl -I https://www.example.com/post-name/

Что ищем:

  • 301 на единственный основной URL;
  • 200 только у канонической версии;
  • наличие тега rel="canonical" в HTML;
  • отсутствие индексации у служебных страниц, если они не нужны в поиске.

Сравните sitemap и реальные страницы

Если в XML-карте сайта есть URL, которые вы не хотите продвигать, поисковик все равно будет их обходить. Это не всегда ошибка, но часто признак того, что настройки SEO-плагина или темы слишком широкие.

Проверьте:

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

Пошаговое решение: что исправлять в WordPress

Здесь важно идти от самого безопасного к более точечному. Сначала убираем дубли на уровне URL и индексации, потом — на уровне шаблонов и контента.

1. Настройте единый основной адрес сайта

Проверьте Настройки → Общие: адрес WordPress и адрес сайта должны совпадать по протоколу и домену. Если сайт должен открываться только по HTTPS и без www, все альтернативы должны вести на одну версию через 301.

Для Apache это обычно делается в .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>

Для Nginx логика та же, но правило пишется в конфиге сервера. Если не уверены, лучше отдать это администратору хостинга: неправильный редирект легко ломает вход в админку и кэш.

2. Закройте страницы вложений и тонкие архивы

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

Пример через template_redirect:

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;
        }

        wp_redirect(home_url('/'), 301);
        exit;
    }
});

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

3. Уберите дубли из sitemap

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

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

4. Нормализуйте канонические ссылки

Если одна и та же запись доступна по нескольким URL, поисковику нужно явно указать основную версию. Большинство SEO-плагинов делает это автоматически, но проблема возникает, когда тема или кастомный шаблон выводит свой canonical вручную.

Проверьте исходный код страницы: должен быть один канонический URL, без конфликтующих дублей от темы и плагина. Если видите два тега canonical, один из них нужно убрать.

5. Сократите дубли в архивных шаблонах

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

В теме это обычно решается через the_excerpt() вместо the_content() в архивных шаблонах:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <div class="entry-summary">
            <?php the_excerpt(); ?>
        </div>
    </article>
<?php endwhile; endif; ?>

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

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

ПодходКогда подходитМинус
ПлагинСкрыть архивы, настроить sitemap, canonical, noindexЗависимость от интерфейса и логики плагина
Код в теме или mu-pluginРедиректы, вложения, шаблоны архивов, точечная логикаНужно тестировать после обновлений
Комбинированный вариантКогда SEO-плагин закрывает индексацию, а код убирает технические URLВажно не задублировать правила

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

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

  • основной URL отдает 200;
  • альтернативные версии отдают 301 на канонический адрес;
  • в исходном коде страницы один тег canonical;
  • в sitemap нет лишних архивов и вложений;
  • в Google Search Console нет всплеска страниц с дублированным контентом;
  • внутренний поиск сайта не индексируется как отдельные страницы.

Для быстрой ручной проверки удобно использовать curl, а для массовой — выгрузку URL из sitemap и сравнение с фактическими страницами. Если у вас есть доступ к Search Console, посмотрите отчеты по страницам и исключенным URL: там обычно видно, что именно поисковик считает дублем.

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

Редиректов слишком много

Если вы сначала отправляете http на www, потом www на без www, а затем еще и на слэш в конце, получается цепочка. Исправление простое: оставьте один прямой редирект на финальный URL.

Закрыли от индексации то, что должно ранжироваться

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

Удалили страницы вложений, но сломали изображения

Нельзя путать страницу вложения и сам файл. Редиректить нужно именно attachment page, а не URL медиафайла в библиотеке.

Оставили дубли в шаблоне темы

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

Практические советы по безопасности и производительности

Любые правки редиректов и шаблонов лучше вносить сначала на staging-копии. Это особенно важно, если сайт уже индексируется и получает трафик. Ошибка в одном правиле может массово отправить страницы в 404 или создать бесконечный редирект.

Если вы используете кастомный код, вынесите его в mu-plugin или отдельный мини-плагин, а не в functions.php активной темы. Так правка не пропадет при смене темы и проще контролировать изменения.

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

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

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

×
Прокачай свой сайт WordPress!

WordPress

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙