NEW CASE
Antana

Створюємо цифрові рішення, які працюють на бізнес


Зателефонуйте нам +38 (066) 35-14-529

Зробімо перший крок до вашого сайту — напишіть нам

Закрити
Інструменти

Перевірка розмітки Schema.org

Синтаксис JSON-LD, обовʼязкові поля за типом і логічні помилки.

Безкоштовний аудит

Розмітка — лише одна з десятків речей, які перевіряє Google

Інструмент перевіряє одну річ. Ми безкоштовно пройдемо весь сайт і надішлемо звіт: що заважає вам у Google і що виправити першим.

  • Індексація й технічні помилки
  • Швидкість і Core Web Vitals
  • Мета-теги, розмітка, дублі
  • План виправлень за пріоритетом

Звіт за 1–2 робочі дні. Без зобовʼязань — якщо все гаразд, так і скажемо.

Натискаючи кнопку, ви погоджуєтесь із політикою конфіденційності

Що перевіряє валідатор

Розмітка з помилкою не працює мовчки: розширений результат просто не зʼявляється, і зрозуміти чому без перевірки складно.

Синтаксис JSON Зайва кома перед дужкою, одинарні лапки замість подвійних, коментарі — кожна з цих дрібниць робить весь блок нечитабельним.
@context і @type Без контексту блок не звʼязується зі словником schema.org. Без типу незрозуміло, що саме ви описуєте.
Обовʼязкові поля Для кожного типу свій набір. У LocalBusiness без адреси, у Product без назви розмітка не має сенсу.
Рекомендовані поля Без них розмітка працює, але результат бідніший. Показуємо окремо від обовʼязкових, щоб було видно різницю.
Логічні помилки Оцінка 7 із 5, ціна словами, дата у форматі 15.01.2026, відносна адреса замість повної — формально валідно, фактично не працює.
Вкладені сутності Розмітка часто містить сутності всередині сутностей: Offer у Product, Question у FAQPage. Перевіряємо кожну окремо.

Важливо: коректна розмітка не гарантує розширеного результату в Google. Рішення завжди за пошуковою системою, і жоден сторонній валідатор не може його передбачити.

Найчастіші типи й що в них потрібно

Organization Обовʼязкове лише name. Але без logo, url і sameAs користі мало — саме вони звʼязують сайт із профілями компанії.
LocalBusiness Потрібні name і address. Для локальної видачі додайте telephone, openingHours і geo з координатами.
Article Обовʼязковий headline. Автор, дата публікації й зображення потрібні для повноцінного вигляду у видачі.
Product Назва обовʼязкова, решта — offers із ціною, зображення й рейтинг — саме те, що показується в результатах.
FAQPage Потрібен mainEntity зі списком Question, у кожного — acceptedAnswer. Відповіді мають бути на самій сторінці.
BreadcrumbList Список itemListElement із позиціями. Замінює довгу адресу в результаті на зрозумілий шлях.

За що Google знімає розширений результат

Дані не збігаються зі сторінкою У розмітці ціна 500, на сторінці 900. Це вважається обманом, і санкція знімає розширений результат по всьому сайту, а не лише на цій сторінці.
Рейтинг без відгуків AggregateRating на сторінці, де відгуків немає взагалі. Найчастіша причина ручних санкцій за розмітку.
FAQ без відповідей на сторінці Питання є тільки в розмітці, а в тексті сторінки їх немає. Google це перевіряє й розмітку відкидає.
Розмітка чужого вмісту Описувати як свій товар те, чого на сторінці немає, або чужі відгуки. Формально валідно, але порушує правила.

Порядок роботи з розміткою

1 Спершу синтаксис Якщо JSON нечинний, решта не має значення: блок не читається взагалі й не впливає ні на що.
2 Потім обовʼязкові поля Без них тип вважається неповним. Рекомендовані додавайте після того, як обовʼязкові на місці.
3 Звірте зі сторінкою Кожне значення в розмітці має бути видно людині на самій сторінці. Це головне правило, і саме його порушення карається.
4 Перевірте в Google Наш валідатор ловить помилки коду, але остаточну відповідь про розширений результат дає лише інструмент самої пошукової системи.

Типові помилки в розмітці та як їх виправити

Дев'ять речей, які валідатор ловить найчастіше. Для кожної — як виглядає зламаний код і як має бути. Більшість із них Google мовчки пропускає: розмітка просто не працює, і ви про це не дізнаєтесь.

1. Кома після останнього елемента

JSON суворіший за JavaScript: зайва кома перед } або ] ламає весь блок. Браузер не скаржиться, Google розмітку не читає.

// було
{ "@type": "Organization", "name": "BB STUDIO", }

// стало
{ "@type": "Organization", "name": "BB STUDIO" }

2. Одинарні лапки

У JSON лапки лише подвійні. Код із одинарними виглядає робочим, але не парситься.

// було
{ '@type': 'Article', 'headline': 'Заголовок' }

// стало
{ "@type": "Article", "headline": "Заголовок" }

3. Немає @context

Без "@context": "https://schema.org" парсер не знає, що Product — це тип зі Schema.org, а не довільне слово. Блок ігнорується цілком.

// було
{ "@type": "Product", "name": "Ноутбук" }

// стало
{ "@context": "https://schema.org", "@type": "Product", "name": "Ноутбук" }

4. Коментарі всередині JSON

Розробник лишив // TODO або /* ... */ — і це вже не JSON. Коментарі треба прибрати повністю.

5. Немає обов'язкового поля

Для Article це headline, для Product — name, для Event — name, startDate і location. Без них Google не покаже розширений результат, навіть якщо все інше ідеально. Повна таблиця — нижче.

6. Рейтинг без відгуків на сторінці

Найнебезпечніша помилка: aggregateRating стоїть на сторінці, де жодного відгуку не видно. Google називає це self-serving reviews і саме за це найчастіше дає ручні санкції — зникають усі розширені сніпети сайту, не лише цей.

// було — на кожній сторінці сайту
{ "@type": "Organization", "name": "...",
  "aggregateRating": { "ratingValue": "5", "reviewCount": "9" } }

// стало — лише на сторінці, де відгуки є текстом
{ "@type": "Organization", "name": "..." }

7. Ціна рядком із валютою

"price": "9 900 грн" — не число. Має бути "price": "9900" і окремо "priceCurrency": "UAH".

// було
"offers": { "@type": "Offer", "price": "від 9 900 грн" }

// стало
"offers": { "@type": "Offer", "price": "9900", "priceCurrency": "UAH" }

8. Дата не в ISO 8601

"datePublished": "12.09.2026" парсер не зрозуміє. Правильно — "2026-09-12" або з часом і зоною: "2026-09-12T10:00:00+03:00".

9. Розмітка не збігається з тим, що на сторінці

У коді ціна 9 900, на сторінці 12 900. У коді п'ять питань FAQ, на сторінці три. Google порівнює розмітку з видимим вмістом, і розбіжність карається так само, як прихований текст. Розмітка описує сторінку, а не прикрашає її.

Обов'язкові та рекомендовані поля за типами

Ті самі правила, за якими працює валідатор. Без обов'язкових полів розширеного результату не буде; рекомендовані підвищують шанс його отримати.

ТипОбов'язковоРекомендовано
Organizationnameurl, logo, sameAs, contactPoint
LocalBusinessname, addresstelephone, openingHours, geo, url, image, priceRange
Article / BlogPostingheadlineauthor, datePublished, dateModified, image, publisher
Productnameimage, offers, description, brand, sku, aggregateRating
Offerprice, priceCurrencyavailability, url, priceValidUntil
FAQPagemainEntity (Question з name і acceptedAnswer)—
BreadcrumbListitemListElement—
Eventname, startDate, locationendDate, description, offers, image
Servicenameprovider, areaServed, description
WebSitename, urlpotentialAction (пошук по сайту)
VideoObjectname, thumbnailUrl, uploadDatedescription, duration, contentUrl

Для Product зверніть увагу: aggregateRating у рекомендованих — але лише якщо на сторінці справді є відгуки. Інакше див. помилку №6.

Що робити після перевірки

Валідатор каже «помилок немає» — це означає, що код коректний, а не що Google покаже зірочки чи FAQ у видачі. Розширені результати — рішення Google, і він ухвалює його по-різному для різних сайтів і запитів. Що залежить від вас: правильний тип під вміст сторінки, обов'язкові поля, збіг розмітки з текстом і відсутність речей із пункту 6.

Детальніше про те, які типи розмітки реально дають розширені сніпети у 2026 році, за що Google їх знімає й чому LocalBusiness без адреси гірше, ніж без розмітки взагалі, — у статті «Розмітка Schema.org: що дає і за що Google знімає». А генератор розмітки складе коректний JSON-LD для типових випадків — Organization, Article, FAQ, Product — щоб не писати його руками.

Часті запитання

Чи гарантує коректна розмітка розширений результат?
Ні. Розмітка без помилок — необхідна умова, але не достатня. Google вирішує сам, спираючись на якість сторінки, довіру до сайту й тип запиту. Жоден сторонній валідатор цього передбачити не може, і обіцянки протилежного варто сприймати обережно.
За що можна отримати санкцію за розмітку?
Найчастіше — за рейтинг на сторінці без жодного відгуку й за розбіжність даних: у розмітці одна ціна, на сторінці інша. Санкція знімає розширені результати по всьому сайту, а не лише на проблемній сторінці, тому ризик значно більший за виграш.
JSON-LD чи мікродані в атрибутах?
Google рекомендує JSON-LD: він лежить окремим блоком і не змішується з версткою, тому його простіше правити й важче зламати при зміні дизайну. Мікродані працюють теж, але цей валідатор перевіряє саме JSON-LD.
Скільки блоків розмітки можна на одній сторінці?
Обмеження немає, і кілька блоків — нормальна практика: Organization, BreadcrumbList і Article на одній сторінці не конфліктують. Але описувати треба лише те, що справді на ній є: зайві сутності користі не дають, а ризик помилки збільшують.
Чому валідатор каже про помилку, а Google приймає розмітку?
Ми розділяємо обовʼязкові й рекомендовані поля. Google може прийняти блок без рекомендованих, але результат буде біднішим: без зображення й дати стаття у видачі виглядає скромніше. Помилками ми називаємо лише те, без чого тип неповний за специфікацією.
Чому валідатор не показує, чи буде розширений результат?
Бо цього не знає ніхто, крім Google. Валідатор перевіряє те, що можна перевірити: синтаксис, обовʼязкові поля, типові помилки. Чи показати зірочки або FAQ у видачі — Google вирішує окремо для кожного сайту й запиту, і може передумати. Коректна розмітка — необхідна умова, не достатня.
Можна перевірити розмітку сторінки, яка ще не опублікована?
Так — вкладка «Вставити код». Скопіюйте вміст тегу script type="application/ld+json" і вставте в поле. Перевірка та сама, що й за адресою, лише без завантаження сторінки. Зручно для шаблонів, які тестуються локально, і для коду з генератора перед тим, як ставити його на сайт.
Яку розмітку ставити на сторінку послуги?
Service з provider — посиланням на Organization сайту — і areaServed. Ціну можна додати через offers з priceSpecification, але без availability: InStock — це складська семантика для товарів, і на послузі вона змушує Google читати сторінку як товарну картку. Якщо на сторінці є блок питань — окремий FAQPage. aggregateRating — лише якщо відгуки видно на цій самій сторінці.
Telegram Viber Подзвонити