Как удалить дубли страниц wordpress?

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

Существует несколько способов удаления дубликатов страниц в WordPress:

1. Редактирование файлов .htaccess:
- Создайте резервную копию файла .htaccess перед его изменением;
- Откройте файл .htaccess на сервере и добавьте следующий код в раздел "RewriteEngine On":

      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^www.example.com$
      RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Вместо "www.example.com" и "http://example.com/" укажите свой домен.

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

2. Использование плагинов:
Существует множество плагинов, которые позволяют удалить дубликаты страниц в WordPress, например, Yoast SEO, Rank Math, All in One SEO Pack и другие.

- Установите и активируйте плагин по вашему выбору;
- Зайдите в настройки плагина и найдите опцию "Canonical URLs", "Permalink settings" или схожую с этим названием;
- Включите настройку для автоматического добавления канонических ссылок на все страницы;
- Сохраните настройки плагина;
- Перейдите по каждой странице вашего сайта и проверьте, что канонические ссылки действительно добавляются и дубликаты удалены.

3. Использование кода PHP:
Если вы предпочитаете использовать свой код, можно использовать следующий пример:

   function remove_duplicates() {
       global $wpdb;
       $query = "SELECT post_title, COUNT(*) as count FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' GROUP BY post_title HAVING count > 1";
       $pages = $wpdb->get_results($query);
       foreach ($pages as $page) {
           $query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' AND post_title = '$page->post_title'";
           $duplicates = $wpdb->get_results($query);
           if (count($duplicates) > 1) {
               foreach ($duplicates as $key => $duplicate) {
                   if ($key > 0) {
                       wp_delete_post($duplicate->ID, true);
                   }
               }
           }
       }
   }
   remove_duplicates();

- Создайте резервную копию файла functions.php перед его изменением;
- Откройте файл functions.php в редакторе кода и добавьте вышеприведенный код в конец файла;
- Сохраните изменения и загрузите файл на сервер;
- Зайдите на ваш сайт и проверьте, что дубликаты страниц были удалены.

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