Дубли страниц. Найти и обезвредить.

дубль

Сегодня мы как в старом индийском кино будем искать близнецов, с той лишь разницей, что от найденных близнецов мы будем безжалостно избавляться. Вот такой вот старый добрый индийский хоррор. А если серьёзно то искать мы будем дубли страниц сайта.

Дубль первый: найти близнеца.

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

Есть куча вариантов как искать дубли. Первое что приходит на ум - воспользоваться поиском по сайту. Набираете в поисковой строке кусок текста и смотрите на выдачу. Не забывайте указать сайт. Для этого воспользуйтесь расширенным поиском Яндекса или Гуглом.
Для Google запрос будет выглядеть так
site:site_name.ru текст запроса
site_name.ru - адрес вашего сайта.
Текст запроса - кусок текста со страницы для которой ищем дубли.

Следующий способ поиска дублей основан на особенностях движка. Мета теги и <title> скорее всего будут одинаковым у дублей. Найти совпадения нам помогут гуглоинструменты вебмастера. Переходим в Оптимизация HTML. На скрине видно что повторяющихся метаописаний нет и с заголовками всё в порядке. Если поисковик проиндексирует дубли то появиться ссылка повторяющиеся теги заголовка.

ищем дубли через инструменты вебмастера Гугла

Не обязательно ждать пока поисковики проиндексируют ваш сайт чтобы отловить дубли страниц. Вместо лечения мы можем заняться профилактикой на ранних этапах. Для этого нужно понимать как работает наш сайт. Полностью одинаковые страницы появляются после включения чистых УРЛов, при этом "грязные" продолжают работать как и раньше. Ещё одна копия появляется после того как мы делаем УРЛ правильным, то есть заменяем системные УРЛы на свои, сгенерированные из заголовков или прописанные в ручную. Мы то с вами понимаем, что после всех этих манипуляций у одной страницы появляется три разных адреса. Поисковики смотрят на это несколько иначе. Для них это три отдельных страницы с одинаковым содержим. Иметь по две копии на каждую страницу сайта это перебор. Но мы с вами знаем откуда берутся эти копии и знаем какие у них УРЛ. Не чистый УРЛ всегда содержит знак "?". Все системные адреса содержат node/ - для страниц с контентом и taxonomy/ для страниц терминов словарей. Ещё один источнике дублей - страницы комментариев. Тут тоже всё просто. В УРЛе таких страниц содержится слово comment. Теперь мы знаем достаточно для нанесения превентивного удара по армии близнецов.

Дубль второй: останется только один.

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

Первый способ - показать ПСам самого крепкого близнеца а остальных спрятать. Делается это с помощью файла robots.txt. Этот файл есть в Drupal и наверное в других движках. Но если вы его не нашли в корне сайта можете создать его сами. Это обычный текстовый файл, в котором прописывают правила индексации сайта. С помощью robots.txt можно закрыть не только дубли но и служебные страницы. Подробнее о правилах заполнения этого файла можно прочитать в инструкции Яндекса. После составления robots.txt проверьте его в Яндекс Вебмастер в разделе Настройка индексирования - Анализ robots.txt.

Второй способ предотвратить попадание дублей в индекс - указать ПСам какая страница является основной. Для этого на странице дублей в теге <link> прописываем атрибут rel="canonical" и адрес основной страницы. При этом нужно помнить что адрес должен быть в том же домене, указывать только один канонический УРЛ на странице и каноническая страница должна быть доступна. Для Drupal есть замечательный модуль MetaTag который автоматически прописывает канонические УРЛы, нужно только подсказать ему как это делается. Вот ссылка на статью про MetaTag.

Дубль три: Прочая родня.

С близнецами разобрались остались двоюродные. Я говорю о страницах разделов или тегов. Да они не являются 100% дублями, но содержат анонсы, которые как правило, берутся из текстов. Здесь всё не однозначно. Если брать страницы разделов сайта, то закрывать их от индексации не нужно. Поисковики прекрасно понимают структуру сайта и могут отличить страницу раздела от обычной страницы.

Другое дело страницы тегов, особенно те на которых мало анонсов. Эти страницы не имеют никакого отношения к структуре, содержат мало контента который продублирован в постах и на страницах разделов. Закрыть от индексации можно добавляя адреса страниц тегов в robots.txt. Проблема в то что я добавляю новые теги при написании постов, поэтому список страниц постоянно увеличивается. Чтобы не править каждый раз robots.txt воспользуемся мета тегом
<meta name="robots" content="noindex"/>
Поможет нам опять модуль MetaTag. В настройках модуля для словаря с тегами в расширенных настройках выбираем запретить индексацию.

Теперь все у кого сайты на Drupal внимание. Вернёмся на страницу разделов сайта или на главную. Если у вас анонсов больше чем вмещается на странице cms создаст ещё страницы и добавит внизу пейджер. Все страницы разделов кроме первой будут с нечистыми УРЛами независимо от настроек. Плюс к этому канонический УРЛ всех последующих страниц указывает на первую. Получается что из всех страниц категорий в индекс попадёт только первая. Единственное решение, которое я смог найти, отключить канонические УРЛ для словаря разделов сайта и проверить robots.txt. Дело в том что в робо-файле можно использовать специальные символы, которые могут упростить жизнь. Например символ "*" указывает на любое количество любых  символов. У меня было прописано такое правило
Disallow: /*?*
Закрывает от индексации все страницы в адресе которых содержится "?" то есть все страницы с нечистыми урлами. Под это правило попали все страницы разделов кроме первых. После того как удалил первую звёздочку всё стало работать нормально.

З.Ы. Эта статья из раздела продвижение, следовательно является моим взглядом на проблему, а не инструкцией к действию. Вопросы и критика приветствуются.

У меня сайт на Вордпресс, может отличия значительные, не знаю. Отмечу, что бывают еще дубли пагинации: когда динамические страницы имеют несколько страниц: первая, вторая и так далее. Их тоже нужно закрывать, оставляя в индексации только первую страницу. Многие закрывают страницы рубрик. Я оставила их открытыми, закрыв последующие. Еще есть дубли страниц с картинками, архивы. А то, что генерирует движок, тоже закрываем через Роботс, оставляя только опубликованные статьи в индексе. Черновики нельзя никому читать :)

Я тоже не закрываю страницы рубрик. Рубрики это элементы структуры сайта. Хотел оставить открытыми все страницы но не смог настроить канонический урл(сейчас он со всех страниц раздела указывает на первую). Как на это отреагирует яндекс не знаю а вот Гугл несмотря на каноникал проиндексировал все страницы разделов

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

Канонические работают в Яндексе а робо файл работает везде. Закрывать пока не буду. Я не специалист в сео, поэтому если есть какие-то сомнения то обращаюсь к спецам. Иногда бывает достаточно посмотреть на их сайты. Не желание закрывать - это отчасти результат наблюдений.

Роботс конечно же работает везде, кто же спорит :) Я раньше тоже думала, что если сайт раскрученный, то и Роботс у него в порядке. На деле оказалось, что это не так. Интересно Ваше мнение: нужно ли закрывать архивы? Я закрыла.

Добавлено пользователемДарьяon вт, 07/04/2017 - 14:04

Здравствуйте, не первый день ломаю голову над следующей проблемой: на сайте есть копии материалов типа "Публикация" и "Статья". Данные копии закрыты от индексирования в роботс тхт. Проблема в том, что именно на них кликают посетители сайта, и динамический вес страницы похоже уходит вникуда. Копии были созданы для отображения в блоках типа "Облако тегов" (у них в урл присутствует слово terms), и в блоке типа "Вам может быть интересно" (в блоке отображаются ссылки на другие статьи по схожей тематике) - тут урл node. При этом, у нода прописал каноникал как у оригинальной страницы, а у термс - каноникал сохраняется свой собственный. Нигде не могу найти информацию. Есть вариант настроить просто редиректы на оригинальные страницы, но решит ли это проблему?)

Насколько мне известно 301 редирект передаст вес, но тут лучше проконсультироваться у практикующих сеошников. Меня смущает момент с закрытыми в robots.txt адресами. Может имеет смысл вместе с редиректом открыть их. 

А как у вас настроено облако тегов что оно генерит новые адреса для контента и вобще оно Вам надо, тоесть по этим ссылкам из облака реально переходят люди. Я давно уже не встречал облаков на сайтах.

Спасибо за ответ)) Я опасаюсь, что если открыть их для индексирования, то поисковики будут их банить как копии (которыми они и являются). На эти ссылки кликают люди, которые уже попали на сайт - то есть в поиске индексируются оригиналы, а копии были нужны, что бы именно создать само облако (понятия не имею почему именно так - делала не я, видимо иначе не получилось)
И еще такой вопрос - урл при редиректе будет в строке автоматически заменяться на оригинальный? (тот, на который перенаправляется редирект)

URL будет заменяться в строке. Чтобы увидеть как работает 301 редирект попробуйте перейти  на https://webonlife.ru/node/37

Дело в том что страница закрытая от индексации может не передавать вес. Если открыть для индексации, то вес передоваться будет плюс к этому 301 редирект передаст вес на нужную страницу. При этом страницы, которые отдают 301 редирект, не должны попадать в индекс. Это моё мнение. Попробуйте задать вопрос на сеофоруме.

У меня дубли страниц закрыты в роботс, но у меня нет ссылок на эти страницы и я не переживаю о пропаже веса.