Семантические теги HTML5: как правильно структурировать сайт
Для кого эта статья:
- начинающие веб-разработчики
- опытные разработчики, желающие улучшить свои знания о семантических тегах
специалисты по SEO и доступности веб-сайтов
HTML без семантических тегов — всё равно что книга без глав и абзацев. Просто куча слов. Когда я только начинал верстать сайты, использовал div-контейнеры для всего подряд. Результат? Поисковики плохо индексировали страницы, скринридеры не могли корректно прочитать контент, а коллегам приходилось долго разбираться в моем коде. Семантические теги HTML5 решают эти проблемы, придавая вашей разметке смысл и структуру. Это не просто модный тренд — это фундамент современной веб-разработки. 🚀
Хотите создавать семантически правильные и доступные веб-сайты? На курсе Обучение веб-разработке от Skypro вы освоите не только HTML5 с его семантическими тегами, но и научитесь верстать адаптивные страницы, создавать интерактивные интерфейсы и оптимизировать код. Менторы с реальным опытом работы помогут избежать типичных ошибок и быстрее достичь профессионального уровня верстки.
Что такое семантические теги HTML5 и зачем они нужны
Семантические теги HTML5 — это элементы разметки, которые несут в себе смысловую нагрузку и описывают содержимое, а не просто определяют его внешний вид. В отличие от div и span, семантические теги сообщают браузерам, поисковым системам и скринридерам о типе контента, который они содержат.
До появления HTML5 разработчикам приходилось создавать структуру страницы преимущественно с помощью div-элементов с различными классами:
<div class="header">...</div>
<div class="navigation">...</div>
<div class="content">...</div>
<div class="footer">...</div>
Этот подход создавал несколько существенных проблем:
- Код становился запутанным — особенно в крупных проектах, где легко потеряться в десятках вложенных div-элементов
- Поисковые системы не могли эффективно анализировать структуру и содержимое страниц
- Инструменты доступности (скринридеры) не получали достаточно информации для корректной работы
- Мобильные устройства не могли правильно масштабировать и отображать контент
HTML5 решил эти проблемы, представив набор семантических тегов, каждый из которых имеет определенное значение и назначение. 🔍
| Без семантических тегов | С семантическими тегами |
|---|---|
| Запутанная структура кода | Четкая, понятная иерархия |
| Проблемы с SEO-оптимизацией | Лучше понимание контента поисковыми системами |
| Сниженная доступность | Улучшенная совместимость со скринридерами |
| Трудности при командной разработке | Более понятный код для всей команды |
Михаил, технический директор
Несколько лет назад к нам поступил проект на рефакторинг — огромный корпоративный сайт с 250+ страницами. Весь код представлял собой бесконечные вложенные div-контейнеры, в которых даже опытным разработчикам было сложно разобраться. Мы потратили первую неделю только на составление карты структуры сайта!
Когда мы переписали верстку с использованием семантических тегов HTML5, произошло несколько интересных вещей. Во-первых, код сократился на 15%. Во-вторых, скорость загрузки выросла на 23%. В-третьих, сайт поднялся в поисковой выдаче, особенно в мобильном поиске. Но самое главное — новые разработчики теперь могли подключаться к проекту и быстро понимать структуру, не тратя дни на изучение хитросплетений div-ов.

Основные семантические теги и их назначение
HTML5 представил более 30 новых семантических элементов, но есть ключевые теги, которые используются практически на каждой странице. Давайте рассмотрим основные из них и их практическое применение. 📝
<header>— контейнер для вводной информации, обычно содержит логотип, заголовок и навигацию<nav>— блок основной навигации по сайту<main>— основное содержимое страницы (должен быть только один на странице)<article>— независимый, самодостаточный контент (статья, пост, комментарий)<section>— тематическая группировка контента<aside>— контент, косвенно связанный с основным (сайдбар, виджеты)<footer>— нижняя часть страницы или секции<figure>и<figcaption>— для изображений, диаграмм, иллюстраций с подписями<time>— для обозначения даты/времени<mark>— для выделения текста, важного в контексте
Эти теги не влияют напрямую на визуальное представление (для этого нужен CSS), но они формируют структуру документа и делают его более понятным как для машин, так и для людей.
Давайте рассмотрим, когда и какой тег лучше использовать:
| Семантический тег | Когда использовать | Когда НЕ использовать |
|---|---|---|
<article> | Для самодостаточного контента: новости, блог-пост, отзыв | Для оформления UI-элементов или декоративных блоков |
<section> | Для группировки тематически связанного контента | Просто для стилизации или как замена div |
<aside> | Для дополнительной информации: сайдбары, рекомендации | Для основного контента страницы |
<nav> | Для основных блоков навигации | Для любых ссылок (например, в тексте статьи) |
<figure> | Для самостоятельных изображений, диаграмм с подписями | Для декоративных изображений или аватарок |
Важно помнить, что теги можно и нужно вкладывать друг в друга логически. Например, <article> может содержать свой <header>, несколько <section> и <footer>. 🧩
Правильная структура страницы с тегами header, nav, main
Семантически правильная веб-страница имеет четкую и логичную структуру. Рассмотрим базовый скелет современной веб-страницы с использованием семантических тегов HTML5.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Семантическая страница</title>
</head>
<body>
<header>
<h1>Название сайта</h1>
<nav>
<ul>
<li><a href="#">Главная</a></li>
<li><a href="#">О нас</a></li>
<li><a href="#">Услуги</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</nav>
</header>
<main>
<article>
<header>
<h2>Заголовок статьи</h2>
<p>Опубликовано: <time datetime="2023-10-18">18 октября 2023</time></p>
</header>
<section>
<h3>Первый раздел</h3>
<p>Содержимое первого раздела...</p>
</section>
<section>
<h3>Второй раздел</h3>
<p>Содержимое второго раздела...</p>
<figure>
<img src="image.jpg" alt="Описание изображения">
<figcaption>Подпись к изображению</figcaption>
</figure>
</section>
<footer>
<p>Автор: Имя Автора</p>
</footer>
</article>
<aside>
<h3>Дополнительная информация</h3>
<p>Содержимое сайдбара...</p>
</aside>
</main>
<footer>
<p>© 2023 Название сайта. Все права защищены.</p>
</footer>
</body>
</html>
Обратите внимание на несколько ключевых принципов: 🔑
- Один
<main>на страницу — он должен содержать уникальный контент страницы - Вложенность тегов — семантические теги могут содержать другие семантические теги (например,
<article>может иметь свой<header>) - Заголовки — соблюдайте иерархию заголовков от h1 до h6, где h1 обычно один на странице
- Уникальный контент —
<article>должен содержать самодостаточный материал, который имеет смысл вне контекста страницы
Распространенные ошибки при структурировании страницы:
- Использование
<section>вместо<div>просто для стилизации - Помещение
<header>внутрь<main>(общий заголовок сайта должен быть вне<main>) - Создание нескольких
<main>на одной странице - Пропуск
<article>и размещение контента напрямую в<main> - Использование
<section>без заголовка (каждая секция должна иметь заголовок)
Алексей, frontend-разработчик
Я работал над сайтом для клиента из сферы образования. Они хотели создать интерактивную онлайн-платформу для своих курсов, но настаивали на "современном и модном" дизайне. Первый прототип я сделал, используя в основном div и span — так было проще быстро менять стили и экспериментировать с макетом.
Когда пришло время тестирования, оказалось, что около 8% их аудитории использовали программы чтения с экрана из-за проблем со зрением. Эти пользователи жаловались, что навигация по сайту крайне затруднена — скринридеры не могли определить, где находится меню, основной контент и дополнительные материалы.
Мне пришлось переписать весь HTML, используя правильные семантические теги. После внедрения
<nav>,<main>,<section>,<article>и других тегов отзывы кардинально изменились. Пользователи с ограниченными возможностями сообщили, что теперь могут легко перемещаться между разделами сайта. Но самое неожиданное — улучшилось и поведение сайта на мобильных устройствах, особенно при использовании режима чтения. Обычные пользователи тоже заметили, что сайт стал работать быстрее и удобнее.
Практические кейсы использования семантических тегов
Теория — это хорошо, но давайте рассмотрим практические примеры, когда правильный выбор семантических тегов действительно имеет значение. 🛠️
Кейс #1: Новостной портал
Для новостного сайта правильная семантическая структура особенно важна. Вот пример организации главной страницы:
<header>
<h1>NewsPortal</h1>
<nav>
<!-- Главное меню -->
</nav>
</header>
<main>
<section>
<h2>Главные новости</h2>
<article>
<h3><a href="/news/1">Заголовок первой новости</a></h3>
<p><time datetime="2023-10-18T14:30">18 октября, 14:30</time></p>
<p>Краткое содержание новости...</p>
</article>
<article>
<h3><a href="/news/2">Заголовок второй новости</a></h3>
<p><time datetime="2023-10-18T12:15">18 октября, 12:15</time></p>
<p>Краткое содержание новости...</p>
</article>
</section>
<aside>
<section>
<h2>Популярное</h2>
<ul>
<li><a href="/news/popular/1">Популярная статья 1</a></li>
<li><a href="/news/popular/2">Популярная статья 2</a></li>
</ul>
</section>
<section>
<h2>Подписка на новости</h2>
<form>
<!-- Форма подписки -->
</form>
</section>
</aside>
</main>
<footer>
<!-- Подвал сайта -->
</footer>
В этом примере:
- Каждая новость обернута в
<article>, что позволяет поисковым системам правильно индексировать отдельные материалы - Тег
<time>используется для обозначения даты публикации, что важно для актуальности контента <aside>отделяет дополнительную информацию от основного потока новостей
Кейс #2: Интернет-магазин
Для интернет-магазина критически важно правильно структурировать каталог товаров:
<main>
<section>
<h2>Каталог товаров</h2>
<section>
<h3>Фильтры</h3>
<form>
<!-- Фильтры товаров -->
</form>
</section>
<section class="product-list">
<h3 class="visually-hidden">Список товаров</h3> <!-- Скрытый заголовок для скринридеров -->
<article class="product-card">
<h4>Название товара 1</h4>
<figure>
<img src="product1.jpg" alt="Описание товара 1">
</figure>
<p class="price">1000 ₽</p>
<button>Добавить в корзину</button>
</article>
<article class="product-card">
<h4>Название товара 2</h4>
<figure>
<img src="product2.jpg" alt="Описание товара 2">
</figure>
<p class="price">1500 ₽</p>
<button>Добавить в корзину</button>
</article>
</section>
</section>
</main>
Преимущества такой структуры:
- Каждая карточка товара — это
<article>, что улучшает индексацию отдельных товаров <figure>используется для изображений товаров, что подчеркивает их важность- Скрытые заголовки (visually-hidden) помогают пользователям скринридеров, не нарушая дизайн
Кейс #3: Блог
Для страницы отдельного поста в блоге рекомендуется следующая структура:
<article>
<header>
<h1>Заголовок статьи</h1>
<p>
Автор: <span>Имя Автора</span> |
Опубликовано: <time datetime="2023-10-15">15 октября 2023</time>
</p>
</header>
<section>
<p>Вводный параграф статьи...</p>
<h2>Первый подзаголовок</h2>
<p>Текст раздела...</p>
<figure>
<img src="image.jpg" alt="Описательный текст изображения">
<figcaption>Подпись к изображению</figcaption>
</figure>
<h2>Второй подзаголовок</h2>
<p>Дополнительный текст...</p>
</section>
<footer>
<section class="tags">
<h3>Теги:</h3>
<ul>
<li><a href="#">тег1</a></li>
<li><a href="#">тег2</a></li>
</ul>
</section>
<section class="share">
<h3>Поделиться:</h3>
<!-- Кнопки социальных сетей -->
</section>
<section class="comments">
<h3>Комментарии:</h3>
<!-- Комментарии, каждый в своем article -->
</section>
</footer>
</article>
Влияние семантической верстки на SEO и доступность сайта
Семантическая верстка не просто делает код более читабельным — она напрямую влияет на две критически важные характеристики современного веб-сайта: поисковую оптимизацию (SEO) и доступность (accessibility). 📈
Влияние на SEO
Поисковые системы оценивают не только содержимое страницы, но и структуру HTML-кода. Правильные семантические теги помогают поисковым роботам лучше понимать содержимое и контекст.
- Улучшенное понимание контента. Когда вы используете
<article>для статьи и<nav>для навигации, поисковые системы точнее определяют важные части контента - Выделенные сниппеты. Использование
<time>,<address>и других семантических элементов повышает шансы на получение расширенных сниппетов в результатах поиска - Мобильная оптимизация. Поисковые системы отдают предпочтение сайтам, оптимизированным для мобильных устройств, а семантическая верстка является частью этой оптимизации
- Снижение показателя отказов. Семантически правильные страницы обычно лучше отображаются на разных устройствах, что улучшает пользовательский опыт и снижает процент отказов
Влияние на доступность
Доступность веб-сайта означает, что им могут пользоваться люди с ограниченными возможностями, включая тех, кто использует скринридеры или управляет компьютером с помощью клавиатуры.
- Навигация для скринридеров. Программы чтения с экрана могут определять заголовки, навигационные элементы и основной контент, позволяя пользователям быстро перемещаться по странице
- ARIA-роли. Семантические теги автоматически предоставляют соответствующие ARIA-роли (например,
<nav>имеет роль "navigation") - Клавиатурная навигация. Семантически структурированная страница обычно имеет логичный порядок навигации с помощью клавиши Tab
- Правовые требования. Во многих странах есть законы, требующие, чтобы веб-сайты были доступны для людей с ограниченными возможностями
Статистика, подтверждающая важность семантической верстки:
| Показатель | Влияние семантической верстки |
|---|---|
| Позиции в поисковой выдаче | +15-20% улучшение в среднем по отрасли |
| Скорость индексации | На 35% быстрее для семантически правильных страниц |
| Пользователи с ограниченными возможностями | 15% населения имеет какие-либо ограничения, которые влияют на использование веб-сайтов |
| Мобильный трафик | Более 60% всего веб-трафика приходится на мобильные устройства, где семантика особенно важна |
| Конверсия | Рост до 25% после внедрения доступной и семантически правильной верстки |
Инструменты для проверки семантической верстки: 🔧
- HTML5 Validator (W3C) — проверяет правильность использования HTML5 тегов
- Lighthouse (Google) — оценивает доступность, SEO и производительность
- WAVE Web Accessibility Tool — выявляет проблемы с доступностью
- Структурированные данные в Google Search Console — проверяет, как Google интерпретирует вашу разметку
- Screen Reader Testing — тестирование с помощью программ чтения с экрана (NVDA, VoiceOver)
Практические рекомендации для улучшения SEO и доступности через семантическую верстку:
- Используйте один
<h1>на страницу и сохраняйте иерархию заголовков - Добавляйте атрибуты alt ко всем информативным изображениям
- Используйте
<button>для интерактивных элементов вместо стилизованных<div> - Применяйте ARIA-атрибуты там, где семантических тегов недостаточно
- Проверяйте контрастность текста для улучшения читаемости
- Используйте
<label>для полей форм и привязывайте их к соответствующим элементам ввода
Знание и применение семантических тегов HTML5 — это не просто дань современным стандартам, а необходимое условие создания качественных веб-продуктов. Они делают ваш код более понятным как для разработчиков, так и для машин, улучшают поисковую оптимизацию и делают сайт доступным для всех пользователей. В мире, где конкуренция за внимание пользователей постоянно растет, правильная семантическая структура становится тем фактором, который может существенно повысить видимость вашего сайта и улучшить пользовательский опыт. Начните применять эти практики сегодня — и ваши проекты станут заметно профессиональнее.