Коротко. title — заголовок документа: он участвует в ранжировании, показывается во вкладке браузера и обычно становится заголовком сниппета. meta description на ранжирование напрямую не влияет — это текст под ссылкой, который работает на кликабельность. Оба тега поисковик вправе переписать. Ваша задача — дать по каждой странице уникальный, релевантный запросу и не обрезанный вариант.

Что такое title и meta description и почему это разные вещи
Оба тега живут внутри <head> и невидимы на самой странице, но выполняют разную работу. Путаница между ними — источник половины ошибок в мета-разметке.
title — заголовок документа
Тег <title> обязателен по спецификации HTML: документ без него формально невалиден. У него три роли:
- Ранжирование. Это один из немногих текстовых элементов, где слова имеют повышенный вес. Не «волшебная кнопка», но прямой сигнал о теме страницы.
- Вкладка браузера и закладки. Первые 25–40 символов — всё, что человек увидит в узкой вкладке. Отсюда правило: смысл должен быть в начале.
- Заголовок сниппета. Синяя кликабельная строка в выдаче чаще всего берётся из title, но не обязана ему соответствовать.
meta description — текст для сниппета
Тег <meta name="description" content="…"> — это подпись под ссылкой в выдаче и в шеринге по некоторым каналам. Прямого влияния на ранжирование у него нет: и Google, и Яндекс много лет говорят об этом прямо. Косвенное влияние есть — через поведение: хороший description повышает долю кликов по вашему результату, а поведенческие сигналы уже учитываются.
Практический вывод: title пишут под запрос и под алгоритм, description — под человека, который выбирает между десятью синими ссылками. Это две разные задачи, и одинаковый текст в обоих тегах решает ни одну из них.
Какая длина title и description: считайте в пикселях, а не в символах
Поисковик обрезает строку не по количеству символов, а по ширине в пикселях в конкретном шрифте. Слово «Ш» шире слова «і», поэтому 60 символов капслоком обрежутся раньше, чем 70 символов строчными. Отсюда две оговорки, без которых любые цифры вредны:
- Точки обрезки меняются: поисковики регулярно правят вёрстку выдачи, и «канонические» значения устаревают.
- Ширина зависит от устройства и от запроса: на мобильном показывается больше строк, но каждая короче; при длинном запросе движок иногда показывает более длинный фрагмент.
Рабочие ориентиры — диапазоны, а не точные числа:
| Элемент | Ориентир по ширине | Примерно в символах (кириллица) | Что делать |
|---|---|---|---|
| title, десктоп | около 550–600 px | примерно 50–60 | ключевую мысль уместить в первые 40–45 символов |
| title, мобильный | обычно уже десктопного | примерно 45–55 | бренд в конце — его не жалко потерять |
| description, десктоп | около 900–1000 px | примерно 150–170 | главное — в первом предложении |
| description, мобильный | шире по числу строк, у́же по строке | примерно 120–140 видимых | не рассчитывать на второе предложение |
Проверять длину лучше не линейкой символов, а рендером: посмотрите, как выглядит ваш результат в реальной выдаче по целевому запросу. Если «хвост» с многоточием отрезает бренд — это норма. Если отрезает суть — переписывайте.
Не подгоняйте текст под верхнюю границу. Короткий и точный title из 40 символов работает лучше растянутого до 70, в котором последние 20 — вода ради «объёма».
Как составить title: формула и антипаттерны
Универсальная рабочая формула:
[главный запрос] + [уточнение или выгода] + [бренд]
Правила, которые из неё следуют:
- Главный ключ ближе к началу. Не буквально первым словом любой ценой, но в первой трети строки.
- Одна страница — один основной запрос. Второстепенные варианты уходят в h1, подзаголовки и текст.
- Уточнение решает выбор. Город, срок, цена «от», формат («онлайн», «за 5 минут», «PDF»), объём («12 шаблонов»).
- Бренд в конце и через разделитель. Тире, вертикальная черта, двоеточие — любой, лишь бы одинаковый по всему сайту. Для главной бренд можно поставить в начало.
- Человеческий язык. title читает человек в выдаче, а не парсер.
Антипаттерны
- Перечисление городов. «Окна в Москве, Казани, Уфе, Самаре, Перми» — размывает релевантность каждого гео-запроса и выглядит как спам. Города разводятся по отдельным страницам.
- Спам ключами. «Купить окна недорого окна пвх окна цена окна купить» — переспам, к тому же поисковик почти гарантированно перепишет такой заголовок.
- Одинаковый title на всех страницах. Самая дорогая ошибка: страницы конкурируют между собой, а движку нечем их различать.
- «Главная», «Каталог», «Страница 2». Значение нулевое, кликабельность нулевая.
- Название CMS по умолчанию. «Мой сайт», «Home», «Untitled Document» в индексе — сигнал заброшенности.
- Капслок и эмодзи. Капслок съедает ширину, эмодзи обычно вырезаются при показе.
Как написать description, ради которого кликнут
description не ранжирует, поэтому его единственная метрика — доля кликов. Что реально влияет:
- Конкретика вместо обещаний. «Расчёт за 3 минуты по вашим размерам» лучше, чем «лучшие цены и высокое качество».
- Цифры. Срок, количество, диапазон, год обновления. Цифры цепляют взгляд в сплошном тексте.
- Отличие от соседей по выдаче. Откройте выдачу и напишите то, чего нет у первых пяти результатов.
- Слова из запроса. Совпадения подсвечиваются жирным — это бесплатный визуальный акцент. Но естественно, без набивки.
- Действие в конце. «Проверьте домен», «Скачайте шаблон», «Сравните тарифы» — без восклицательных знаков.
- Никаких обещаний, которых нет на странице. Расхождение = отказ и потерянный клик.
Листинги и карточки: генерируйте по шаблону
Для десятков тысяч страниц каталога ручные description невозможны и не нужны. Рабочий подход — шаблон с подстановкой полей и защитой от пустот:
- Шаблон собирается из уже проверенных данных: название, категория, ключевой параметр, наличие, диапазон цен.
- Если поле пустое — ветка шаблона выключается целиком, а не оставляет «цена от руб.» с дырой.
- Итог обрезается по границе слова, а не по символу.
- Для важных страниц (главная, топ-категории, посадочные) description пишут руками.
Пустой description лучше плохого, но хуже шаблонного. Если тега нет, движок соберёт фрагмент из текста страницы — иногда удачно, иногда это будет хлебная крошка и кусок меню.

Почему поисковик переписывает title и description
И Google, и Яндекс регулярно показывают в выдаче не то, что написано в тегах. Это не ошибка и не санкция. Типовые причины:
- Заголовок слишком длинный, слишком короткий или не отвечает на конкретный запрос.
- В title переспам, повторы, перечисление городов или явный шаблон CMS.
- title одинаков у группы страниц — движок берёт различающий текст со страницы (h1, хлебные крошки, название товара).
- Запрос узкий, а на странице есть более точный фрагмент — движок соберёт сниппет из него.
- Для description: тег пустой, дублируется по сайту или не содержит слов запроса.
Бороться с переписыванием бесполезно — управляемого «запрета» не существует. Работает другое:
- Сделать title уникальным и осмысленным — тогда переписывать нечего.
- Убрать шум: повторяющийся префикс, служебные метки, лишний бренд в каждой строке.
- Дать на странице явный h1 и вводный абзац, который движку не стыдно показать вместо вашего description.
- Посмотреть, какой вариант движок подставляет сам: часто это подсказка, какой запрос он считает главным для страницы.
Кратко об отличиях Яндекса и Google
Google охотнее меняет заголовок под конкретный запрос и часто берёт h1 или текст ссылки на страницу; официально это описано в документации по формированию заголовка и по сниппетам. Яндекс чаще собирает описание из текста страницы, если description не отвечает запросу, и заметно чувствителен к переспаму в заголовке. Практический вывод один и тот же: релевантный уникальный title и человеческий description устраивают оба движка, а тонкая подстройка «под Яндекс» или «под Google» по отдельности себя не окупает.
Связка title, h1 и description: чем они должны отличаться
Три текста делают три разные работы, и копирование одного в другой обесценивает все три.
| Элемент | Кто видит | Задача | Длина |
|---|---|---|---|
| title | выдача, вкладка, шеринг по умолчанию | дать запрос и повод кликнуть | короче, с брендом |
| h1 | посетитель, уже открывший страницу | подтвердить, что он попал куда хотел | чуть длиннее и естественнее, без бренда |
| description | только выдача | снять последнее возражение перед кликом | 1–2 предложения |
Хорошая практика: h1 = развёрнутая формулировка того же смысла, что и title, но без бренда и без «купить недорого». Полное совпадение title и h1 не ошибка, но упущенная возможность зацепить второй вариант формулировки запроса.
Шаблоны title и description по типам страниц
| Тип страницы | Шаблон title | Шаблон description | Чего избегать |
|---|---|---|---|
| Главная | Бренд — что делаете, для кого, город | Одно предложение о сути + чем отличаетесь + действие | «Главная», «Добро пожаловать», один бренд без пояснения |
| Категория / листинг | Категория + уточнение + количество или «цены» + бренд | Что в подборке, диапазон параметров, условия доставки или сроки | Дубли с фильтрами, «Каталог товаров», перечисление всех подкатегорий |
| Карточка товара | Название + ключевая характеристика + артикул при необходимости + бренд | Шаблон из свойств: назначение, параметр, наличие, гарантия | Одинаковый текст на всех карточках, «Купить» пять раз |
| Статья / блог | Основной вопрос читателя + формат («инструкция», «чеклист») | Что читатель узнает и что сможет сделать после чтения | Кликбейт без ответа, название рубрики вместо темы |
| Контакты | Контакты + бренд + город | Адрес, часы работы, способы связи одной строкой | «Контакты» без бренда, дубль с «О компании» |
| Страница города / филиала | Услуга в городе + уточнение + бренд | Локальная конкретика: адрес, зона выезда, сроки по городу | Один текст с заменой топонима на сотнях страниц |
| Пагинация и фильтры | Базовый title + признак страницы или значение фильтра | Обычно не нужен: движок соберёт сам | Полный дубль первой страницы, индексация всех комбинаций фильтров |
Про пагинацию и фильтры важно помнить: мета-теги не спасают от дублей, если такие URL вообще не должны попадать в индекс. Разбираться нужно на уровне robots.txt и canonical, а не подбором формулировок.
Пример корректного блока head
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Проверка SSL-сертификата онлайн — цепочка и срок | Enterno</title>
<meta name="description" content="Проверяем сертификат домена: срок действия, полноту цепочки, поддерживаемые протоколы и типовые ошибки. Результат за несколько секунд, без регистрации.">
<link rel="canonical" href="https://example.com/ssl/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/ssl/">
<meta property="og:title" content="Проверка SSL-сертификата онлайн">
<meta property="og:description" content="Срок действия, цепочка, протоколы и типовые ошибки — за несколько секунд.">
<meta property="og:image" content="https://example.com/assets/og/ssl.png">
</head>
Что здесь важно:
- Все теги — внутри
<head>и до первого блока контента. - Кодировка объявлена первой, иначе кириллица в title может доехать «кракозябрами».
- canonical абсолютный и с тем же протоколом, что и рабочий адрес. Смешение http и https здесь — частый источник дублей, подробнее в разборе влияния HTTPS на SEO.
- og-теги дублируют смысл, но не обязаны совпадать дословно: у соцсетей другой контекст показа.
Как посмотреть title и description у себя и у чужого сайта
Точечно, в браузере
- Исходный код:
Ctrl+U(в macOSCmd+Alt+U) — откроетсяview-source:, ищите по словуdescription. - DevTools: вкладка Elements, узел
head. Важное отличие: DevTools показывает DOM после работы скриптов, аview-source— сырой HTML от сервера. Если теги проставляет JavaScript, вы увидите разницу именно здесь. - Быстрая прикидка: текст во вкладке браузера — это и есть title, обрезанный до ширины вкладки.
Из командной строки
# title и description одной страницы
curl -sL -A "Mozilla/5.0" https://example.com/ \
| grep -iEo '<title>[^<]*</title>|<meta[^>]+name="description"[^>]*>'
# только текст title, портируемый вариант через sed
curl -sL https://example.com/ \
| tr -d '\n' \
| sed -n 's/.*<[Tt][Ii][Tt][Ll][Ee]>\(.*\)<\/[Tt][Ii][Tt][Ll][Ee]>.*/\1/p'
# длина title в символах (не в пикселях, но для отсева гигантов хватает)
curl -sL https://example.com/ \
| tr -d '\n' \
| sed -n 's/.*<title>\(.*\)<\/title>.*/\1/p' \
| wc -m
# пройтись по списку адресов
while read -r u; do
t=$(curl -sL --max-time 15 "$u" | tr -d '\n' \
| sed -n 's/.*<title>\(.*\)<\/title>.*/\1/p')
printf '%s\t%s\n' "$u" "$t"
done < urls.txt
Флаг -L обязателен: без него вы увидите пустое тело редиректа, а не конечную страницу. Если сайт отвечает разным контентом на разные User-Agent, подставляйте реальный заголовок через -A. Сами коды ответа и заголовки удобно смотреть отдельно — curl -sI или инструмент проверки HTTP-заголовков.
Массово — краулером
Для сайта больше пары десятков страниц ручная проверка бессмысленна. Нужен обход всех URL с выгрузкой в таблицу «адрес — title — description — длина — h1». Дальше — поиск дублей и пустот:
# дубли title в выгрузке краулера (CSV с разделителем ; — url;title;description)
awk -F';' 'NF>1 {c[$2]++; u[$2]=u[$2]" "$1}
END {for (t in c) if (c[t] > 1) printf "%d\t%s\n", c[t], t}' meta.csv \
| sort -rn | head -20
# страницы с пустым description
awk -F';' '$3 == "" {print $1}' meta.csv | head -40
# подозрительно длинные title (грубый порог по символам)
awk -F';' 'length($2) > 75 {printf "%d\t%s\n", length($2), $1}' meta.csv | sort -rn
У конкурента
Никакой магии: у чужого сайта теги смотрятся ровно теми же способами — исходный код, curl, краулер. Полезнее не копировать формулировки, а собрать заголовки первых десяти результатов по вашему запросу в один список и посмотреть, что повторяется у всех (это «обязательная» часть смысла) и чего нет ни у кого (это ваш шанс отличиться). Заодно сравните, у скольких из них выдача показывает их собственный title, а у скольких — переписанный.

Частые технические ошибки
- Дубли title. Один заголовок на сотнях страниц. Ищется поиском повторов в выгрузке краулера — см. команду выше.
- Пустой или отсутствующий description. Не катастрофа, но упущенный контроль над сниппетом.
- Тег вне head. Если
<meta name="description">оказался в<body>(частый случай при вставке через визуальный редактор или виджет), он игнорируется. - Типографские кавычки в атрибутах. Текст, скопированный из редактора, приезжает с «ёлочками»:
<meta name=«description» content=«…»>. Парсер не считает «ёлочку» ограничителем значения — тег ломается целиком, а иногда «съедает» и следующие. В атрибутах допустимы только прямые кавычки; «ёлочки» внутри самого текста описания — нормально. - Незакрытая кавычка или лишний
>внутри content. Тот же эффект: часть head уезжает в мусор. - Заголовок по умолчанию из CMS. «Главная страница», «Untitled», «Новая запись» в индексе.
- Разные title на
/и/index.php. Классика для сайтов, где главная доступна по двум адресам: две страницы с разным заголовком и одинаковым содержимым. Лечится редиректом и canonical, а не переписыванием тегов. - Два тега title или два description на странице. Обычно результат конфликта шаблона и SEO-модуля. Движок возьмёт первый, но предсказуемости это не добавляет.
- Теги, проставляемые только скриптом. Работает нестабильно: если рендер не успел или упал, страница уходит в индекс с исходным пустым заголовком.
- Перенос строки и лишние пробелы внутри content. Не критично, но мешает автоматическому сравнению и раздувает длину.
- Title длиннее полутора строк. Не ошибка разметки, но гарантированное многоточие в выдаче.
Если страница вообще не появляется в выдаче, проблема почти никогда не в формулировке title — сначала проверяют индексацию и доступность, об этом отдельный разбор: почему сайта нет в поиске.
Open Graph и meta keywords: что не влияет на выдачу
meta keywords мёртв
Тег <meta name="keywords"> задумывался как честное описание темы автором. Его немедленно начали набивать, и уже очень давно ни один заметный поисковик не использует его для ранжирования. Практическая рекомендация: не заполнять. Держать его вредно ещё и потому, что аккуратно выписанный список ключей — это готовая карта вашей семантики для любого конкурента, открывшего исходный код.
Open Graph — это другая история
Теги og:title, og:description, og:image описаны протоколом Open Graph и нужны для превью при отправке ссылки в мессенджер или соцсеть. Ключевые факты:
- Поисковая выдача не берёт текст из
og:description. Это разные каналы: og — для шеринга, meta description — для сниппета. - Если
og:titleиog:descriptionне заданы, площадка обычно откатывается к<title>и<meta name="description">. Поэтому «и так работает» — но без контроля над картинкой и над длиной. - Ограничения по длине у соцсетей свои и жёстче поисковых: длинный og-заголовок обрежется в карточке.
- Настройка разобрана отдельно: Open Graph — как настроить превью ссылок.
Третий слой — структурированные данные. Они не заменяют title и description, но добавляют к сниппету рейтинги, цены, хлебные крошки и прочие расширения. Как это устроено — в материалах про структурированные данные и проверку разметки Schema.org.
Как проверить
Порядок действий от «всего сайта» к «одной странице»:
- Массовый аудит мета-тегов и структуры. Обход сайта с выгрузкой title, description, h1, длин и повторов — SEO-аудит сайта. Отсюда берутся списки дублей, пустот и слишком длинных заголовков.
- Запросы под title. Прежде чем формулировать заголовок, надо знать, как люди спрашивают: сбор и оценка запросов — подбор ключевых слов.
- Сырые заголовки ответа. Убедиться, что вы смотрите ту самую страницу, а не редирект или ошибку: проверка HTTP-заголовков. Заодно видно кодировку и код ответа.
- Превью в соцсетях. Как ссылка выглядит при шеринге и почему og-теги отдельны от meta description — в разборе настройки Open Graph.
- Общий порядок работ. Если мета-теги — часть большой уборки, двигайтесь по чеклисту SEO-аудита: индексация и доступность идут раньше формулировок.

Частые вопросы
Влияет ли description на ранжирование?
Напрямую — нет, и это подтверждено обеими крупными поисковыми системами. Косвенно влияет через кликабельность: результат, по которому чаще кликают, получает более выгодные поведенческие сигналы. Поэтому description оптимизируют под человека, а не под алгоритм.
Что делать, если поисковик всё равно показывает свой заголовок?
Сначала выяснить, что именно он показывает: если подставляется h1 или название товара, значит ваш title сочли менее релевантным запросу. Уберите из него переспам, повторы и длинный бренд, добавьте формулировку из запроса. Гарантированного способа запретить замену не существует, и это нормально: движок подбирает вариант под конкретный запрос, а запросов у страницы много.
Нужны ли разные title для страниц пагинации?
Полные дубли — плохо. Достаточно добавить к базовому заголовку признак страницы. Но чаще правильнее решить вопрос на уровне индексации: если страницы пагинации не должны попадать в выдачу, титул им не поможет.
Сколько символов должно быть в title и description?
Символы — приблизительная замена пикселей. Ориентируйтесь на 50–60 символов для title и 150–170 для description, но проверяйте по реальной выдаче: широкие буквы и капслок обрезаются раньше. Главное правило — вся суть в первой половине строки.
Можно ли использовать один и тот же текст в title, h1 и description?
Технически можно, практически — потеря. Три поля дают три возможности зацепить разные формулировки и разные возражения. Полное дублирование ещё и повышает шанс, что сниппет соберут за вас.
Заполнять ли meta keywords?
Нет. Ранжирование он не улучшает, а конкурентам показывает вашу семантику. Если тег уже стоит на всём сайте, удалять его массово не срочно, но и поддерживать бессмысленно.
Чеклист
- У каждой индексируемой страницы есть свой title, и он не повторяется по сайту.
- Главный запрос — в первой трети title, бренд — в конце и через единый разделитель.
- Длина title укладывается примерно в 50–60 символов, суть — в первых 40–45.
- Нет перечислений городов, капслока, повторов ключа и заголовков вида «Главная».
- description заполнен на всех значимых страницах, для каталога — по шаблону с защитой от пустых полей.
- В description есть конкретика, цифры и слова из запроса; нет обещаний, которых нет на странице.
- title, h1 и description различаются формулировками.
- Оба тега находятся внутри head, кавычки прямые, кодировка объявлена первой.
- На странице ровно один title и ровно один description, теги отдаются сервером, а не только скриптом.
- Главная доступна по одному адресу, canonical абсолютный и совпадает с рабочим протоколом.
- meta keywords не заполняется; og-теги настроены отдельно от description.
- Проверка сделана массово, а не выборочно на трёх страницах.