
Зачем это надо было Link to heading
Блог — это не только для людей. Всё больше контента потребляют нейросети, поисковые боты и автономные агенты. Обычный блог им “читаем”, но без структуры теряется контекст: кто автор, когда опубликовано, о чём пост, есть ли превью-картинка да и для SEO говорят в наше время полезно.
Раньше у меня в большинстве постов поле description было пустым, не было машинно-читаемой разметки. Агент, открывший страницу, видел кашу из заголовка и куска текста без понимания что это вообще статья.
Что сделано Link to heading
1. JSON-LD разметка (schema.org) Link to heading
Добавил структурированные данные прямо в <head> каждой страницы. Для постов — тип BlogPosting (через layouts/posts/single.html, блок head), для страниц типа «О себе» и «CV» — WebPage (через layouts/partials/head/custom-icons.html).
Что внутри:
headline— заголовокdescription— описание (берётся из фронтматтера или автогенерится из текста)datePublished/dateModified— датыauthor/publisher— кто написал, кто публикуетimage— логотип постаurl— каноническая ссылка
Пример для поста:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "YouTube MCP: скачиваем видео и вшиваем субтитры",
"description": "Я запилил эмсипи-сервер для оупенкода...",
"datePublished": "2026-07-01T18:00:00+05:00",
"author": [{ "@type": "Person", "name": "Maxim S. Tatarinov" }]
}
2. Open Graph и Twitter Cards Link to heading
Раньше тема (hugo-coder) генерила базовые OG-теги, но с пустыми описаниями они были бесполезны. Теперь:
og:title,og:description,og:type,og:image— заполняются автоматическиarticle:published_time,article:author,article:tag— для статейtwitter:card=summary_large_imageс логотипом поста (крупная картинка-превью)
Логотип поста (/images/posts/<slug>/logo.webp) подхватывается из контента автоматически через регулярку — руками ничего прописывать не надо.
3. Чистка дублей Link to heading
Тема дёргала внутренние шаблоны Hugo (_internal/opengraph.html, _internal/twitter_cards.html), которые дублировали мои OG-теги. Отключил их в override layouts/partials/head/meta-tags.html для постов (чтобы не было двух og:* подряд), а custom-icons.html генерирует OG/Twitter для всех страниц. JSON-LD для постов живёт в layouts/posts/single.html (блок head), для about/cv — в custom-icons.html.
4. Архетип и контент Link to heading
- Обновил
archetypes/default.md— новые посты сразу получаютdescription,tags,categoriesпо умолчанию - Прогнал все ~70 старых постов и заполнил им
descriptionиз первых абзацев - Добавил описания на страницы
aboutиcv
Какие преимущества Link to heading
- Лучшее понимание агентами. Языковая модель, получившая ссылку на пост, видит чёткую структуру: что это статья, кто автор, о чём, когда вышла. Меньше галлюцинаций при пересказе.
- Красивые превью при шаринге. В чатах, соцсетях и MCP-инструментах посты теперь показывают картинку и описание, а не пустоту.
- SEO. JSON-LD — стандарт для поисковиков. Google и Bing лучше индексируют структурированный контент.
- Будущее-proof. Если завтра появится новый агент или протокол, читающий schema.org — блог уже готов.
- Единообразие. Все посты теперь имеют описания, картинки и метаданные по одному шаблону.
Как проверить Link to heading
Собрать и глянуть исходники:
hugo --minify
grep -A 20 'ld+json' public/posts/<slug>/index.html
Или открыть любой пост и найти в <head> блок <script type="application/ld+json">.
Итог Link to heading
Блог стал не просто «сайтом для людей», а машинно-читаемым ресурсом. Агенты, боты и нейросети теперь получают контекст сразу.