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

Дублированные страницы — частая проблема сайтов на WordPress, которая негативно влияет на SEO и удобство пользователей. В этой статье разберём, как найти и удалить дублированные страницы без использования плагинов, используя чистый код и стандартные инструменты WordPress.

Почему важно удалять дублированные страницы

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

Основные источники дублей в WordPress:

  • Несанкционированные копии страниц и записей
  • Пагинация и архивы без правильной канонизации
  • Параметры URL, создающие одинаковый контент

Как найти дублированные страницы вручную

Для начала нужно выявить дубли. Самый простой способ — использовать SQL-запросы к базе данных или экспорт контента в CSV для анализа.

Пример SQL-запроса для поиска страниц с одинаковыми заголовками:

SELECT post_title, COUNT(*) as count FROM wp_posts WHERE post_type = 'page' AND post_status = 'publish' GROUP BY post_title HAVING count > 1;

Этот запрос покажет заголовки страниц, которые встречаются более одного раза. Аналогично можно проверять URL (post_name) или содержимое (post_content), но это более ресурсоёмко.

Ещё один способ — использовать поиск в админке по ключевым словам и сравнить результаты.

Удаление дублированных страниц через код

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

Пример функции для удаления дублей по заголовку, оставляя страницу с минимальным ID (то есть самой старой):

function wpmart_delete_duplicate_pages() {
    global $wpdb;

    $duplicates = $wpdb->get_results(
        "SELECT post_title, MIN(ID) as keep_id, GROUP_CONCAT(ID) as all_ids, COUNT(*) as cnt
         FROM {$wpdb->posts}
         WHERE post_type = 'page' AND post_status = 'publish'
         GROUP BY post_title
         HAVING cnt > 1"
    );

    foreach ($duplicates as $dup) {
        $ids = explode(',', $dup->all_ids);
        foreach ($ids as $id) {
            if ($id != $dup->keep_id) {
                wp_delete_post($id, true); // принудительное удаление без корзины
            }
        }
    }
}

// Запустите функцию один раз, например, через админский хук или WP-CLI
// wpmart_delete_duplicate_pages();

Обязательно сделайте резервную копию базы данных перед запуском такого кода.

Как предотвратить появление дублей в будущем

Настройка канонических URL

Канонические ссылки говорят поисковикам, какая версия страницы основная. WordPress автоматически добавляет их, но иногда нужно исправить вручную или с помощью SEO-плагинов. Без плагинов можно добавить в functions.php следующую функцию:

function wpmart_add_canonical_tag() {
    if (is_singular()) {
        echo '<link rel="canonical" href="' . get_permalink() . '" />';
    }
}
add_action('wp_head', 'wpmart_add_canonical_tag');

Избегайте создания страниц с похожими URL

При создании страниц проверяйте уникальность слага (URL-части). Если вы дублируете контент, подумайте о 301 редиректах вместо создания новых страниц.

Использование robots.txt и мета-тегов noindex

Если есть страницы, которые не должны индексироваться, используйте мета-тег noindex или запрет на индексацию в robots.txt. Например:

User-agent: *
Disallow: /tag/
Disallow: /category/
Disallow: /author/

Для добавления noindex в отдельные страницы без плагинов можно использовать хук:

function wpmart_noindex_for_archives() {
    if (is_tag() || is_category() || is_author()) {
        echo '<meta name="robots" content="noindex,follow">';
    }
}
add_action('wp_head', 'wpmart_noindex_for_archives');

Рекомендации по работе с плагинами для SEO

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

Также полезен WPCommunity — тема с хорошей SEO-оптимизацией, которая минимизирует дублирование страниц при генерации контента.

WooCommerce: автоматическое отключение товара после продажи
10.06.2026
WordPress авторизация по телефону без плагинов: практическое руководство
10.04.2026
Как удалить ненужные meta-теги в WordPress для оптимизации сайта
04.12.2025
Как отключить автовоспроизведение изображений в WordPress
23.12.2025
WooCommerce: установка минимальной суммы заказа по регионам с проверкой
17.04.2026