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

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

При работе над технической оптимизацией сайта крайне важно уделить внимание устранению дублей страниц, т.к. они негативно воспринимаются поисковыми системами, вплоть до наложения санкций. Это происходит из-за того, что дубли снижают уникальность страниц, которые они дублируют, а также всего сайта в целом. Из-за них снижается релевантность сайта, вес страниц, они могут затруднять индексацию. Частая проблема – основная страница в выдаче может замениться дублированной, и из-за этого могут происходить скачки позиций по продвигаемым фразам. Такая ситуация происходит, потому что поисковая система не может определиться с релевантной страницей и постоянно меняет ее с одной на другую. Чтобы всего этого избежать, мы расскажем в нашей статье, как найти и удалить разного вида дубли.

Виды дублей страниц

Существует два вида дублей страниц: полные и частичные. Их поиск и устранение немного отличаются.

Полные дубли

Полные дубли – это дубли страниц, по которым контент совпадает полностью. Это могут быть как две, так и более идентичные страницы. Далее рассмотрим варианты полных дублей.

Страница с «www» и без «www». К ним относятся как главная страница, так и внутренние, например: https://www.site.ru/ и https://site.ru/ – страницы будут полными копиями; https://www.site.ru/product/ и https://site.ru/product/ – также копии.

Решение: сделать 301-редирект с www на без www (или наоборот, в зависимости от выбранного зеркала сайта) в файле .htaccess.

Пример редиректа с www на без www:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

C без www на www:

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

Дубли страниц с протоколами http и https. Если на сайт был установлен SSL- сертификат, но не настроен необходимый редирект, то сайт будет доступен по двум адресам одновременно – http и https. Примеры: https://site.ru/ и http://site.ru/, https://site.ru/product/ и http://site.ru/product/.

Решение: сделать 301-редирект с http на https.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Дубли главной страницы, которые отвечают за её отображение, примеры:

  • https://site.com/index
  • https://site.com/index/
  • https://site.com/index.php
  • https://site.com/index.html
  • также бывают дубли с home.html, с htm, asp и т.д.

Решение: сделать 301-редирект с дубля на главную страницу.

Пример редиректа для /index.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://site.ru/ [R=301,L]

Для /index.html

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://site.ru/ [R=301,L]

Наличие или отсутствие «/» в конце адреса, т.е. когда страница доступна по ссылке со слэшем и без него. Чтобы проверить это необходимо посмотреть, как изначально формируются url страниц (например, перейдите с главной страницы в любой раздел), если открылась ссылка вида https://site.ru/product/, то вручную уберите с конца url слэш – https://site.ru/product. Если одна и та же страницы будет открываться со «/» на конце и без него, то это дубль, от которого нужно избавиться.

Решение: сделать 301-редирект со «/» на без «/» (или наоборот) в файле .htaccess.

Пример редиректа с без «/» на «/» на конце

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.(jpg|gif|png|css|html|phtml|htm|pdf))$
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]

Со «/» на без «/»

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

Плагины, модули и особенности CMS. В зависимости от CMS и установленных на них плагинов и модулей, они могут создавать разные дубли страниц, которые также важно находить и убирать. Например, на CMS Wordpress обычное дело встретить автоматические дубли, в url которых есть feed, tag, attacment, trackback, replytocom и пр.

Решение:

Закрыть дубли от индексации в robots.txt, например с помощью правила Disallow: *?replytocom.

Т.к. в адресах дублей часто имеется знак вопроса, самый простой способ избавиться от большей их части – это правило Disallow: /*? (при условии, что на сайте нет актуальных адресов со знаком вопроса).

Еще один вид дублей – когда отсутствует уровень вложенности, и одна и та же страница доступна по разным адресам, например: https://site.ru/katalog/bumaga и https://site.ru/bumaga. Дубль может появляться как из-за установленных модулей, так и из-за особенностей CMS.

Решение:

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

Также бывает, что после настройки ЧПУ на сайте прежний url все равно остаётся доступен для индексации и отдает 200-ответ. Эту проблему можно встретить на сайтах на OpenCart. Пример: https://site.ru/?post_type=product&p=4458 и url с ЧПУ https://site.ru/shop/lichnaya-gigiena/4458/.

Разные решения:

  • Настроить атрибут canonical, указав на дубле каноническую страницу. Например, на странице https://site.ru/?post_type=product&p=4458 в коде будет указано .
  • Сделать массовый 301-редирект по определенному get-параметру дубля, к примеру с https://site.ru/page.php?id=1 на https://site.ru/page/.

Пример редиректа для страниц с параметрами:

RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^(.*)$ https://site.ru/page/? [R=301,L]

  • Еще один вариант избавления от get-параметров – настройка директивы Clean-param в файле robots.txt (работает только для Яндекса).

Дублирование товара. Бывает так, что один и тот же товар добавляется на сайт несколько раз (например, это могло произойти случайно) или из-за особенностей CMS специально, чтобы товары могли оказаться в разных разделах (например, когда CMS не умеет привязывать один и тот же товар в разные категории под одним адресом).

Решение:

В случае, если виновата CMS, то рекомендуется настроить для дублей атрибут canonical. Если такие дубли были добавлены вручную и их не много, то можно удалить самостоятельно.

UTM-метки – спецпараметры в url, которые позволяют передавать данные для анализа рекламы и источника переходов. Бывает так, что после их настройки такие url попадают в индекс и создают дубли продвигаемым страницам.

Разные решения:

  • На страницах с UTM-метками настроить каноническую ссылку.
  • Закрыть индексацию таких страниц с помощью robots.txt – Disallow: /*?utm_* или с помощью директивы Clean-param.
  • Можно настроить мета-тег robots – на страницах с UTM-метками.

Аналогично можно избавиться от меток yclid, gclid и многих других.

404-ошибка отдает ответ сервера 200. Часто бывает так, что у несуществующей страницы не настроен необходимый ответ сервера, а именно 404. Чтобы проверить это, нужно взять любую страницу и вместо адекватного url, ввести абракадабру: https://site.ru/jshfjdjgkls и далее с помощью любого сервиса для просмотра HTTP-заголовков, например bertal.ru, проверить ответ сервера https://site.ru/jshfjdjgkls. Если он отдает 200-ответ, значит потенциально у сайта может быть гигантское количество дублей. Рекомендуется проверить url разных видов – например, адрес раздела, товара и пр., желательно добавлять символы на разных уровнях адреса страницы, а также пробовать добавлять множественные слеши, заменять черточки на нижние подчеркивания.

Решение:

Для несуществующих страниц настроить 404-ответ сервера путём доработки кода.

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

Решения:

  • Закрыть тестовую версию сайта в файле robots.txt следующими правилами:

User-agent: *
Disallow: /

  • Важно не только закрыть, но и удалить дубль из поисковых систем, если они его уже проиндексировали. Сделать это можно через инструмент в Яндекс.Вебмастере «Удаление страниц из поиска» и через Google Search Console – раздел «Удаления».

Версия для печати, RSS и PDF. Чем мешают такие страницы? Например, печатная версия полностью дублирует весь контент страницы, аналогично с RSS-лентой и PDF-версией страниц.

Решение:

Проще всего закрыть такие дубли от индексирования поисковыми системами в файле robots.txt, например для версии страницы для печати задать такое правило:
Disallow: */print.

Частичные дубли

Частичные дубли (или нечеткие) – это когда контент страниц совпадает лишь частично. Нечеткие дубли имеют меньше отрицательного влияния на сайт, но они все еще ухудшают его ранжирование, хоть и незначительно.

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

Решение:

Такие товары рекомендуется уникализировать относительно друг друга, это можно сделать как вручную, там и автоматически – например, найти, какой-то параметр, который их отличает и добавить его в заголовок h1, мета-теги title и description, например это может быть артикул, цвет и др. Для добавления большей уникальности рекомендуется добавить разные описания товарам.

...

Окончание статьи «Как найти и удалить все дубли страниц на сайте» в нашем блоге: https://business-online.su/blog/kak-nayti-i-udalit-dubli-stranic-na-sayte/

...