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

Автоматический контроль title и description

Соберём набор правил и скрипт, которые каждую неделю проверяют заголовки сайта.

Что может пойти не так

Заголовки страниц формируются шаблонами: подставляется название товара, категории, города. При изменении шаблона или данных в них появляются пустые значения, повторы и служебные остатки вроде «{name}». Каждая такая ошибка повторяется на сотнях страниц, поэтому проверять нужно автоматически.

Правила проверки

Правила автоматического контроля
ПравилоЧто ловитДействие
Пустой заголовок или описаниеОшибка шаблона или данныхИсправить немедленно
Дубль заголовкаОдинаковые title у разных страницМассовое исправление
Слишком короткий или длинныйЗаголовок вне разумных пределовПересмотреть шаблон
Остатки шаблонаСимволы фигурных скобок, слова вроде «null»Исправить подстановку
Совпадение title и H1 дословноВозможно, поле не заполнено отдельноОценить, нужно ли различие
Несколько тегов titleОшибка вёрсткиОставить один
Одинаковое описание у многих страницОбщее описание на весь разделСделать уникальным или убрать

Скрипт проверки

import csv
from collections import Counter

rows = list(csv.DictReader(open("crawl.csv", newline="", encoding="utf-8")))
titles = Counter(r["title"].strip().lower() for r in rows if r["title"].strip())

for r in rows:
    title = r["title"].strip()
    problems = []
    if not title:
        problems.append("empty title")
    elif len(title) < 20 or len(title) > 90:
        problems.append("length %d" % len(title))
    if "{" in title or "null" in title.lower():
        problems.append("template leftovers")
    if title and titles[title.lower()] > 1:
        problems.append("duplicate")
    if problems:
        print(r["url"], problems)

Скрипт читает выгрузку краулера и печатает страницы с проблемными заголовками. Границы длины условные: подберите их по своему сайту. Те же проверки применяются к описаниям.

Как встроить в процесс

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

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

Пример отчёта по шаблонам

Как группировать найденные проблемы (условный пример)
ШаблонПроблемаСтраницИсправление
Карточка товараОстаток шаблона в заголовкеМногоИсправить подстановку
КатегорияОдинаковое описаниеДесяткиСформировать описание из данных
Статья блогаПустое описаниеЕдиницыЗаполнить вручную
Страница фильтраЗаголовок слишком длинныйМногоСократить шаблон

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

Какие ошибки чаще всего находит автоматический контроль заголовков?

Пустые значения, дубли, слишком короткие или длинные заголовки и остатки шаблонов вроде фигурных скобок.

Почему исправлять нужно шаблоны, а не отдельные страницы?

Ошибка шаблона повторяется на сотнях страниц; исправив шаблон один раз, вы устраняете её везде.

Как часто запускать проверку?

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

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

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