Вопрос определения дубликатов страниц и уникальности текстов внутри сайта является одним из важнейших в списке работ по техническому аудиту. От наличия дублей страниц зависит как общее самочувствие сайта, так и распределение краулингового бюджета поисковых систем, возможно расходуемого впустую, да и в целом ранжирование сайта может испытывать трудности из-за большого числа дублированного контента.
![image](https://habrastorage.org/getpro/habr/post_images/6aa/858/6d5/6aa8586d5da85ebc7778cf62bfed829e.png)
И если для проверки уникальности отдельных текстов в интернете можно легко найти большое количество сервисов и программ, то для проверки уникальности группы определенных URL между собой подобных сервисов существует немного, хотя сама по себе проблема является важной и актуальной.
Обычно это страница с параметрами и та же самая страница, но в виде ЧПУ (человеко-понятный УРЛ).
Пример:
Это достаточно распространенная проблема, когда после настройки ЧПУ, программист забывает настроить 301 редирект со страниц с параметрами на страницы с ЧПУ.
Данная проблема легко решается любым веб-краулером, которой сравнив все страницы сайта, обнаружит, что у двух из них одинаковые хеш-коды (MD5), и сообщит об этом оптимизатору, которому останется поставить задачу, все тому же программисту, на установку 301 редиректов на страницы с ЧПУ.
![image](https://habrastorage.org/getpro/habr/post_images/1c8/df7/d45/1c8df7d45de5c35bb121fcc48c427692.png)
Однако не все бывает так однозначно.
Подобный контент образуется, когда мы имеем разные страницы, но, по сути, с одинаковым или схожим содержанием.
![image](https://habrastorage.org/getpro/habr/post_images/61c/ffc/f6a/61cffcf6add02e275226baa2c4863ccb.png)
При этом, для сервисов технического аудита данные две новости будут разными, так как ЧПУ на сайте уже настроены, и контрольные суммы у страниц не совпадут, как ни крути.
В итоге, какая из страниц будет ранжироваться лучше – большой вопрос…
Но новости они такие – имеют свойство быстро устаревать, поэтому возьмем пример поинтереснее.
![image](https://habrastorage.org/getpro/habr/post_images/b3f/c2e/804/b3fc2e8049f0263a355411c2f7c85423.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/f24/2fe/387/f242fe387fdd347e8e93c1f53ef72e36.png)
Само собой, каждый копирайтер после написания статьи должен проверять ее на уникальность в одном из известных сервисов, а каждый СЕОшник обязан проверять новый контент при размещении на сайте в тех же сервисах.
Но, что делать, если к вам только-только пришел сайт на продвижение и вам нужно оперативно проверить все его страницы на дубли? Либо, на заре открытия своего блога вы написали кучу однотипных статей, а теперь, скорее всего из-за них сайт начал проседать. Не проверять же руками 100500 страниц в онлайн сервисах, добавляя на проверку каждую статью руками и затрачивая на это уйму времени.
Именно для этого мы и создали программу BatchUniqueChecker, предназначенную для пакетной проверки группы URL на уникальность между собой.
![image](https://habrastorage.org/getpro/habr/post_images/829/448/557/82944855799a62208f82f802a5c58cb4.png)
Принцип работы BatchUniqueChecker прост: по заранее подготовленному списку URL программа скачивает их содержимое, получает PlainText (текстовое содержимое страницы без блока HEAD и без HTML-тегов), а затем при помощи алгоритма шинглов сравнивает их друг с другом.
Таким образом, при помощи шинглов мы определяем уникальность страниц и можем вычислить как полные дубли страниц с 0% уникальностью, так и частичные дубли с различными степенями уникальности текстового содержимого.
![image](https://habrastorage.org/getpro/habr/post_images/2d7/ba2/e76/2d7ba2e76b5db651900f5b95c479e938.png)
В настройках программы есть возможность ручной установки размера шингла (шингл – это количество слов в тексте, контрольная сумма которых попеременно сравнивается с последующими группами внахлест). Мы рекомендуем установить значение = 4. Для больших объемов текста от 5 и выше. Для относительно небольших объемов – 3-4.
![image](https://habrastorage.org/getpro/habr/post_images/f1c/689/f35/f1c689f35df5ea32b2dece73b75e3897.png)
Помимо полнотекстового сравнения контента, в программу заложен алгоритм «умного» вычленения так называемых «значимых» текстов.
То есть, из HTML-кода страницы мы получаем только лишь контент, содержащийся в тегах H1-H6, P, PRE и LI. За счет этого мы как бы отбрасываем все «не значимое», например, контент из меню навигации сайтов, текст из футера либо бокового меню.
В результате подобных манипуляций мы получаем только «значимый» контент страниц, который при сравнении покажет более точные результаты уникальности с другими страницами.
![image](https://habrastorage.org/getpro/habr/post_images/ef3/aa4/e1b/ef3aa4e1b112de4c2a9f0803e776f3cf.png)
Список страниц для их последующего анализа можно добавить несколькими способами: вставить из буфера обмена, загрузить из текстового файла, либо импортировать из Sitemap.xml с диска вашего компьютера.
Программа BatchUniqueChecker бесплатна, занимает всего 4 Мб в архиве и не требует установки.
Таким образом, благодаря многопоточной работе, проверка сотни и более URL может занять всего несколько минут, на что в ручном режиме, через онлайн-сервисы, мог бы уйти день или более.
Все это поможет существенно сэкономить время сео-специалиста на поиск дубликатов и облегчить анализ качества текстов внутри вашего сайта.
![image](https://habrastorage.org/getpro/habr/post_images/6aa/858/6d5/6aa8586d5da85ebc7778cf62bfed829e.png)
И если для проверки уникальности отдельных текстов в интернете можно легко найти большое количество сервисов и программ, то для проверки уникальности группы определенных URL между собой подобных сервисов существует немного, хотя сама по себе проблема является важной и актуальной.
Какие варианты проблем с не уникальным контентом могут быть на сайте?
1. Одинаковый контент по разным URL
Обычно это страница с параметрами и та же самая страница, но в виде ЧПУ (человеко-понятный УРЛ).
Пример:
- site.ru/index.php?page=contacts
- site.ru/contacts/
Это достаточно распространенная проблема, когда после настройки ЧПУ, программист забывает настроить 301 редирект со страниц с параметрами на страницы с ЧПУ.
Данная проблема легко решается любым веб-краулером, которой сравнив все страницы сайта, обнаружит, что у двух из них одинаковые хеш-коды (MD5), и сообщит об этом оптимизатору, которому останется поставить задачу, все тому же программисту, на установку 301 редиректов на страницы с ЧПУ.
![image](https://habrastorage.org/getpro/habr/post_images/1c8/df7/d45/1c8df7d45de5c35bb121fcc48c427692.png)
Однако не все бывает так однозначно.
2. Частично совпадающий контент
Подобный контент образуется, когда мы имеем разные страницы, но, по сути, с одинаковым или схожим содержанием.
Пример 1
На сайте по продаже пластиковых окон, в новостном разделе, копирайтер год назад написал поздравление с 8 марта на 500 знаков и дал скидку на установку пластиковых окон в 15%.
А в этом году контент-менеджер решил «схалтурить», и не мудрствуя лукаво, нашел ранее размещенную новость со скидками, скопировал ее, и заменил размер скидки с 15 на 12% + дописал от себя 50 знаков с дополнительными поздравлениями.
Таким образом, в итоге мы имеем два практически идентичных текста, схожих на 90%, которые сами по себе являются нечеткими дубликатами, одному из которых по хорошему требуется срочный рерайт.
![image](https://habrastorage.org/getpro/habr/post_images/61c/ffc/f6a/61cffcf6add02e275226baa2c4863ccb.png)
При этом, для сервисов технического аудита данные две новости будут разными, так как ЧПУ на сайте уже настроены, и контрольные суммы у страниц не совпадут, как ни крути.
В итоге, какая из страниц будет ранжироваться лучше – большой вопрос…
Но новости они такие – имеют свойство быстро устаревать, поэтому возьмем пример поинтереснее.
Пример 2
![image](https://habrastorage.org/getpro/habr/post_images/b3f/c2e/804/b3fc2e8049f0263a355411c2f7c85423.jpg)
У вас на сайте есть статейный раздел, либо вы ведете личную страничку по своему хобби / увлечению, например это «кулинарный блог».
И, к примеру, в вашем блоге набралось уже порядком статей за все время, более 100, а то и вовсе несколько сотен. И вот вы подобрали тему и написали новую статью, разместили, а впоследствии каким-то образом обнаружилось, что аналогичная статья уже была написана 3 года назад. Хотя, казалось бы, перед написанием контента вы пробежались по всем названиям, открыли Excel со списком размещенных тем, но не учли, что прошлое содержимое статьи «Как приготовить горячий шоколад в домашних условиях» сильно совпадает с только что написанным материалом. А при проверке этих двух статей в одном из онлайн-сервисов получается, что они уникальны между собой на 78%, что, конечно же, не хорошо, так как из-за частичного дублирования возникает канибализация поисковых запросов между этими страницами, а у поисковой системы возникают вопросы и сложности при ранжировании подобных дублей.
![image](https://habrastorage.org/getpro/habr/post_images/f24/2fe/387/f242fe387fdd347e8e93c1f53ef72e36.png)
Само собой, каждый копирайтер после написания статьи должен проверять ее на уникальность в одном из известных сервисов, а каждый СЕОшник обязан проверять новый контент при размещении на сайте в тех же сервисах.
Но, что делать, если к вам только-только пришел сайт на продвижение и вам нужно оперативно проверить все его страницы на дубли? Либо, на заре открытия своего блога вы написали кучу однотипных статей, а теперь, скорее всего из-за них сайт начал проседать. Не проверять же руками 100500 страниц в онлайн сервисах, добавляя на проверку каждую статью руками и затрачивая на это уйму времени.
BatchUniqueChecker
Именно для этого мы и создали программу BatchUniqueChecker, предназначенную для пакетной проверки группы URL на уникальность между собой.
![image](https://habrastorage.org/getpro/habr/post_images/829/448/557/82944855799a62208f82f802a5c58cb4.png)
Принцип работы BatchUniqueChecker прост: по заранее подготовленному списку URL программа скачивает их содержимое, получает PlainText (текстовое содержимое страницы без блока HEAD и без HTML-тегов), а затем при помощи алгоритма шинглов сравнивает их друг с другом.
Таким образом, при помощи шинглов мы определяем уникальность страниц и можем вычислить как полные дубли страниц с 0% уникальностью, так и частичные дубли с различными степенями уникальности текстового содержимого.
![image](https://habrastorage.org/getpro/habr/post_images/2d7/ba2/e76/2d7ba2e76b5db651900f5b95c479e938.png)
В настройках программы есть возможность ручной установки размера шингла (шингл – это количество слов в тексте, контрольная сумма которых попеременно сравнивается с последующими группами внахлест). Мы рекомендуем установить значение = 4. Для больших объемов текста от 5 и выше. Для относительно небольших объемов – 3-4.
![image](https://habrastorage.org/getpro/habr/post_images/f1c/689/f35/f1c689f35df5ea32b2dece73b75e3897.png)
Значимые тексты
Помимо полнотекстового сравнения контента, в программу заложен алгоритм «умного» вычленения так называемых «значимых» текстов.
То есть, из HTML-кода страницы мы получаем только лишь контент, содержащийся в тегах H1-H6, P, PRE и LI. За счет этого мы как бы отбрасываем все «не значимое», например, контент из меню навигации сайтов, текст из футера либо бокового меню.
В результате подобных манипуляций мы получаем только «значимый» контент страниц, который при сравнении покажет более точные результаты уникальности с другими страницами.
![image](https://habrastorage.org/getpro/habr/post_images/ef3/aa4/e1b/ef3aa4e1b112de4c2a9f0803e776f3cf.png)
Список страниц для их последующего анализа можно добавить несколькими способами: вставить из буфера обмена, загрузить из текстового файла, либо импортировать из Sitemap.xml с диска вашего компьютера.
Программа BatchUniqueChecker бесплатна, занимает всего 4 Мб в архиве и не требует установки.
Таким образом, благодаря многопоточной работе, проверка сотни и более URL может занять всего несколько минут, на что в ручном режиме, через онлайн-сервисы, мог бы уйти день или более.
Все это поможет существенно сэкономить время сео-специалиста на поиск дубликатов и облегчить анализ качества текстов внутри вашего сайта.