Structured Data и JSON-LD: практическое руководство по SEO-внедрению
Structured data помогает поисковым системам понять, о чем страница. JSON-LD — самый распространенный способ добавить такие данные, потому что он держит machine-readable data отдельно от видимого HTML.
Structured data может сделать страницу eligible для расширенных поисковых функций, но не гарантирует rich results. Google и другие поисковые системы решают, что показывать, на основе качества страницы, intent запроса, правил eligibility и многих других сигналов.
Полезные ссылки:
- Google Search Central: structured data introduction
- Google Rich Results Test
- Google Search Console
- Schema.org vocabulary
Что делает Structured Data
Structured data дает явное значение контенту страницы. Вместо того чтобы видеть только текст, поисковая система может понять, что страница является статьей, продуктом, software application, breadcrumb trail, FAQ section или другим распознаваемым типом entity.
Хорошая structured data должна:
- Соответствовать видимому контенту страницы.
- Использовать самый конкретный релевантный тип Schema.org.
- Включать required и recommended properties.
- Оставаться точной при изменениях контента.
- Валидироваться перед deployment.
Не используйте structured data для описания контента, который пользователи не видят. Это частая quality problem и может сделать markup неeligible.
Почему JSON-LD обычно лучший формат
Есть несколько форматов structured data, но JSON-LD обычно проще поддерживать.
| Формат | Как добавляется | Поддержка |
|---|---|---|
| JSON-LD | Блок <script type="application/ld+json"> |
Чисто и отдельно от HTML |
| Microdata | Атрибуты внутри HTML элементов | Легко сломать при изменениях шаблона |
| RDFa | Атрибуты внутри HTML элементов | Мощно, но сложнее |
С JSON-LD frontend markup может меняться без переписывания каждого structured data атрибута.
Базовый JSON-LD паттерн
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Structured Data and JSON-LD: Practical SEO Implementation Guide",
"description": "Learn how to add JSON-LD structured data safely.",
"author": {
"@type": "Person",
"name": "Sarah Miller"
},
"datePublished": "2026-07-16",
"dateModified": "2026-07-16"
}
</script>
Ключевые поля:
@context: обычноhttps://schema.org.@type: тип Schema.org, напримерArticle.- Properties: поля, описывающие entity, например
headline,authorилиdatePublished.
Article Markup
Используйте Article, BlogPosting или NewsArticle для редакционного контента. Выбирайте тип, который лучше всего соответствует странице. Для обычных blog posts часто подходит BlogPosting.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to Split a PDF Safely",
"description": "A practical guide to extracting and splitting PDF pages.",
"image": "https://example.com/images/pdf-split-guide.png",
"author": {
"@type": "Person",
"name": "Rachel Kim"
},
"publisher": {
"@type": "Organization",
"name": "Example Tools",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"datePublished": "2026-07-16",
"dateModified": "2026-07-16",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/pdf-split-guide"
}
}
</script>
Будьте честны с датами. Не обновляйте dateModified только чтобы контент выглядел свежим, если страница фактически не изменилась.
BreadcrumbList Markup
Breadcrumb structured data помогает поисковым системам понять иерархию страницы.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "PDF Split Guide",
"item": "https://example.com/blog/pdf-split-guide"
}
]
}
</script>
Breadcrumb trail в JSON-LD должен соответствовать навигации, которую пользователи могут понять на странице.
FAQPage Markup
Добавляйте FAQPage markup только если страница действительно содержит видимые вопросы и ответы. Не добавляйте fake FAQs только ради rich results.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does structured data guarantee rich results?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Structured data can make a page eligible, but search engines decide whether to show enhanced results."
}
},
{
"@type": "Question",
"name": "Should JSON-LD match visible page content?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Markup should describe content that users can also see on the page."
}
}
]
}
</script>
FAQ markup — не shortcut к дополнительному месту в выдаче. Используйте его только когда это улучшает ясность для пользователей.
SoftwareApplication Markup
Для онлайн-инструментов, apps или downloadable software SoftwareApplication может описывать, что предлагает страница.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "PDF Split Tool",
"applicationCategory": "UtilitiesApplication",
"operatingSystem": "Web",
"url": "https://example.com/pdf/split",
"description": "Split a PDF into selected pages or smaller files in the browser.",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}
</script>
Добавляйте только истинные поля. Если вы добавляете ratings, reviews, prices или platform claims, они должны подтверждаться видимым контентом и реальным состоянием продукта.
Несколько JSON-LD блоков
На странице можно включить больше одной structured data entity. Например, blog article может также иметь breadcrumbs.
Можно использовать отдельные script blocks:
<script type="application/ld+json">{ "...Article data..." }</script>
<script type="application/ld+json">{ "...Breadcrumb data..." }</script>
Или array:
<script type="application/ld+json">
[
{ "@context": "https://schema.org", "@type": "BlogPosting" },
{ "@context": "https://schema.org", "@type": "BreadcrumbList" }
]
</script>
Отдельные блоки часто проще генерировать из templates.
Workflow валидации
Перед публикацией используйте простой процесс:
- Генерируйте JSON-LD из тех же source data, которые использует страница.
- Проверьте, что markup является валидным JSON.
- Прогоните URL или code через Rich Results Test.
- После indexing отслеживайте structured data reports в Search Console.
- Повторно проверяйте templates после крупных изменений design, routing или CMS.
Успешная валидация означает, что syntax и некоторые eligibility rules выполнены. Это все равно не гарантирует rich result.
Частые ошибки
Markup не совпадает с видимым контентом
Если JSON-LD говорит, что на странице есть reviews, FAQs, prices или author details, пользователи должны иметь возможность проверить эти детали на странице.
Неверный тип
Не используйте Product для каждой страницы инструмента только потому, что product rich results выглядят привлекательно. Используйте тип, который соответствует странице.
Fake или unsupported ratings
Review и rating markup требуют реальных видимых reviews. Не придумывайте aggregate ratings.
Несогласованные даты
datePublished и dateModified должны соответствовать реальному content lifecycle. Обновляйте modified dates только при значимых изменениях.
Сломанные URLs
Image, logo, canonical и page URLs должны быть absolute, crawlable и stable.
Locale mismatch
Для multilingual sites каждая localized page должна иметь structured data на том же языке, что и страница; корректные canonical и alternate links обрабатываются в другой части страницы.
Советы по внедрению
- Генерируйте structured data из CMS или page metadata, а не вручную на каждой странице.
- Правильно escape user-generated text, чтобы JSON оставался валидным.
- Держите reusable template для каждого типа страницы.
- Тестируйте representative pages, а не только homepage.
- Повторно валидируйте после изменения routes, slugs, author profiles или image generation.
- Воспринимайте warnings как возможности улучшения, но сначала исправляйте errors.
Финальный чеклист
Перед выпуском JSON-LD подтвердите:
- Markup описывает видимый контент страницы.
- Тип Schema.org подходит странице.
- Required fields присутствуют.
- URLs абсолютные и crawlable.
- Даты, авторы, titles и descriptions совпадают со страницей.
- Страница проходит Rich Results Test, где это применимо.
- Search Console мониторится после deployment.
Structured data — это не трюк для принудительного получения rich search results. Это чистый способ явно описать смысл страницы. Когда данные точны, поддерживаются и согласованы с видимым контентом, они повышают шанс, что поисковые системы правильно поймут страницу.
Попробуйте эти локальные браузерные инструменты — регистрация не требуется →