Skip to content

JSON-LD Schema.org у Next.js App Router: повний довідник (2026)

Schema.org - не набір HTML-тегів, а специфікація графа сутностей. Різниця визначає результат: сайт з JSON-LD як тегами отримує рідкісні rich snippets; сайт з JSON-LD як knowledge graph отримує стійке представлення сутності в Google Knowledge Graph, AI Overviews та LLM-індексах цитування.

Архітектура JSON-LD Schema.org у Next.js App Router
Опубліковано:Оновлено:Час читання:18 хв

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). Кожен sameAs URL - сигнал підтвердження сутності.
  • @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 | кейси | обговорити проект.

Джерела

Схожі статті

Архітектура веб-продуктивності: системний аналіз 12 інженерних принципів (видання 2026)

Глибокий технічний розбір веб-продуктивності 2026 року: фізика мереж, конвеєри зображень, моделі виконання JavaScript, Critical Rendering Path, edge-обчислення, Core Web Vitals та продакшн RUM - з реальними бенчмарками та конкретними прикладами реалізації.

EngineeringArchitectureCore Web Vitals
Читати статтю

React 19: useOptimistic, use(), Server Actions - механізм і архітектура (2026)

Детальний розбір п'яти нових примітивів React 19: useOptimistic, use(), Server Actions, useActionState, useFormStatus. Action-based mutation архітектура, що замінює Redux/Zustand для серверних мутацій.

React 19ArchitectureNext.js
Читати статтю

Partial Prerendering (PPR) у продакшні: архітектурні патерни (2026)

Детальний розбір Next.js Partial Prerendering у продакшні. Механізм двофазної відповіді, правила розміщення Suspense-меж, взаємодія з Full Route Cache, дизайн fallback для нульового CLS, виміряні TTFB/LCP, порівняння з ISR+CSR та full SSR і фреймворк прийняття рішень.

Next.jsPerformancePPR
Читати статтю