Updating failed. The response is not a valid JSON response — ошибка редактора WordPress
Редактор не сохраняет запись и пишет Updating failed. The response is not a valid JSON response. Редактор отправил запись на сервер, а вместо ответа получил обычную страницу — с ошибкой 404, 403 или 500.
Содержание 9
Что сделать прямо сейчас
- Откройте в браузере адрес сайта с /wp-json/ на конце — шаг 1.
- Если там ошибка 404, настройте постоянные ссылки — шаг 2.
- Если 403 — найдите, что закрывает этот адрес — шаг 3.
- Если над текстом видны строки Warning или Notice — уберите вывод ошибок PHP — шаг 4.
Что означает ошибка
Редактор WordPress сохраняет запись не обычной отправкой формы, а запросом к встроенному программному интерфейсу — REST API. Ответ должен прийти в формате JSON: это текст с данными в фигурных скобках. Если сервер вернул вместо него страницу — например, страницу ошибки 404, — редактор не может её разобрать и пишет, что ответ не JSON.
Первое слово зависит от того, что вы делали:
| Текст | Когда появляется |
|---|---|
Updating failed. | При сохранении опубликованной записи |
Publishing failed. | При публикации |
Scheduling failed. | При отложенной публикации |
Updating failed because you were offline. | Пропал интернет: проверьте подключение и сохраните ещё раз |
Шаг 1. Откройте адрес /wp-json/
Допишите к адресу сайта /wp-json/ и откройте его в браузере, например https://example.com/wp-json/. Если всё в порядке, вы увидите текст, который начинается с {"name": и названия вашего сайта. Браузер может показать его сплошным текстом или в виде дерева — оба варианта верные.
Если открылась страница с ошибкой, посмотрите, с какой:
| Что видно | Куда идти |
|---|---|
| Ошибка 404 или страница «не найдено» вашей темы | Шаг 2 |
| Ошибка 403 или сообщение плагина защиты | Шаг 3 |
| Над текстом в фигурных скобках — строки Warning, Notice или Deprecated | Шаг 4 |
| Текст с {"name": открылся без ошибок | Шаг 5 |
Шаг 2. Ответ 404: настройте постоянные ссылки
Откройте второй адрес — https://example.com/?rest_route=/. Он работает и без постоянных ссылок. Если по нему текст с {"name": открывается, а по /wp-json/ — 404, сервер не передаёт красивые адреса в WordPress.
На хостинге откройте в админке «Настройки → Постоянные ссылки» — адрес https://example.com/wp-admin/options-permalink.php — и нажмите кнопку сохранения внизу, ничего не меняя. WordPress заново запишет правила постоянных ссылок в файл .htaccess, если сервер разрешает в него писать.
На VPS с nginx адреса, которых нет среди файлов, нужно отдавать в index.php строкой try_files. Как её добавить, рассказано на странице ошибки 404.
Шаг 3. Ответ 403: адрес закрыт
Адрес /wp-json/ могут закрывать плагины защиты и правила веб-сервера. Проверьте настройки плагина защиты: у некоторых есть пункт, который отключает REST API. Чтобы проверить быстро, отключите плагин переименованием его папки — как это сделать, рассказано на странице ошибки 500.
Если плагины ни при чём, ищите запрет в настройках сервера — по журналу ошибок, как на странице ошибки 403.
Шаг 4. Над ответом видны предупреждения PHP
Если над текстом в фигурных скобках стоят строки Warning, Notice или Deprecated, PHP выводит свои сообщения прямо в ответ, и редактор не может его разобрать. Откройте wp-config.php и найдите строку WP_DEBUG. Если там true, проверьте, что ниже есть строка, которая запрещает выводить ошибки на страницы:
define( 'WP_DEBUG_DISPLAY', false );Если её нет, добавьте её под строкой WP_DEBUG. Как открыть и сохранить файл, рассказано на странице ошибки 500. Сами предупреждения после этого никуда не денутся — их можно записывать в журнал и разобрать спокойно.
Шаг 5. Если адрес открывается правильно
Значит, REST API работает, а мешает что-то при самом сохранении. Отключайте плагины по одному на странице https://example.com/wp-admin/plugins.php и после каждого пробуйте сохранить запись. Начните с плагинов защиты, кеширования и тех, что ставили последними. Когда запись сохранилась, последний отключённый плагин и мешал.
Если сохранить не выходит и с отключёнными плагинами, включите журнал отладки — как это сделать — и попробуйте сохранить запись: ошибка PHP попадёт в журнал.
Тексты сообщений сверены с исходным кодом WordPress 7.1.3. В русской версии WordPress те же сообщения показаны по-русски — сравнивайте по смыслу.
Источники
- Исходный код WordPress 7.1.3: editor.js — тексты Updating failed, Publishing failed и Scheduling failed.
- Исходный код WordPress 7.1.3: api-fetch.js — текст The response is not a valid JSON response.
- Исходный код WordPress 7.1.3: rest-api.php — адреса /wp-json/ и ?rest_route=/.
- Исходный код WordPress 7.1.3: class-wp-rest-server.php — что показывает адрес /wp-json/.
- Исходный код WordPress 7.1.3: options-permalink.php — страница постоянных ссылок записывает правила в .htaccess.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026