Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Практика

Мониторинг появления дублей

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

Почему дубли возвращаются

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

МониторингдублейЗаголовкиодинаковые title и H1Содержимоепохожие текстыАдресапараметры и варианты
МониторингдублейЗаголовкиодинаковые title и H1Содержимоепохожие текстыАдресапараметры и варианты
Три группы сигналов

Что отслеживать

Показатели мониторинга дублей
ПоказательКак считатьТревожный признак
Группы страниц с одинаковым 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])

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

Порядок мониторинга

РегулярныйобходГруппировкаи подсчётСравнениес прошлымОповещениепри росте
РегулярныйобходГруппировкаи подсчётСравнениес прошлымОповещениепри росте
Как организовать наблюдение
  1. Запускайте обход раз в неделю и сохраняйте результаты.
  2. Считайте показатели и записывайте в таблицу с датой.
  3. Задайте порог: например, оповещение, если число групп выросло более чем на десять процентов.
  4. При оповещении откройте самые крупные группы и найдите общий шаблон: как отличить дубль от похожей страницы.

Причины и лечение. Типичные источники дублей и способы их устранения — в статьях про аудит дублей и массовое исправление дублей заголовков. Как измерить результат — в статье эффект от исправления дублей.

Пример недельного отчёта

Как оформить отчёт (условный пример без реальных чисел)
ПоказательПрошлая неделяЭта неделяКомментарий
Групп страниц с одинаковым titleБазаРостПроверить новые шаблоны
Доля адресов с параметрамиБазаБез измененийНорма
Страницы без самоканонического адресаБазаНебольшой ростНайти источник
Исключённые как дубли в панелиБазаРостСопоставить с релизом

Отчёт занимает несколько минут и хорошо работает вместе с дашбордом состояния сайта: изменения показателей связывают с датами релизов, и причина находится быстрее.

Частые вопросы

Как автоматически находить дубли?

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

Как часто запускать мониторинг?

Раз в неделю для активно меняющегося сайта и раз в месяц для стабильного; после релизов — внепланово.

Какой порог оповещения выбрать?

Подбирайте по истории сайта: например, оповещать при росте числа групп дублей на несколько процентов за неделю.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также