Битый JSON-LD роняет сайт: как этого избежать
Одна лишняя запятая в JSON-LD — и сайт не открывается с белым экраном. Обычные кастомные плагины падают на невалидном JSON. Разбираем, как Reemake AI Schema Manager решает эту проблему через 4 уровня защиты.
Что обычно ломается
Как битый JSON роняет сайт
Лишняя запятая
Последняя запятая перед закрывающей скобкой — самая частая ошибка. Парсер падает.
Незакрытая кавычка
Одна кавычка в строке — весь блок становится невалидным.
Кириллица без кавычек
Русские буквы в JSON должны быть в кавычках. Без них — ошибка парсинга.
Комментарии в JSON
JSON не поддерживает комментарии. Добавили // текст — блок сломан.
4 уровня защиты
Как AI Schema Manager изолирует ошибки
1. Try-catch на всём событии. Ошибка внутри onBeforeCompileHead логируется, но не пробрасывается наверх. Сайт продолжает работать.
2. Валидация JSON. Каждое правило проверяется через json_decode перед добавлением в head. Невалидные блоки просто пропускаются.
3. Логирование. Все проблемные правила записываются в /administrator/logs/reemake_ai.php. С указанием номера строки в настройках.
4. Fallback. Если правило невалидно — плагин пропускает его, но выводит остальные. Одна ошибка не блокирует весь набор.
Код
Как это выглядит в плагине
public function onBeforeCompileHead(): void
{
try {
$rules = $this->parseRules();
foreach ($rules as $url => $json) {
if (json_decode($json) === null) {
$this->log('Broken JSON for ' . $url);
continue;
}
$this->addTag($json);
}
} catch (\Throwable $e) {
$this->log($e->getMessage(), 'error');
}
}Кейс · Симметрия
Как мебельная компания избежала падения
Ситуация: «Симметрия» — мебельная компания из Перми. Ранее разметка делалась через кастомный плагин, который добавлял JSON-LD без проверки. Однажды после правки разметки (забыли закрывающую скобку) сайт упал с белым экраном. Простой — 40 минут.
Что сделали: заменили кастомный плагин на Reemake AI Schema Manager. Все правила перенесли в одно поле. Ошибку (незакрытую скобку) оставили для теста — плагин её просто проигнорировал, в лог записал предупреждение, сайт продолжил работать.
Результат: после этого за полгода — ни одного падения по вине разметки. Редакторы спокойно правят JSON, зная, что ошибка не убьёт сайт.
Вопросы и ответы
Частые вопросы
Как узнать, что правило сломано?
В логах Joomla: /administrator/logs/reemake_ai.php. Там будет указан URL, для которого JSON невалиден, и текст ошибки парсера.
Остановится ли плагин при ошибке?
Нет. Он пропустит сломанное правило и обработает остальные. Сайт продолжит работать, SEO-эффект остальных страниц сохранится.
Можно ли увидеть ошибку в интерфейсе?
Нет, только в логах. Так пользователи не видят технических деталей, а разработчик видит полную картину.
Поможет ли это, если ошибка в самом коде плагина?
Да. Весь код обёрнут в try-catch. Любая внутренняя ошибка логируется, но не пробрасывается наверх.
Разметка роняет сайт?
Проверим правила, установим безопасный инжектор с изоляцией ошибок. Покажем логи и валидацию.
Обсудить задачу →




Messenger Max