Где проходит граница
Шаблонные тексты нужны на больших сайтах: для тысяч карточек, страниц категорий, подборок. Но если страницы отличаются только подставленным словом, поисковая система видит почти одинаковые документы. Общая проблема описана в статьях про шаблонные тексты по городам и дубли при одинаковой структуре разделов. Здесь — практика: как строить шаблон и проверять результат.
Как строить шаблон
- Небольшая общая часть. Вступление и пояснения, одинаковые для всех страниц, не должны быть основным содержимым.
- Данные из базы. Характеристики, цены, списки, адреса, расстояния, наличие: то, что реально различается.
- Условные блоки. Фрагменты, которые появляются только при наличии данных: не пустые заголовки.
- Уникальные блоки. Собственные описания, отзывы, примеры, вопросы и ответы, отличающиеся для каждой страницы или группы.
Откуда брать уникальность
| Источник | Пример | Замечание |
|---|---|---|
| Данные о товаре или услуге | Характеристики, цены, наличие | Меняются автоматически |
| Пользовательские материалы | Отзывы, вопросы, оценки | Требуют модерации |
| Локальные сведения | Адреса, маршруты, особенности региона | Нужны реальные данные |
| Редакционные вставки | Советы, сравнения, примеры | Пишутся вручную для важных страниц |
| Связанные материалы | Ссылки на статьи и подборки | Не заменяют текст |
Проверка похожести
from difflib import SequenceMatcher
def similarity(text_a, text_b):
return SequenceMatcher(None, text_a, text_b).ratio()
ratio = similarity(page_a_text, page_b_text)
if ratio > 0.85:
print("too similar:", round(ratio, 2))
Функция сравнивает два текста и возвращает число от нуля до единицы: чем выше, тем больше совпадение. Порог в 0,85 условный: подберите его на своих страницах. Для тысяч страниц сравнивайте выборки внутри групп, а не каждую пару.
Что делать при высокой похожести
- Увеличьте долю данных и уникальных блоков в шаблоне.
- Объедините страницы, которые нечем различать: склейка дублей.
- Закройте от индексации страницы без собственного содержания, пока оно не появится.
- Проверьте заголовки и описания: автоматический контроль.
Связанные материалы. Как писать тексты для страниц фильтров — в статье что писать на страницах фильтров, а как контролировать автоматическое создание — в статье автоматическое создание посадочных страниц.
Частые вопросы
Можно ли использовать шаблоны текстов на больших сайтах?
Можно, если основная часть содержимого страницы — данные и уникальные блоки, а общая часть шаблона невелика.
Как измерить похожесть страниц?
Сравнить основные тексты страниц скриптом, вычисляющим долю совпадения, и задать порог, подобранный на реальных страницах сайта.
Что делать со страницами, которые слишком похожи?
Добавить данные и уникальные блоки, объединить страницы или закрыть их от индексации, пока не появится собственное содержание.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.