Структурированные данные и JSON-LD
Размечаем смысл данных машиночитаемо, чтобы поисковик понимал: это статья, это товар, это рейтинг.
Структурированные данные — разметка по словарю Schema.org, которая описывает суть контента машине. JSON-LD — рекомендованный Google формат этой разметки: блок JSON в
<script>.
Зачем это нужно
Из обычного HTML поисковик понимает текст, но не его роль: что «4.8» — это рейтинг, «1200 ₽» — цена, а «20 июня» — дата публикации. Структурированные данные явно говорят: «вот объект Article, у него такой заголовок, автор и дата». Это открывает rich results — расширенные сниппеты со звёздами, ценами, FAQ-аккордеонами (о них — следующий урок).
JSON-LD против микроразметки
Schema.org можно размечать тремя способами: Microdata и RDFa (атрибуты прямо в HTML-тегах) и JSON-LD (отдельный блок). Google рекомендует JSON-LD, потому что он не смешивается с вёрсткой: данные лежат отдельным скриптом, их легко генерировать на сервере и не нужно трогать разметку шаблона.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Что такое canonical и как убрать дубли",
"datePublished": "2026-06-20",
"author": { "@type": "Organization", "name": "CodeChick" }
}
</script>
Анатомия JSON-LD
@context— всегда"https://schema.org", задаёт словарь.@type— тип объекта:Article,Product,FAQPage,BreadcrumbListи др.- остальные ключи — свойства этого типа из спецификации Schema.org.
На codechick.io JSON-LD используется как живой пример: страницы туториалов размечены, чтобы поисковик понимал их как обучающий контент.
Как работает под капотом: генерация разметки
JSON-LD почти всегда генерируется на сервере из данных страницы. Поскольку это просто JSON, его удобно собирать как словарь и сериализовать. На Python:
import json
def article_jsonld(title, date, author):
data = {
"@context": "https://schema.org",
"@type": "Article",
"headline": title,
"datePublished": date,
"author": {"@type": "Organization", "name": author},
}
return json.dumps(data, ensure_ascii=False, indent=2)
print(article_jsonld("Как убрать дубли страниц", "2026-06-20", "CodeChick"))
Вывод:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Как убрать дубли страниц",
"datePublished": "2026-06-20",
"author": {
"@type": "Organization",
"name": "CodeChick"
}
}
Сериализованную строку вставляют в <script type="application/ld+json"> в <head>.
Частые ошибки
- Разметка не соответствует видимому контенту — например, рейтинг в JSON-LD, которого нет на странице. Это нарушение правил, грозит санкциями.
- Невалидный JSON — хвостовая запятая или неэкранированная кавычка ломают весь блок.
- Неверный
@typeили обязательные поля пропущены — rich result не покажется. - JSON-LD только на клиенте, который бот не дождался — лучше отдавать в исходном HTML.
Итог
- Структурированные данные (Schema.org) объясняют поисковику смысл контента машиночитаемо.
- JSON-LD — рекомендованный формат: отдельный
<script type="application/ld+json">, удобно генерировать на сервере. - Разметка обязана соответствовать видимому на странице контенту, иначе санкции.