Что должно быть в <head> и зачем нужны мета-теги?
JuniorHTML #html #meta #head
Вопрос
Какие теги обычно кладут в <head> документа и зачем нужны мета-теги вроде charset, viewport, description, Open Graph и favicon?
Короткий ответ
<head> содержит невидимые пользователю метаданные страницы: кодировку, заголовок вкладки, ссылки на стили/скрипты и мета-теги, которые управляют рендерингом (viewport), SEO (description) и тем, как ссылка выглядит при шаринге в соцсетях (Open Graph). Ничего внутри <head> не отображается в теле страницы.
Подробный ответ
Ключевые элементы <head>:
<meta charset="UTF-8">— кодировка документа. Должен идти в первых 1024 байтах файла, иначе браузер может успеть начать парсинг с неверной кодировкой.<title>— заголовок вкладки браузера и заголовок сниппета в поисковой выдаче.<meta name="viewport" content="width=device-width, initial-scale=1">— без этого тега мобильные браузеры рендерят страницу в виртуальном окне ~980px и затем масштабируют её, из-за чего адаптивная вёрстка ломается.width=device-widthприравнивает viewport к реальной ширине экрана.<meta name="description" content="...">— краткое описание страницы, которое поисковики часто показывают под заголовком в выдаче. Не влияет напрямую на ранжирование, но влияет на CTR.- Open Graph (
og:title,og:description,og:image,og:url) — протокол Facebook, который читают большинство мессенджеров и соцсетей для построения превью-карточки при шаринге ссылки. Безog:imageкарточка обычно выглядит пусто и непривлекательно. <link rel="icon" href="/favicon.ico">— иконка вкладки (favicon), также используется в закладках и истории браузера.<link rel="canonical" href="...">— указывает поисковику каноническую версию страницы при дублирующемся контенте (например, с?utm_sourceи без).<link rel="stylesheet">и<script>— подключение CSS и JS; порядок и атрибуты (defer/async) здесь влияют на скорость первого рендера.
Пример
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Магазин обуви — Nuxt UZ</title>
<meta name="description" content="Каталог кроссовок и ботинок с доставкой по Узбекистану" />
<!-- Open Graph для превью при шаринге -->
<meta property="og:title" content="Магазин обуви — Nuxt UZ" />
<meta property="og:description" content="Каталог кроссовок и ботинок с доставкой" />
<meta property="og:image" content="https://example.com/og-cover.jpg" />
<meta property="og:url" content="https://example.com" />
<link rel="canonical" href="https://example.com" />
<link rel="icon" href="/favicon.ico" />
<link rel="stylesheet" href="/styles/main.css" />
</head>
Дополнительные вопросы
- Что произойдёт с адаптивной вёрсткой без тега
viewport? - Чем
og:*теги отличаются от Twitter Card тегов (twitter:card)? - Зачем нужен
rel="canonical"и как он влияет на дублирующийся контент?