Почему дубли возвращаются
Даже если вы прочистили сайт, дубли вернутся: разработчик добавит параметр, маркетолог создаст копию страницы, модуль начнёт генерировать новые адреса. Заметить такое можно только регулярной проверкой, которая сравнивает состояние сайта с прошлым разом.
Что отслеживать
| Показатель | Как считать | Тревожный признак |
|---|---|---|
| Группы страниц с одинаковым title | Сгруппировать обход по заголовку | Рост числа групп и их размера |
| Страницы с одинаковым содержимым | Сравнить хеши основного текста | Новые совпадения |
| Адреса с параметрами | Посчитать долю адресов со знаком вопроса | Резкий рост доли |
| Несовпадение канонических адресов | Сравнить адрес страницы и canonical | Новые страницы без самоканонического адреса |
| Дубли в отчётах вебмастера | Выгрузить количество исключённых как дубли | Рост от выгрузки к выгрузке |
Скрипт группировки
import csv
from collections import defaultdict
groups = defaultdict(list)
with open("crawl.csv", newline="", encoding="utf-8") as f:
for row in csv.DictReader(f):
key = row["title"].strip().lower()
if key:
groups[key].append(row["url"])
for title, urls in sorted(groups.items(), key=lambda x: -len(x[1])):
if len(urls) > 1:
print(len(urls), title, urls[:3])
Скрипт читает выгрузку краулера и печатает группы страниц с одинаковым заголовком, начиная с крупных. Аналогично можно группировать по хешу содержимого или по каноническому адресу.
Порядок мониторинга
- Запускайте обход раз в неделю и сохраняйте результаты.
- Считайте показатели и записывайте в таблицу с датой.
- Задайте порог: например, оповещение, если число групп выросло более чем на десять процентов.
- При оповещении откройте самые крупные группы и найдите общий шаблон: как отличить дубль от похожей страницы.
Причины и лечение. Типичные источники дублей и способы их устранения — в статьях про аудит дублей и массовое исправление дублей заголовков. Как измерить результат — в статье эффект от исправления дублей.
Пример недельного отчёта
| Показатель | Прошлая неделя | Эта неделя | Комментарий |
|---|---|---|---|
| Групп страниц с одинаковым title | База | Рост | Проверить новые шаблоны |
| Доля адресов с параметрами | База | Без изменений | Норма |
| Страницы без самоканонического адреса | База | Небольшой рост | Найти источник |
| Исключённые как дубли в панели | База | Рост | Сопоставить с релизом |
Отчёт занимает несколько минут и хорошо работает вместе с дашбордом состояния сайта: изменения показателей связывают с датами релизов, и причина находится быстрее.
Частые вопросы
Как автоматически находить дубли?
Регулярно обходить сайт краулером и группировать страницы по заголовку, каноническому адресу и хешу содержимого, сравнивая результат с прошлым обходом.
Как часто запускать мониторинг?
Раз в неделю для активно меняющегося сайта и раз в месяц для стабильного; после релизов — внепланово.
Какой порог оповещения выбрать?
Подбирайте по истории сайта: например, оповещать при росте числа групп дублей на несколько процентов за неделю.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.