JSON-LD Schema.org - одночасно найменш використовувана SEO-техніка (більшість сайтів не мають структурованих даних або мають зламані) і найефективніша одиночна зміна (правильно реалізована схема Product з AggregateRating дає зіркові рейтинги у SERP без додаткової контентної роботи). У цій статті розбираю три речі: модель entity graph Schema.org - як @id-лінкування з'єднує розрізнені JSON-LD блоки у представлення знань, яке реально використовують Google і LLM-системи; архітектуру інʼєкції у Next.js App Router - що вміє generateMetadata(), а що ні, чому Server Component <script> - правильний патерн, і XSS-вектор у dangerouslySetInnerHTML, який більшість залишає відкритим; і картину eligibility Google rich results у 2026 - що працює, що застаріло (HowTo, вер. 2023), що обмежено (FAQPage, серп. 2023), і навіщо зберігати 'невинагороджені' структуровані дані для AI/LLM-цитування.
Частина I - Модель entity graph: Schema.org - не теговий словник
- @id лінкування: Кожна сутність, на яку посилаються інші, має мати
@id- глобально унікальний URI.BlogPostingз"author": { "@id": "https://samcheek.com/about#person" }посилається на відому ідентифіковану сутність, описану на сторінці About. Google накопичує докази про сутність і саме так особисті бренди отримують записи Knowledge Panel. - @graph патерн: Кілька пов'язаних сутностей сторінки об'єднуються в один JSON-LD блок під
"@graph": [...]. Чистіше, ніж кілька<script>тегів, і робить зв'язки між сутностями явними. - sameAs: Зв'язує сутність з її представленнями на авторитетних джерелах (LinkedIn, GitHub, Wikidata). Кожен
sameAsURL - сигнал підтвердження сутності. - @context обов'язковий: Без
"@context": "https://schema.org"типи та властивості - довільні рядки без семантики. Нульова цінність структурованих даних.
Частина II - JSON-LD: чому це єдиний правильний формат
- Microdata: HTML-атрибути
itemscope/itemtype/itempropу розмітці. Тісна прив'язка до DOM - будь-який рефактор розмітки мовчки ламає схему. - RDFa: XML-простори імен у HTML. Ті самі проблеми зв'язаності, що у Microdata.
- JSON-LD: Блок
<script type="application/ld+json">, повністю відокремлений від HTML. Презентаційно-незалежний, безпечний до рефакторингу, рекомендований формат Google. Не виконується браузером як JavaScript.
Частина III - Архітектура інʼєкції у Next.js App Router
- `generateMetadata()` НЕ підтримує JSON-LD: API
Metadataуправляє<title>,<meta>,<link rel>- але не довільними<script>тегами. - Server Component `<script>` інʼєкція (правильний патерн):
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }} />. Рендериться у початковий серверний HTML. - XSS через dangerouslySetInnerHTML:
JSON.stringify(data)може містити</script>. Виправлення:JSON.stringify(data).replace(/</g, '\\u003c'). Критично для user-generated content (назви продуктів, тексти відгуків). - Стратегія розміщення: Site-level сутності (
WebSite,Person) - вapp/layout.tsx. Page-level сутності (Article,Product,BreadcrumbList) - уpage.tsxкожного маршруту.
Частина IV - Site-level схема та Content Schema
- WebSite + SearchAction (Sitelinks Searchbox):
potentialAction.SearchActionзurlTemplate- тригерить пошуковий віджет Sitelinks у брендованих SERP. - Person (особистий бренд):
name,url,image,jobTitle,sameAs(масив URL соцпрофілів),address,knowsAbout. URI@id- персистентний ідентифікатор сутності для всіх article та review схем. - BlogPosting обов'язкові поля:
headline(≤ 110 символів),image(min 1200×630px),datePublished(ISO 8601:"2026-03-18"- не"18 березня 2026"),authorз@id. Відсутність будь-якого - пригнічення eligibility rich result. - author @id entity linking:
"author": { "@type": "Person", "@id": "https://samcheek.com/about#person" }. Google слідує@id-посиланню на Person-сутність зknowsAboutіsameAsпри оцінці E-E-A-T статті.
Частина V - Product, FAQPage та застарілі типи
- Product rich results:
name,image,offers.price(рядок:"29.99"),offers.priceCurrency(ISO 4217),offers.availability. AggregateRating:ratingValue,ratingCountобов'язкові. Повна архітектура Product-схеми для headless Shopify - у гайді з headless Shopify. - FAQPage після серпня 2023: Google прибрав FAQPage accordion rich results для комерційних сайтів. Залишається для урядових та медичних. Цінність для AI/LLM: структура
Question+acceptedAnswer.textзабезпечує AI-системам дані з високою точністю вилучення.acceptedAnswer.text- повна самодостатня відповідь. - HowTo - застарів вересень 2023: Видалити з комерційних сайтів. Нульова цінність + попередження у Rich Results Test.
- Часті помилки: Відсутній
@context; регістр@type(PascalCase);datePublished- лише ISO 8601;price- рядок, не число; відносні URL; XSS черезdangerouslySetInnerHTML.
Частина VI - BreadcrumbList та валідація
- BreadcrumbList: Змінює відображення URL у SERP з технічного шляху на читаний хлібний шлях. Обов'язкове відповідність візуальній навігації - розбіжність може спричинити ручну дію Google.
- Google Rich Results Test: Перевіряє eligibility rich results, обов'язкові поля, попередження та помилки для окремого URL або HTML.
- Schema.org Validator (validator.schema.org): Перевіряє відповідність специфікації Schema.org. Використовувати обидва інструменти разом.
- Google Search Console - звіт Enhancements: Показує виявлені типи rich results, кількість елементів, помилки та попередження у масштабі всього сайту.
Висновок
Структуровані дані як entity graph з @id-лінкуванням, sameAs-перехресними посиланнями та повними обов'язковими полями дають накопичувальну цінність, яку теговий чеклист не дає. Миттєва цінність - SERP-покращення; довгострокова - представлення сутності в Knowledge Graph, яке робить сайт джерелом цитування в AI Overviews і LLM-пошуку. Для аудиту структурованих даних або повного technical SEO - сервіс technical SEO & schema | кейси | обговорити проект.
Джерела
- Schema.org. 'Full Hierarchy': https://schema.org/docs/full.html
- Google. 'Introduction to Structured Data': https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
- Google. 'Rich Results Types': https://developers.google.com/search/docs/appearance/structured-data/search-gallery
- Google. 'FAQPage update (August 2023)': https://developers.google.com/search/blog/2023/08/howto-faq-changes
- W3C. 'JSON-LD 1.1 Specification': https://www.w3.org/TR/json-ld11/
- Google. 'Rich Results Test': https://search.google.com/test/rich-results
- Schema.org Validator: https://validator.schema.org
