H1: почему один и какой длины
Сижу в DevTools на чужом сайте. Открываю Elements, фильтрую по h1. Получаю четыре подсветки: логотип в шапке, hero-заголовок, заголовок виджета в сайдбаре, заголовок блока «Контакты» в футере. Все — <h1>. На каждой странице сайта. На главной, в категориях, в карточках товаров — везде один и тот же набор.
Смотрю в Search Console: по своему основному запросу сайт висит на пятой странице. На пятой. С DR 35, с приличной возрастной историей домена, с десятками страниц контента. И с четырьмя H1 на каждой странице.
Это не единственная причина, по которой он там. Но это маркер. Если человек, который собирал сайт, не разобрался с H1 — он не разобрался и с десятком других вещей: пустыми alt, дублирующимися title, путаницей в canonical, потерянными внутренними ссылками. H1 — это лакмусовая бумажка качества разметки.
Google в 2017-м официально сказал: использовать можно сколько угодно H1, он разберётся. Джон Мюллер записал об этом видео, и с тех пор эту фразу цитируют все, кто оправдывает кашу в заголовках. Но «Google разберётся» и «это хорошая практика» — разные вещи. Google разберётся и с кривой структурой, и с битыми ссылками, и с дублированными мета. Это не значит, что так надо делать.
Я за последние месяцы вычищал H1 на десяти проектах. Где-то это был один из пунктов в плане правок, где-то — основная задача. Картина везде одинаковая: чем хуже сайт ранжируется, тем больше в нём бардак с заголовками. И наоборот.
Что такое H1
<h1> — это корневой заголовок страницы в HTML. Самый верхний уровень в иерархии заголовков. На странице он отвечает на вопрос «о чём этот документ».
H1 — это не title-tag. Title живёт в <head>, его видит Google в выдаче, его показывает вкладка браузера, его читает соцсеть, когда ты кидаешь ссылку. H1 живёт в <body>, его видит человек на самой странице. Это два разных текста для двух разных мест. Они часто близки по смыслу, но не обязаны совпадать дословно.
H1 должен стоять в основном содержимом страницы — в <main>, в <article>, в hero-блоке. Не в <header> со ссылками меню и логотипом. Не в <aside> с виджетами. Не в <footer> с контактами. Если H1 в шапке — он будет одинаковый на всех страницах, и для Google это сигнал, что все страницы про одно и то же. То есть — про ничего.
Один или несколько — что говорит Google
Официальная позиция: можно несколько. В HTML5 ввели outline algorithm — алгоритм, по которому браузер должен был автоматически выстраивать иерархию заголовков внутри секций (<section>, <article>, <nav>). По задумке, внутри каждой секции <h1> становился локальным заголовком уровня, соответствующего вложенности секции.
В теории звучит красиво. На практике — outline algorithm не реализован ни в одном браузере. Никогда. Спецификация есть, поддержки нет. Сейчас MDN прямо пишет: «не используйте множественные H1 в надежде на outline algorithm, потому что он не работает».
Что это значит. Если ты ставишь несколько <h1> в расчёте на то, что браузер или поисковик аккуратно построит иерархию — этого не произойдёт. Google прочитает их как несколько корневых заголовков и попытается понять, который из них главный. Иногда поймёт правильно. Иногда нет.
Дальше — accessibility. Скринридеры (NVDA, JAWS, VoiceOver) умеют навигировать по заголовкам — пользователь жмёт H и прыгает между ними. Когда H1 один — структура понятна: вот главный заголовок, вот разделы под ним. Когда H1 четыре — пользователь слышит «заголовок первого уровня» четыре раза подряд и теряет ориентацию.
И отдельно — SEO-инструменты. Ahrefs, Semrush, Screaming Frog, Sitebulb — все они флагают множественные H1 как warning. Не как critical error, но как пункт, который попадёт в отчёт. Если ты сдаёшь сайт клиенту или показываешь аудит — это лишний жёлтый маркер, который придётся объяснять.
Длина H1
Sweet spot — 30–65 символов. Это эмпирическое число, выведенное из практики. Короче 30 — обычно слишком общо («Услуги», «О нас»). Длиннее 65 — начинает резаться в сниппетах, теряется фокус.
Главное — H1 должен совпадать с user intent. То есть с тем, что человек ввёл в поиск и ожидает увидеть, когда кликнул. Если запрос — «купить горный велосипед в Москве», а H1 — «Добро пожаловать в наш магазин», ты теряешь и человека, и Google.
Главный ключ можно и нужно держать в H1. Но без насилия. «Купить горный велосипед в Москве недорого с доставкой» — это уже не H1, это спам. «Горные велосипеды в Москве» — это H1.
По соотношению с title-tag: они близки, но не дословны. Title оптимизирован под выдачу — туда часто добавляют бренд, призыв к клику, дополнительный модификатор. H1 — оптимизирован под страницу, где человек уже на ней.
Подробнее про длину title и description — отдельно в посте про мета-описания.
Структура H1 → H2 → H3
Иерархия заголовков — это скелет страницы. Если скелет кривой, страница плывёт.
H1 — один. Главная тема страницы. Отвечает на вопрос «о чём это». Стоит ближе к началу основного контента — в hero-блоке или сразу после него. Не на трёхсотой строке после простыни введения.
H2 — разделы страницы. Обычно три–семь штук. Каждый H2 открывает крупный смысловой блок. Если у тебя на странице один H2 — у тебя нет структуры, у тебя просто длинный текст с подзаголовком. Если у тебя пятнадцать H2 — у тебя нет иерархии, у тебя список. Чувствуешь, что разделов получается больше десяти — это сигнал, что страницу пора резать на две-три отдельные.
H3 — подразделы внутри H2. Не на каждой странице нужны. Появляются, когда внутри раздела есть смысловые подгруппы. Если внутри H2 один H3 — H3 не нужен, превращай H2 в более конкретный заголовок. Если внутри H2 десять H3 — раздел перегружен, дроби его.
H4, H5, H6 — существуют, но используются редко. Если ты дошёл до H4 — проверь, не пора ли разбить страницу на две. На странице блога я H4 не использую почти никогда. В технической документации, в больших гайдах — иногда.
Главное правило: не пропускать уровни. H1 → H3 без H2 — это разрыв иерархии. И для скринридеров (пользователь ожидает H2, получает H3 — теряется), и для Google (он строит outline страницы по заголовкам, разрывы ломают понимание структуры).
И ещё одно: заголовки — для семантики, не для размера. Если тебе нужен крупный текст в середине страницы, который визуально похож на заголовок, но семантически — не заголовок (например, акцентная цитата) — используй <p> с CSS-стилями. Не <h2> с decorative покраской.
SEO-бонус от грамотной структуры H2: long-tail запросы. H1 ловит главный ключ. H2 ловят дочерние запросы — те, по которым человек тоже мог искать, но они не помещались в главный заголовок. Я неоднократно видел, как страница начинает ранжироваться по запросу, который буквально совпадает с одним из H2 на ней. H1 этот запрос не покрывал, а H2 — покрыл.
Типичные ошибки
H1 — логотип в шапке. Самая частая. Вёрстка сделана через CMS, в шаблоне header'а кто-то поставил <h1>Бренд</h1> вокруг логотипа. На каждой странице сайта H1 — «Бренд». Главная страница, страница товара, страница «О нас» — везде один и тот же H1.
Пустой H1. Видел и такое: <h1></h1>, <h1> </h1>, <h1><img src="logo.png"></h1> без alt. Скринридер прочитает «заголовок первого уровня» и тишину.
Несколько H1 от разных блоков. Hero — <h1>, sidebar-виджет «Популярное» — <h1>, форма контактов в футере «Свяжитесь с нами» — <h1>. Каждый разработчик ставил свой H1, никто не сводил.
H1 с эмодзи в начале. <h1>🔥 Лучшие предложения</h1> — некоторые скринридеры пропускают эмодзи, некоторые читают как «огонь». В Google-выдаче такие H1 тоже выглядят странно, если Google решит подставить их в сниппет вместо title.
H1 не отражает контент страницы. Классика: страница про холодильники, H1 — «Бытовая техника в нашем магазине». Слишком общий. Google не поймёт, про что страница конкретно. Пользователь не поймёт, попал ли он туда, куда хотел.
Слишком длинный H1. Больше 80 символов — Google режет в сниппетах, скринридер читает дольше, на мобильных переносится на три строки. Если ты не можешь уложить главную идею в 65 символов — у страницы слишком много идей, разбивай её на две.
H1 копирует title-tag дословно. Не ошибка, но упущенная возможность. У H1 и title разные роли — используй обе. В title пихаешь бренд и call-to-action для клика из выдачи, в H1 — чистую формулировку под user intent.
H1 в виде вопроса, на который страница не отвечает. «Как выбрать ноутбук?» — а на странице каталог из 200 моделей без объяснений. H1 задал ожидание, контент его не оправдал. Человек уходит, поведенческие падают, ранжирование проседает.
H1 спрятан под display: none. Видел и такое. Кто-то прочитал, что Google любит H1, поставил его на страницу, но визуально он не вписывался — спрятали через CSS. Google это видит и трактует как cloaking-попытку. Лучше не делать вообще, чем делать так.
Как проверить вручную
Открываешь сайт в Chrome, жмёшь F12, идёшь в Console и вставляешь:
document.querySelectorAll('h1').forEach(h => console.log(h.textContent))
Получаешь список всех H1 на странице. Если их больше одного — есть проблема. Если он один, но пустой — тоже есть проблема. Если он один и осмысленный — хорошо.
Расширенный вариант — посмотреть всю иерархию:
document.querySelectorAll('h1,h2,h3,h4,h5,h6').forEach(h => console.log(h.tagName, h.textContent.trim()))
Выведет всю структуру заголовков по порядку. Сразу видно: есть разрывы уровней, есть ли вообще H2, есть ли пустые заголовки.
Для прогона по всему сайту — Screaming Frog или Sitebulb. Они краулят весь сайт и выдают отчёт: где сколько H1, где пусто, где дубли. Бесплатной версии Screaming Frog хватает для сайта до 500 страниц.
Итог
Один H1 на странице. Длина 30–65 символов. В основном содержимом, не в шапке и не в футере. Совпадает с user intent. Иерархия H2 → H3 без разрывов. Семантика — для смысла, размер — через CSS.
Это не про «Google требует». Google многое прощает. Это про общую гигиену разметки. Сайты, на которых порядок с H1, обычно ранжируются лучше — не потому что H1 решает, а потому что там, где разобрались с H1, обычно разобрались и со всем остальным.
H1 — пять минут проверки в DevTools. Из них две минуты на консольную команду, три — на чтение результата. Если ты ни разу не смотрел свои H1 — посмотри сегодня.
Полный список факторов, по которым я хожу при аудите — в посте про 30 факторов SEO 2026.