Заголовки h1-h6
Элементы
<h1>--<h6>определяют заголовки шести уровней вложенности, создавая иерархическую структуру документа.
Зачем нужно
Заголовки -- основа структуры документа. Они создают outline (оглавление) страницы, по которому навигируют screen readers, поисковые роботы и пользователи. Правильная иерархия заголовков критична для SEO и доступности.
Где используется
- Каждая веб-страница (минимум один заголовок)
- Статьи и блог-посты
- Документация
- Landing pages
Предпосылки
Уровни заголовков
<h1>Заголовок 1 уровня — самый важный</h1>
<h2>Заголовок 2 уровня</h2>
<h3>Заголовок 3 уровня</h3>
<h4>Заголовок 4 уровня</h4>
<h5>Заголовок 5 уровня</h5>
<h6>Заголовок 6 уровня — наименее важный</h6>
По умолчанию браузер отображает их с убывающим размером шрифта, но размер не важен -- важна семантическая иерархия. Внешний вид всегда можно изменить через CSS.
Иерархия заголовков (outline)
<!-- Правильная иерархия: не пропускай уровни -->
<h1>Руководство по HTML</h1> <!-- 1 -->
<h2>Основы</h2> <!-- 1.1 -->
<h3>Теги и атрибуты</h3> <!-- 1.1.1 -->
<h3>Семантика</h3> <!-- 1.1.2 -->
<h2>Формы</h2> <!-- 1.2 -->
<h3>Элементы форм</h3> <!-- 1.2.1 -->
<h4>Input</h4> <!-- 1.2.1.1 -->
<h4>Select</h4> <!-- 1.2.1.2 -->
<h3>Валидация</h3> <!-- 1.2.2 -->
<h2>Доступность</h2> <!-- 1.3 -->
Правило одного <h1>
На каждой странице один <h1> -- главный заголовок страницы:
<!-- Правильно: один h1 -->
<body>
<header>
<nav>...</nav>
</header>
<main>
<h1>Каталог товаров</h1>
<section>
<h2>Электроника</h2>
<h3>Смартфоны</h3>
</section>
<section>
<h2>Одежда</h2>
</section>
</main>
</body>
Технически несколько <h1> валидны в HTML5, но с точки зрения SEO и a11y -- один <h1> на страницу.
Не пропускай уровни
<!-- ПЛОХО: перепрыгнул с h1 на h3 -->
<h1>Заголовок</h1>
<h3>Подзаголовок</h3>
<!-- ХОРОШО: последовательная иерархия -->
<h1>Заголовок</h1>
<h2>Подзаголовок</h2>
Пропуск уровней (h1 → h3) нарушает outline документа. Screen readers и поисковики ожидают последовательную иерархию.
Исключение: после глубокого уровня можно вернуться на любой верхний:
<h1>Главный</h1>
<h2>Раздел</h2>
<h3>Подраздел</h3>
<h4>Параграф</h4>
<h2>Другой раздел</h2> <!-- OK: вернулись на h2 -->
Заголовки и семантические секции
<main>
<h1>Блог</h1>
<article>
<header>
<h2>Первая статья</h2>
<p><time datetime="2026-04-06">6 апреля</time></p>
</header>
<p>Контент...</p>
<section>
<h3>Комментарии</h3>
<!-- ... -->
</section>
</article>
<article>
<header>
<h2>Вторая статья</h2>
</header>
<p>Контент...</p>
</article>
</main>
<aside>
<h2>Популярное</h2>
<ul>...</ul>
</aside>
SEO и заголовки
| Фактор | Рекомендация |
|---|---|
<h1> |
Содержит главное ключевое слово страницы |
Один <h1> |
На каждой странице один h1 |
| Длина h1 | 20-70 символов |
| h1 = title | h1 и <title> должны быть близки по смыслу |
| Иерархия | Последовательная, без пропусков |
| Keywords в h2-h3 | Вторичные ключевые слова в подзаголовках |
<!-- Хорошо для SEO -->
<title>Руководство по HTML для начинающих | WebDev</title>
<h1>Руководство по HTML для начинающих</h1>
<h2>Что такое HTML</h2>
<h2>Основные теги HTML</h2>
<h3>Текстовые теги</h3>
<h3>Структурные теги</h3>
Стилизация заголовков
Размер заголовка -- дело CSS, не HTML:
<style>
/* Сброс стилей и собственная типографика */
h1, h2, h3, h4, h5, h6 {
margin: 0;
font-weight: 700;
line-height: 1.2;
}
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }
/* Визуально маленький, но семантически h2 */
.h2-small {
font-size: 1rem;
font-weight: 400;
}
</style>
<!-- Семантически h2, визуально мелкий -->
<h2 class="h2-small">Подзаголовок</h2>
Частые ошибки
| Ошибка | Почему плохо | Как правильно |
|---|---|---|
Несколько <h1> |
Путает SEO и screen readers | Один <h1> на страницу |
| Выбор уровня по размеру | Нарушена иерархия | Уровень по структуре, размер через CSS |
| Пропуск уровней | Сломанный outline | h1 → h2 → h3, не h1 → h3 |
| Заголовок для стилей | <h3> только из-за размера |
Используй CSS-классы |
| Пустой заголовок | Плохо для a11y | Заголовок должен содержать текст |
| Заголовок только из картинки | Screen reader не прочитает | Добавь текст (можно visually-hidden) |
Практика
- Создай страницу со всеми шестью уровнями заголовков
- Установи расширение HeadingsMap для Chrome -- проверь outline страницы
- Возьми любой сайт и проверь его иерархию заголовков через HeadingsMap
- Создай страницу, где
<h3>визуально больше<h2>через CSS -- убедись, что иерархия в outline не нарушена - Попробуй навигацию по заголовкам в screen reader (NVDA: клавиша
H)
Связанные темы
- Семантическая разметка -- семантическая структура
- Open Graph и SEO -- SEO-теги
- Семантика для screen readers -- как screen readers воспринимают заголовки
- Параграфы и контейнеры -- текстовый контент