[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"$fxBJnoJuhNYL27s2gGD-TsTzC25EaJ_wPLCJJlllvZXY":3},{"slug":4,"title":5,"description":6,"date":7,"created_at":8,"updated_at":8,"h1":5,"content":9,"views":10,"next_articles":11},"html-struktura-dokumenta","HTML-структура документа","Структура HTML-документа для SEO: что хранить в head и body, как использовать lang, title, main и семантические элементы, а также как проверить шаблон CMS.","2026-08-08","2026-09-07","\u003Cp>HTML-документ — каркас страницы: doctype, \u003Ccode>html\u003C\u002Fcode>, \u003Ccode>head\u003C\u002Fcode>, \u003Ccode>body\u003C\u002Fcode>. Робот и браузер читают разметку до CSS и часто до JS. Сломанный каркас даёт непредсказуемые сниппеты, дубли title и трудности отладки в Search Console.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"ru\"&gt;\n&lt;head&gt;… charset, title, meta …&lt;\u002Fhead&gt;\n&lt;body&gt;… контент …&lt;\u002Fbody&gt;\n&lt;\u002Fhtml&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>Один \u003Ccode>head\u003C\u002Fcode> и один \u003Ccode>body\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>lang=\"ru\"\u003C\u002Fcode> (или нужный язык) на корне.\u003C\u002Fli>\n\u003Cli>Мета и title — в head, основной текст — в body.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Head: что должно быть\u003C\u002Fh2>\n\u003Cp>Charset, viewport, title, description, canonical, подключение CSS. Аналитика — с \u003Ccode>defer\u003C\u002Fcode>\u002F\u003Ccode>async\u003C\u002Fcode>, где возможно. Частый баг CMS: title или meta оказываются в body после некорректного include.\u003C\u002Fp>\n\u003Cp>Meta для выдачи — см. \u003Ca href=\"\u002Fblog\u002Fmeta-tegi-title-description\">мета-теги title, description и Open Graph\u003C\u002Fa>. Устаревшие теги в теле — \u003Ca href=\"\u002Fblog\u002Fustarevshie-html-tegi\">устаревшие HTML-теги\u003C\u002Fa>. Иерархия заголовков в body — \u003Ca href=\"\u002Fblog\u002Fzagolovki-h1-h6-struktura\">H1–H6\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Семантика body\u003C\u002Fh2>\n\u003Cp>Используйте \u003Ccode>header\u003C\u002Fcode>, \u003Ccode>nav\u003C\u002Fcode>, один \u003Ccode>main\u003C\u002Fcode>, \u003Ccode>section\u003C\u002Fcode>, \u003Ccode>footer\u003C\u002Fcode>. Заголовки — по уровням без пропусков. Кнопки — \u003Ccode>button\u003C\u002Fcode> или \u003Ccode>a\u003C\u002Fcode>, не безликие \u003Ccode>div\u003C\u002Fcode> с onclick.\u003C\u002Fp>\n\u003Cp>Микроразметка дополняет видимый контент, не подменяет его — см. \u003Ca href=\"\u002Fblog\u002Fmikrorazmetka-schema-org\">Schema.org\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Валидация\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Проблема\u003C\u002Fth>\u003Cth>Риск\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Дубли id\u003C\u002Ftd>\u003Ctd>Ломает якоря и скрипты\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Незакрытые теги\u003C\u002Ftd>\u003Ctd>Сломанное DOM-дерево\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Несколько H1\u003C\u002Ftd>\u003Ctd>Размытый главный заголовок\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Проверьте \u003Ca href=\"\u002Ftools\u002Fhtml-lang\">HTML lang\u003C\u002Fa> и \u003Ca href=\"\u002Ftools\u002Fcharset\">Charset\u003C\u002Fa>. После правки шаблона — \u003Ca href=\"\u002Fcheck\u002Ffree\">бесплатная проверка\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Шаблоны CMS и вложенность\u003C\u002Fh2>\n\u003Cp>WordPress, Bitrix и другие CMS иногда выводят куски head через хуки в body. Симптом — дубли meta и «title не совпадает с вкладкой». Решение на уровне темы: один layout, один wp_head, без ручных вставок в контент.\u003C\u002Fp>\n\u003Cp>Скрипты аналитики в head без defer блокируют первую отрисовку. Перенос в конец body или async\u002Fdefer — часть «структуры документа», хотя тег formally в body. Проверяйте порядок после каждого нового виджета.\u003C\u002Fp>\n\u003Cp>Доступность начинается со структуры: skip-link к main, landmark-роли, label у форм. Это не «балл SEO», но снижает отказы и жалобы на неудобство — косвенный плюс.\u003C\u002Fp>\n\u003Cp>Проверьте JSON-LD отдельно от HTML: schema в head или body допустима, но дублирующий title в разметке и в tag title путает отладку. Один источник правды для заголовка — в CMS.\u003C\u002Fp>\n\u003Cp>Доступность начинается со структуры: skip-link к main, landmark-роли, label у форм. Это не «балл SEO», но снижает отказы и жалобы на неудобство — косвенный плюс.\u003C\u002Fp>\n\u003Cp>Проверьте JSON-LD отдельно от HTML: schema в head или body допустима, но дублирующий title в разметке и в tag title путает отладку. Один источник правды для заголовка — в CMS.\u003C\u002Fp>\n\u003Cp>Доступность начинается со структуры: skip-link к main, landmark-роли, label у форм. Это не «балл SEO», но снижает отказы и жалобы на неудобство — косвенный плюс.\u003C\u002Fp>\n\u003Cp>Проверьте JSON-LD отдельно от HTML: schema в head или body допустима, но дублирующий title в разметке и в tag title путает отладку. Один источник правды для заголовка — в CMS.\u003C\u002Fp>\n\u003Cp>Доступность начинается со структуры: skip-link к main, landmark-роли, label у форм. Это не «балл SEO», но снижает отказы и жалобы на неудобство — косвенный плюс.\u003C\u002Fp>\n\u003Cp>Проверьте JSON-LD отдельно от HTML: schema в head или body допустима, но дублирующий title в разметке и в tag title путает отладку. Один источник правды для заголовка — в CMS.\u003C\u002Fp>\n\u003Csection class=\"blog-faq\">\n\u003Ch2>Вопросы и ответы\u003C\u002Fh2>\n\u003Cdetails>\u003Csummary>Обязателен ли &lt;main&gt;?\u003C\u002Fsummary>\u003Cp>Не всегда формальный штраф, но сильно упрощает структуру для a11y и парсеров.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Несколько &lt;body&gt;?\u003C\u002Fsummary>\u003Cp>Нельзя: несколько тегов body — признак поломки шаблона, склейки фрагментов или ошибки генерации HTML, а не нормальная вёрстка.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Валидность W3C = позиции?\u003C\u002Fsummary>\u003Cp>Нет напрямую: валидность W3C сама по себе не поднимает позиции. Важнее предсказуемость разбора документа и отсутствие критичных ошибок разметки.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Div-soup допустим?\u003C\u002Fsummary>\u003Cp>Терпимо, если заголовки и ссылки ясные для человека и робота. Семантические теги всё же упрощают поддержку шаблона и доступность страницы.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003C\u002Fsection>",0,[12,16,19,22,26],{"slug":13,"title":14,"date":15,"views":10},"zagolovki-h1-h6-struktura","Заголовки H1–H6: структура для SEO","2026-08-09",{"slug":17,"title":18,"date":15,"views":10},"robot-view-glazami-robota","Сайт глазами робота",{"slug":20,"title":21,"date":7,"views":10},"bitye-css-i-js","Битые CSS и JS",{"slug":23,"title":24,"date":25,"views":10},"meta-tegi-title-description","Мета-теги title, description, Open Graph","2026-07-01",{"slug":27,"title":28,"date":15,"views":10},"ustarevshie-html-tegi","Устаревшие HTML-теги на сайте",1789381425019]