Если вы занимаетесь SEO или разработкой сайтов, вы наверняка слышали о Schema.org. Многие до сих пор используют её поверхностно или игнорируют вовсе. В этой статье разберём, что такое микроразметка, зачем она нужна современному SEO, и как внедрить полезные типы схем — от базовых до вложенных структур. Отдельно покажу практический подход для Laravel и чеклист перед релизом.
Важно: Schema.org не «гарантирует ТОП-1». Это фундамент технического SEO: лучше сниппеты, понятнее смысл страницы для поисковиков и ассистентов. Позиции зависят от множества факторов.
- Что такое Schema.org и зачем она нужна
- Основные форматы разметки
- Базовые схемы
- Схемы для контента и навигации
- Коммерческие схемы
- Специализированные схемы
- @id, @graph и вложенность
- Как внедрять в Laravel
- Проверка и частые ошибки
- Чеклист перед релизом
Что такое Schema.org и зачем она нужна?
Schema.org — совместный проект Google, Bing, Yahoo и Yandex для стандартизации структурированных данных на страницах. Простыми словами, это способ объяснить поисковым роботам, что именно на странице: статья, услуга, организация, товар или FAQ.
Почему это важно?
- Расширенные сниппеты (Rich Results). Поисковик может показать рейтинг, цену, FAQ, хлебные крошки, шаги инструкции. Это часто повышает CTR даже без роста позиции.
- Понимание контекста. Структурированные данные помогают точнее сопоставить страницу с запросом.
- Голосовой поиск и AI-ответы. Ассистенты и генеративные системы охотнее опираются на машинно-читаемые факты.
Ограничение Google: наличие разметки не означает, что rich result обязательно появится. FAQ, HowTo, Product и рейтинги показываются выборочно. Особенно рискованны «нарисованные» отзывы без реальных review на странице.
Основные форматы разметки
- JSON-LD (рекомендуемый Google и удобный для CMS). Отдельный скрипт
<script type="application/ld+json">. Не смешивается с вёрсткой, легко генерировать из Laravel. - Microdata. Атрибуты
itemscope,itemtype,itempropпрямо в HTML. Сложнее поддерживать. - RDFa. Встречается реже.
Практика Абрамов.ТОП: используйте только JSON-LD. Один формат на сущность, без дублей Microdata + JSON-LD.
Часть 1. Базовые схемы: фундамент сайта
1. Organization / Person (для личного бренда и блога)
Для abramov.top логичнее связка Person + Organization (личный бренд / студия), а не выдуманный офис LocalBusiness, если физической точки приёма клиентов нет.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Person",
"@id": "https://abramov.top/#person",
"name": "Михаил Абрамов",
"url": "https://abramov.top",
"jobTitle": "Fullstack-разработчик",
"worksFor": { "@id": "https://abramov.top/#organization" },
"sameAs": [
"https://t.me/rootseo",
"https://seo-zilla.ru",
"https://scanzilla.ru",
"https://gargarych.ru"
]
},
{
"@type": "Organization",
"@id": "https://abramov.top/#organization",
"name": "Абрамов.ТОП",
"url": "https://abramov.top",
"logo": "https://abramov.top/favicon.png",
"email": "mikhail@abramov.top",
"founder": { "@id": "https://abramov.top/#person" }
}
]
}
Если появится реальный офис с адресом и часами работы — добавляйте LocalBusiness с настоящими данными. Не подставляйте «левые» телефон и адрес ради галочки.
2. WebSite
Описывает сайт целиком. SearchAction добавляйте только если на сайте реально есть поиск по URL вида /search?q=.... Иначе оставьте базовый WebSite без potentialAction.
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://abramov.top/#website",
"url": "https://abramov.top",
"name": "Абрамов.ТОП",
"inLanguage": ["ru", "en"],
"publisher": { "@id": "https://abramov.top/#organization" }
}
Часть 2. Схемы для контента и навигации
BlogPosting / Article / NewsArticle
- BlogPosting — обычные статьи блога.
- NewsArticle — новости с быстрой актуальностью.
- Article — универсальный вариант.
Обязательно указывайте
datePublishedиdateModified, абсолютный URL обложки и автора.
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Полное руководство по Schema.org",
"image": ["https://abramov.top/images/covers/schema-org-guide.jpg"],
"datePublished": "2026-08-02T12:00:00+03:00",
"dateModified": "2026-08-02T17:20:00+03:00",
"author": {
"@type": "Person",
"@id": "https://abramov.top/#person",
"name": "Михаил Абрамов",
"url": "https://abramov.top/ru/about"
},
"publisher": { "@id": "https://abramov.top/#organization" },
"mainEntityOfPage": "https://abramov.top/ru/posts/schema-org-guide"
}
BreadcrumbList
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Главная",
"item": "https://abramov.top/ru"
},
{
"@type": "ListItem",
"position": 2,
"name": "Блог",
"item": "https://abramov.top/ru/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Schema.org",
"item": "https://abramov.top/ru/posts/schema-org-guide"
}
]
}
Часть 3. Коммерческие схемы
Если вы делаете сайты на Laravel или Bitrix, коммерческая разметка — частый запрос от бизнеса.
Product
Для карточки товара или оцифрованной услуги с ценой. Рейтинг добавляйте только если отзывы реально есть на странице.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "SEO-аудит сайта",
"image": "https://abramov.top/images/audit.jpg",
"description": "Технический и коммерческий аудит сайта.",
"sku": "SEO-AUDIT-001",
"brand": { "@type": "Brand", "name": "Абрамов.ТОП" },
"offers": {
"@type": "Offer",
"url": "https://abramov.top/ru/prices",
"priceCurrency": "RUB",
"price": "45000",
"availability": "https://schema.org/InStock",
"priceValidUntil": "2026-12-31"
}
}
Service
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Поисковое продвижение",
"serviceType": "SEO",
"provider": { "@id": "https://abramov.top/#organization" },
"areaServed": { "@type": "Country", "name": "Россия" },
"url": "https://abramov.top/ru/prices"
}
Часть 4. Специализированные схемы
FAQPage
Вопросы и ответы должны быть видимы на странице. Скрытый FAQ только ради разметки — плохая идея.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Сколько стоит SEO-продвижение?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Стоимость зависит от ниши и объёма работ. Ориентир стартует от десятков тысяч рублей в месяц."
}
}]
}
HowTo
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Как добавить JSON-LD на сайт",
"step": [
{
"@type": "HowToStep",
"name": "Соберите данные",
"text": "Возьмите title, URL, даты и автора из модели."
},
{
"@type": "HowToStep",
"name": "Сгенерируйте JSON-LD",
"text": "Сформируйте массив и закодируйте в JSON."
},
{
"@type": "HowToStep",
"name": "Вставьте в шаблон",
"text": "Выведите script type=application/ld+json в layout."
}
]
}
VideoObject
Имеет смысл, если видео реально встроено на странице и есть thumbnail, uploadDate, contentUrl или embedUrl.
Глобальные свойства, @id и вложенность
| Свойство | Зачем | Пример |
|---|---|---|
@id | Стабильный ID сущности | https://abramov.top/#organization |
name | Название | Абрамов.ТОП |
description | Краткое описание | Блог о разработке и SEO |
image | Абсолютный URL картинки | https://.../cover.jpg |
url | Канонический URL | https://abramov.top/ru/blog |
sameAs | Профили и связанные сайты | https://t.me/rootseo |
Связывайте сущности через @id и @graph: Person → Organization → WebSite → BlogPosting. Так данные выглядят как граф, а не набор разрозненных кусков.
Как внедрять Schema.org в Laravel
Практичный путь — сервис, который собирает массив из модели и отдаёт JSON.
// app/Support/Schema/BlogPostingSchema.php
final class BlogPostingSchema
{
public static function make(Post $post): array
{
return [
'@context' => 'https://schema.org',
'@type' => 'BlogPosting',
'headline' => $post->title,
'datePublished' => optional($post->published_at)?->toIso8601String(),
'dateModified' => optional($post->updated_at)?->toIso8601String(),
'image' => array_filter([$post->coverUrl()]),
'author' => [
'@type' => 'Person',
'@id' => 'https://abramov.top/#person',
'name' => 'Михаил Абрамов',
'url' => 'https://abramov.top/ru/about',
],
'mainEntityOfPage' => url('/'.app()->getLocale().'/posts/'.$post->slug),
];
}
}
В Blade:
@php
$schema = \App\Support\Schema\BlogPostingSchema::make($post);
@endphp
<script type="application/ld+json">{!! json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) !!}</script>
Для WordPress обычно хватает Rank Math / Yoast, а кастомные сущности дописывают хуками. Для Laravel/Bitrix кастомный генератор почти всегда чище плагинного «зоопарка».
Что логично закрыть на abramov.top в первую очередь
Person+Organization+WebSiteна главной и в layout.BlogPostingна страницах постов.BreadcrumbListв блоге.Service/ офферы на странице прайса — по мере необходимости.
Как проверить разметку
- Rich Results Test (Google)
- Schema Markup Validator
- Яндекс Вебмастер → инструменты проверки микроразметки / структурированных данных
Не проверяйте только одну страницу. Пройдитесь по ключевым шаблонам: главная, пост, прайс, контакты.
Частые ошибки
- В разметке есть то, чего нет на странице для пользователя.
- Относительные URL картинок вместо абсолютных.
- Дубли JSON-LD и Microdata на одну сущность.
- Фейковый AggregateRating.
- SearchAction без реального поиска.
- Устаревшие свойства без сверки с schema.org.
Чеклист перед релизом
- Формат только JSON-LD.
- Все URL абсолютные (http/https).
- Контент разметки совпадает с видимым контентом.
- У статей есть datePublished / dateModified / author / image.
- Сущности связаны через @id, где это уместно.
- Нет фейковых рейтингов и скрытого FAQ.
- Страница проходит Rich Results Test и Schema Validator без критических ошибок.
- Для RU/EN версий указан корректный inLanguage / URL локали.
Заключение
Schema.org — не волшебная кнопка «в ТОП», а инженерная дисциплина: вы делаете смысл страницы явным для машин. В связке с качественным контентом, скоростью и технической чистотой это усиливает SEO и CTR.
Если нужен аудит микроразметки или внедрение схем для Laravel/Bitrix-проекта — напишите в Telegram.
Комментарии
Комментарии появляются после модерации.
Опубликованных комментариев пока нет. Будьте первым.