Коротка відповідь
JSON-LD описує факти сторінки: title і автора, breadcrumbs чи ідентичність продукту. Обирайте відповідний тип, точні дати й URL та безпечну серіалізацію. Валідність не гарантує rich result чи позицію.
Не додавайте вигадані рейтинги, відгуки, ціни, availability чи expertise для optional-полів. Розширення можна описати SoftwareApplication без гарантії Google-enhancement. Розділяйте словник schema й вимоги конкретних функцій Google.
Практичні кроки реалізації
Узгодьте сутності з вмістом
Перелічіть сутності й малий graph: автор, сторінка чи article, breadcrumbs. Сталі IDs пов’язують сутність маршрутів. Не генеруйте суперечливі objects компонентами. Graph має походити з того самого запису, що heading і body.
Збережіть дати й мову
datePublished — оригінал, dateModified — змістовні зміни. Не оновлюйте publication заради новизни. Переклад описує видиму мову й canonical із доречним lifecycle джерела. Author URL та images мають бути доступними й відповідати сутності.
Серіалізуйте як дані
JSON.stringify створює JSON, але closing-script у рядках може впливати на HTML. Escape символів less-than перед вставкою. Окремо перевіряйте поля й URL. JsonLd-компонент репозиторію вже робить це; це приклад коду, не повна гарантія інших значень.
Перевірте синтаксис і придатність
Перевірте source й parse JSON. Rich Results Test перевіряє підтримувані функції; звірте required і recommended. Syntax не доводить правди чи видимості. Після deploy перевірте Search Console без очікування enhancement усіх сторінок.
Приклад реалізації
Компонент слідує Next.js. Об’єкт має походити з серверно контрольованого контенту; зовнішні поля перевіряйте. Код відповідає основному escaping репозиторію.
export function JsonLd({ data }: { data: Record<string, unknown> }) {
const serialized = JSON.stringify(data).replace(/</g, "\u003c");
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: serialized }}
/>
);
}
Для article використовуйте перевірені headline, author, URL, dates, language й images. Невідоме пропускайте. Якщо rating чи review не підтримані змістом і правилами, не вигадуйте число.
Компроміси та альтернативи
Helper зменшує помилки й непослідовного автора, а page-level зберігає зміст. Не додавайте всі типи всім маршрутам. Малий точний graph легший за великий із непідтвердженим маркетингом.
Поширені помилки
- Невидимі твердження.
- Вигадані рейтинги чи відгуки.
- Validity як eligibility.
- Нові publication при build.
- JSON без безпечної серіалізації.
Контрольний список перед випуском
- Типи відповідають сторінці.
- Поля перевірені й видимі.
- URL, dates, images і мова узгоджені.
- Less-than escaped.
- Syntax і правила окремо.
- Заяви appearance мають докази.
Поширені запитання
Чи кожній сторінці потрібен FAQ-markup?
Лише справжній видимий FAQ з поточною придатністю. Розділ і JSON-LD не дають автоматичного права на rich result.
Чи structured data компенсує слабку статтю?
Ні. Він описує, не додає пояснення, приклади чи докази. Редакційна робота окрема.
Висновок
Опишіть реальні сутності, безпечно серіалізуйте й перевірте функцію. Не додавайте непідтверджене; оцінюйте поведінку після deploy без обіцянок від markup.
Первинні джерела
Пов’язані посібники та приклади
Потрібно реалізувати це у вашому продукті?
Перегляньте відповідні приклади продуктів або поділіться контекстом розробки вебзастосунку, розширення Chrome, API чи SaaS.