В общем, это 5-я и на сегодняшний день последняя версия языка разметки html. В целом html5 представляет собой больше, чем набор тегов — это совокупность технологий и способов разметки контента на сайте. Технологии html5 мы в этой статье рассматривать не будем, рассмотрим лишь некоторые специальные теги, которые лежат в основе семантической разметки.
<header> и <footer>
Эти теги знают все. И даже на самых заброшенных сайтах можно встретить разметку шапки сайта и подвала. Что это дает поисковым машинам? Они четко могут понять, что сканируемая область сайта относится к шапке или к подвалу.
Пример разметки <header>:
Пример разметки <footer>:
Однако тег header используется не только для разметки шапки сайта. Его можно использовать и для других целей. К примеру, у секции или статьи может быть свой header.
<nav>
Этот тег предназначен для разметки любой навигации по сайту, будь то меню в шапке сайта, ссылки в footer или сайдбаре. Если у Вас на сайте есть блочный элемент с любой навигацией, смело оборачивайте его в <nav>.
Спецификация разрешает использовать nav многократно, что и следует делать.
Пример разметки <nav> в <header>:
В последнее время элемент nav также довольно часто встречается на веб страницах, обычно так размечают основное меню в шапке сайта. Гораздо реже, конечно, размечают другие виды навигации.
Пример разметки nav в header (Мобильная версия):
Пагинация — это тоже своего рода навигация и допустимо размечать ее тегом nav.
Пример разметки nav для пагинации
<main>
Тег main используется для обозначения основного контента на сайте. В этом теге не должно быть повторяющихся элементов: логотипа, меню хедера и футера, формы поиска и пр. Он только для уникального и основного контента.
Как правило, это родительский тег.
Простой пример:
Поисковая машина понимает, что внутри main расположен основной контент сайта, который по большому счету и надо использовать для определения релевантности документа и основного контента страницы поисковому запросу.
<section>
Это, по сути, универсальный элемент, в который можно заворачивать практически все, кроме тех сущностей, для которых предусмотрены специальные теги (статьи, списки статей или новостей, сайдбары). Как правило, элемент section объединяет в себе блок, в котором содержится однородный контент.
Пример разметки section для части страницы сайта:
Обычно section содержит заголовок и контент, относящийся к этому заголовку. При этом в section можно использовать заголовки h1 и это не приведет к каким-либо негативным последствиям со стороны поисковых систем (но все равно страшно, когда на странице 60 заголовков h1). Пожалуй, можно использовать заголовки и другого уровня, спецификация на этот счет не имеет четких рекомендаций.
Section может содержать произвольное количество вложенных семантических тегов (Article, Aside, Section), потому что сами секции могут быть довольно большого размера (но, конечно, не больше main). Не будем на эту тему подробно, потому что это повод написать отдельную статью — видимо, как создать ТЗ на верстку и интеграцию html5 и микроразметки.
<article>
Дословно переводя, это «статья», но используется этот элемент не столько для разметки статей, сколько для разметки групп статей, новостей, комментариев, в общем-то любых записей на сайте. Для таких элементов не нужно использовать тег nav.
Сами статьи также можно размечать элементом article, но только в том случае, если в нем будут другие вложенные элементы — article, aside или section.
Пример разметки article для части страницы сайта:
<aside>
Это прекрасный элемент. Элементом aside размечаются сущности, которые прямого отношения к основному контенту на странице не имеют. Это сайдбары, фильтры, различные формы, блоки рекламы и мало ли что еще. То есть контент, без которого основной контент на странице не утратит смысла и логики.
Здорово, не правда ли? Тег aside может содержать в себе любые теги из перечисленных здесь (кроме main, конечно).
Пример разметки aside для части страницы сайта: