wplab.ru wordpress wplab.ru

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

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

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

Как понять, что на сайте есть дубли

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

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

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

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

  • откройте запись и посмотрите, нет ли у неё альтернативных URL через категории, теги и архивы автора;
  • проверьте исходный код страницы на наличие rel="canonical";
  • сравните заголовки и мета-описания у похожих страниц;
  • посмотрите, не создаёт ли плагин SEO отдельные архивы для таксономий, которые вам не нужны;
  • проверьте, не остались ли дубли после импорта CSV, миграции или восстановления из бэкапа.

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

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

Источник дубляКак выглядитЧто делать
Записи-клоныОдинаковый контент в двух post IDОставить одну запись, вторую удалить или объединить
Архивы категорий и теговПочти тот же текст в нескольких архивахОставить только полезные архивы, остальные закрыть или убрать
Параметры URL?utm=, сортировка, фильтры, пагинацияНастроить canonical и, где нужно, noindex
Старые версии после миграцииДва одинаковых URL на одном контентеСделать 301 на основной адрес

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

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

Шаг 1. Составьте список подозрительных URL

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

Шаг 2. Определите, что оставить, а что убрать

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

Шаг 3. Удалите дублированные записи через админку или код

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

<?php
add_action('admin_post_wplab_delete_duplicate_posts', function () {
    if ( ! current_user_can('delete_posts') ) {
        wp_die('Недостаточно прав');
    }

    check_admin_referer('wplab_delete_duplicate_posts');

    $ids = isset($_POST['post_ids']) ? (array) $_POST['post_ids'] : [];
    $ids = array_map('absint', $ids);
    $ids = array_filter($ids);

    foreach ($ids as $post_id) {
        if ( get_post($post_id) ) {
            wp_delete_post($post_id, true);
        }
    }

    wp_safe_redirect(admin_url('edit.php?deleted=1'));
    exit;
});

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

Шаг 4. Настройте канонический URL

Если одна и та же сущность доступна по нескольким адресам, canonical должен указывать на основную версию. В WordPress это часто делает SEO-плагин, но поведение стоит проверить вручную. Для нестандартных страниц можно задать canonical через фильтр.

<?php
add_filter('wpseo_canonical', function ($canonical) {
    if (is_singular('post')) {
        return get_permalink();
    }

    return $canonical;
});

Если вы не используете Yoast SEO, не пытайтесь копировать этот код вслепую. У других SEO-плагинов свои фильтры. Суть одна: у страницы должен быть один главный адрес.

Шаг 5. Уберите лишние архивы и страницы-двойники

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

Для архивов, которые не нужны пользователям и поисковику, разумнее использовать noindex и убрать их из sitemap, чем держать их открытыми только ради формального наличия.

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

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

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

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

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

Удаляют страницу, не проверив входящие ссылки

Если на дубль ведут внешние ссылки, простое удаление создаст потерю трафика. В таком случае нужен 301-редирект на основную страницу, а не удаление в корзину.

Путают дубль и похожую, но полезную страницу

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

Оставляют несколько версий одного URL

Частая ошибка — canonical есть, но старые адреса всё ещё открываются без редиректа. Поисковик может продолжать обходить обе версии. Исправление простое: canonical плюс 301 на основной адрес, если дубль не нужен пользователю.

Чистят базу, не проверяя типы записей

Если удалить записи по ID без фильтра по post type, можно задеть страницы, медиа или кастомные типы записей. Перед массовым удалением всегда ограничивайте выборку по типу контента.

Плагин, код или ручная чистка: что выбрать

Если дублей немного, ручная проверка быстрее и безопаснее. Когда проблема повторяется регулярно, удобнее автоматизировать часть процесса. Для SEO и технической чистки иногда проще использовать специализированный набор инструментов, например Clearfy Pro, если вам нужно закрывать служебные страницы, убирать дубли и наводить порядок в индексации: https://wpshop.ru/plugins/clearfy.

ПодходКогда подходитМинус
Ручная чисткаМало дублей, понятная структураТрудно масштабировать
КодНужно массово удалить или перенаправитьТребует аккуратной проверки
ПлагинНужны регулярные SEO-настройки и контроль дублейЗависимость от интерфейса и настроек

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

  • перед массовым удалением сделайте резервную копию базы данных;
  • не запускайте чистку на боевом сайте без проверки на staging;
  • после удаления дублей обновите sitemap и очистите кеш;
  • если используете редиректы, избегайте цепочек из нескольких 301;
  • не закрывайте от индексации всё подряд — сначала проверьте, не нужен ли URL пользователям.

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше