JSON-LD после изменения Google: проверили 1 044 сайта — задело 1,6%, а настоящая проблема у трети
С 21 августа Google снимает HTML-экранирование с разметки JSON-LD один раз вместо двух. Мы проверили 3 167 страниц с 1 044 сайтов: изменение задело лишь 1,6% из них. Зато у 23% сайтов на Shopify в разметке символы, которые не раскодирует ни один обработчик по стандарту, а у 36% сайтов из топа Google разметка записана так, что правильно её читает только Google. Разбираем причины, нашу собственную ошибку и четыре шага проверки.
21 августа Google изменил то, как его робот читает разметку JSON-LD, и отраслевые издания дружно написали «срочно проверьте свою разметку». Мы проверили — не свою, а 1 044 сайта: 748 из первой десятки Google по коммерческим запросам, 295 сайтов наших клиентов и наш собственный. Всего 3 167 страниц. Изменение Google задело 1,6% сайтов. Зато нашлась проблема в двадцать раз шире, о которой не пишет никто, — и одна ошибка у нас самих, которую мы уже исправили.
Что именно изменил Google
Объявление вышло не в документации, а постом Google Search Central в LinkedIn. Ключевая фраза:
«We changed our JSON-LD extraction and are now only applying a single pass of HTML unescaping».
Google Search Central, LinkedIn, 21 августа 2026 годаЧтобы понять, о чём речь, нужен один факт о HTML. В обычном тексте страницы амперсанд пишется как &, а браузер показывает его как «&». Но содержимое тега <script> — а разметка JSON-LD живёт именно в нём — по спецификации HTML считается «сырым текстом»: HTML-сущности там не раскодируются вообще. Спецификация JSON-LD говорит об этом прямо: такие символы «останутся экранированными после обработки».
Google всегда был к этому снисходителен и раскодировал сущности сам. До августа — дважды подряд, так что даже дважды экранированный &amp; превращался в чистый «&». Теперь — один раз. Вот что это значит на примере названия компании:
| Записано в разметке | Google до 21.08 | Google сейчас | Обработчик по стандарту |
|---|---|---|---|
Tom & Jerry | Tom & Jerry | Tom & Jerry | Tom & Jerry |
Tom &amp; Jerry | Tom & Jerry | Tom & Jerry | Tom &amp; Jerry |
Tom \u0026 Jerry | Tom & Jerry | Tom & Jerry | Tom & Jerry |
Tom & Jerry | Tom & Jerry | Tom & Jerry | Tom & Jerry |
Изменение затрагивает только вторую строку — двойное экранирование. Первая строка у Google по-прежнему работает, но только у Google. Последние две — правильные для всех.
Как мы проверяли
Три выборки. Первая — 2 076 страниц из первой десятки Google и источников ИИ-ответов по 48 коммерческим запросам из нашего исследования рекомендаций ИИ: это сайты, которые реально получают трафик по дорогим запросам. Вторая — сайты наших клиентов: главная и до четырёх продвигаемых страниц с каждого, чтобы крупные сайты не перевесили. Третья — 300 случайных страниц нашего собственного сайта. Все страницы скачаны напрямую, без платных сервисов.
На каждой странице мы достали все блоки JSON-LD и прогнали их тремя способами: как Google читал раньше, как читает теперь и как требует стандарт. Итог считаем по сайтам, а не по страницам: страницы одного шаблона повторяют одну ошибку, и счёт по страницам сильно её раздувает. Например, почти половина страниц с двойным экранированием в нашей выборке пришлась на один сайт.
Кого задело изменение: 1,6% сайтов
Из 748 сайтов с разметкой двойное экранирование нашлось у 12. Больше половины из них — издания одной медиагруппы: у них общий шаблон, в котором описание автора проходит экранирование дважды. Поэтому у этих сайтов сейчас в разметке биографии автора стоит буквальный «'» вместо апострофа. Среди сайтов наших клиентов таких два из 295.
Вывод простой: если вы не видели в Search Console новых ошибок структурированных данных после 21 августа, почти наверняка вас это изменение не коснулось. Паника в отраслевых изданиях была несоразмерна масштабу.
Проблема побольше: Shopify и символы, которые не раскодирует никто
Есть второй способ испортить символ, и Google к нему отношения не имеет. Сущность оказывается спрятана внутри JSON-экранирования: в коде стоит \u0026amp;. HTML-раскодирование её не видит — амперсанда в тексте нет, — а после разбора JSON в значении остаётся буквальный «&». Ни один обработчик по стандарту этот мусор не уберёт.
Такое мы нашли у 11 из 47 сайтов на Shopify в топе Google — это 23%. На всех остальных платформах — у 2,3%. Разрыв в десять раз. Дело не в самой платформе, а в шаблонах тем: текст сначала экранируют для HTML, а потом ещё раз упаковывают в JSON фильтром, и сущность проходит насквозь. Чаще всего страдает описание товара — оно приходит из визуального редактора уже с сущностями внутри.
Самая большая проблема: треть сайтов пишет разметку «только для Google»
У 36% сайтов из топа Google и у 23% сайтов наших клиентов внутри JSON-LD есть обычные HTML-сущности: &, ", '. Google их по-прежнему понимает — одного прохода раскодирования хватает. Но это единственный, кто так делает по собственной воле. Стандарт требует читать их буквально, поэтому любой другой потребитель разметки — другие поисковики, валидаторы, сервисы, которые собирают данные о товарах и компаниях по спецификации, — увидит в названии «Tom & Jerry».
Почти все эти символы безопасно записывать в JSON как есть: и амперсанд, и кавычки-ёлочки, и апостроф. Обычные прямые кавычки внутри строки JSON экранируются обратной косой чертой, а не HTML-сущностью. Единственное, чего внутри тега script действительно нельзя, — последовательности, которые браузер примет за конец скрипта. Для них, как и советует Google, есть JSON-экранирование: \u003C вместо «<» и \u0026 вместо «&».
Проверили на себе — и нашли
У нашего сайта разметка есть на всех 300 проверенных страницах, и двойного экранирования не нашлось. Но две страницы попали в класс «только для Google»: в хлебных крошках название английской статьи уходило в разметку как «Web 2.0 & Cascade Promotion».
Причина — ровно та, из-за которой сущности чаще всего и попадают в JSON-LD. Шаблон страницы экранирует заголовок для вывода в HTML, а код, который строит хлебные крошки, берёт уже экранированную строку и кладёт её в JSON. На экране всё выглядит правильно, в разметке — нет. Мы исправили это 29 сентября одной строкой: перед упаковкой в JSON строка раскодируется обратно. Проверили заново — сущностей в разметке ноль.
Как проверить и исправить свой сайт
Найдите сущности в разметке
Откройте код страницы, найдите блоки application/ld+json и поищите в них символ амперсанда. Любая последовательность вида &, ", ' или \u0026amp; внутри этих блоков — повод для правки. Проверьте хотя бы по одной странице каждого шаблона: главную, товар, статью, категорию.
\u0026.Найдите место, где текст экранируется дважды
Почти всегда причина одна: в JSON попадает строка, уже подготовленная для вывода в HTML. Ищите в коде, откуда берутся значения разметки: заголовок, описание, имя автора. Если перед упаковкой в JSON к ним применяется экранирование для HTML — это и есть ошибка.
// Плохо: строка уже экранирована для HTML — сущности уйдут в JSON-LD
$title = htmlspecialchars($post['title']);
echo json_encode(['headline' => $title]);
// Хорошо: в JSON — исходный текст, а флаги сами превратят & и < в \u0026 и \u003C
echo json_encode(['headline' => $post['title']],
JSON_HEX_TAG | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
Если сайт на Shopify — проверьте тему
Ищите в шаблоне разметки фильтр экранирования, применённый до фильтра json, и описание товара, которое приходит из визуального редактора с сущностями внутри. Порядок фильтров здесь решает: экранировать для HTML нужно то, что выводится на страницу, а в JSON — отдавать исходный текст.
\u0026amp;, \u0026quot; и \u0026#39;.Проверьте результат инструментами Google
Прогоните страницу через проверку расширенных результатов и через проверку URL в Search Console. Посмотрите не только «ошибок нет», а сами значения полей: название, описание, имя автора. Именно там видно буквальное «&», которое валидатор ошибкой не считает.
Частые вопросы
Что именно изменил Google в разборе JSON-LD 21 августа 2026 года?
Раньше Google снимал HTML-экранирование с разметки дважды, теперь — один раз. Поэтому дважды экранированный символ, например амперсанд, записанный как сущность от сущности, теперь попадает в значение не как символ, а как текст сущности. Обычные, однократно экранированные сущности Google по-прежнему понимает.
Как понять, задело ли изменение мой сайт?
Откройте код страницы и поищите внутри блоков JSON-LD сущности, записанные дважды: после амперсанда идёт слово amp, а затем ещё одна сущность. В нашей проверке такое нашлось только у 1,6% сайтов из топа Google и у 0,7% сайтов клиентов, причём больше половины случаев — один шаблон одной медиагруппы.
Нужно ли убирать из разметки HTML-сущности, если Google их понимает?
Да, если вам важно, чтобы разметку правильно читали не только в Google. Стандарт JSON-LD требует понимать такие сущности буквально, и любой обработчик, который следует спецификации, увидит в значении текст сущности вместо символа. В нашей проверке так записана разметка у 36% сайтов из топа Google.
Как правильно записать амперсанд и кавычки в JSON-LD?
Проще всего как есть: внутри тега script амперсанд, апостроф и типографские кавычки безопасны. Прямые кавычки внутри строки экранируются обратной косой чертой по правилам JSON. Если нужна полная защита от случайного закрытия тега script, используйте JSON-экранирование: \u0026 для амперсанда и \u003C для знака «меньше».
Почему на Shopify испорченные символы встречаются чаще?
Не из-за самой платформы, а из-за шаблонов тем. Текст сначала экранируется для вывода в HTML, а затем упаковывается в JSON, и сущность оказывается спрятана внутри JSON-экранирования. В нашей выборке так у 23% сайтов на Shopify против 2,3% на остальных платформах.
Влияет ли ошибка в JSON-LD на позиции?
Напрямую — нет: разметка отвечает за то, как страница может выглядеть в выдаче и насколько точно машины понимают её данные. Но испорченное значение попадёт в расширенный сниппет, в карточку товара или в чужую систему, которая читает разметку, именно в испорченном виде. Исправление обычно занимает одну строку кода.
Источники: пост Google Search Central в LinkedIn (21 августа 2026), спецификация JSON-LD 1.1 W3C, раздел 7.2, спецификация HTML (WHATWG) о сырых текстовых элементах. Собственные данные — 3 167 страниц с 1 271 сайта, скачанных 29 сентября 2026 года: топ-10 Google по 48 коммерческим запросам, сайты клиентов PromoPilot (без названий) и 300 страниц promopilot.link.