Esta guía guía a los propietarios de sitios WordPress, desarrolladores y personal de soporte de alojamiento a través del diagnóstico y la solución de un error de «respuesta JSON válida».
- Se aplica a: WordPress 6.x (Edición completa del sitio activada)
- Texto de error:
Updating failed. The response is not a valid JSON response.
Resumen rápido de lo que se rompe
- WordPress envía una petición REST API cuando haces clic en Guardar en una parte de la plantilla:
POST /wp-json/wp/v2/template-parts/<ID>
- El servidor devuelve algo que NO es JSON válido (vacío, HTML, 403, 500, etc.).
- El Editor de Sitios muestra la ventana emergente de error genérico.
Como el fallo es del lado del servidor, ninguna actualización del lado del cliente lo solucionará: debes identificar y eliminar el bloqueador del nivel del servidor introducido durante la migración.
Síntomas que puedes ver
Síntoma | Detalles |
---|---|
Error modal | «Error en la actualización. La respuesta no es una respuesta JSON válida». |
Plugins descartados | Desactivar todos los plugins no cambia el resultado. |
El front-end no se ve afectado | El sitio en vivo se visualiza bien; sólo falla el guardado del Editor de Sitios. |
Iniciado tras la migración | El sitio funcionaba en la puesta en escena; se rompió en el momento en que se puso en marcha. |
Comprobaciones de referencia (ya realizadas)
Estos son los culpables habituales que ya se han descartado. Repítelos si estás trabajando desde cero.
- Conflicto de plugins – desactiva todos los plugins.
- Salud del sitio – Herramientas → Salud del sitio no muestra errores críticos relacionados con la API REST.
- Coherencia de URL – Ajustes → General → Tanto la dirección de WordPress como la del sitio utilizan https y un dominio idéntico.
- Enlaces permanentes a ras – Configuración → Enlaces permanentes → Guardar cambios (regenera
.htaccess
). - Purga de caché – borra cualquier capa de caché de servidor / plugin / CDN.
Si el error persiste, pasa al apartado siguiente.
Profundización paso a paso
Consejo: Realiza cada paso y, a continuación, vuelve a probar el ahorro. Detente cuando desaparezca el error.
1 Recopila los Registros de Errores del Servidor (los más reveladores)
Pide a tu proveedor de alojamiento (por ejemplo, GoDaddy) las entradas del registro de errores PHP correspondientes a la hora exacta en que hiciste clic en Guardar. Proporciónales una marca de tiempo (incluye la zona horaria). Busca:
- Errores fatales o advertencias de PHP en las peticiones a
/wp-json/
mod_security
/ Reglas WAF que bloquean los puntos finales REST- Mensajes de permiso denegado o archivo perdido
2 Activar el registro de depuración local de WP
Si puedes editar wp-config.php
, añade encima la línea que dice / Eso es todo, deja de editar /:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Reproduce el fallo, luego descarga e inspecciona /wp-content/debug.log
.
3 Verificar directamente el punto final de la API REST
Ejecuta (o pide a tu host que ejecute): curl -I https://your-domain.com/wp-json/wp/v2/
Un sitio sano devuelve cabeceras HTTP 200 y JSON. Un 403/500 implica un bloqueo del servidor o del cortafuegos.
4 Comprueba los permisos de archivos y directorios
Las herramientas de migración a veces ajustan demasiado los permisos.
- Directorios: 755
- Archivos: 644 Asegúrate de que
/wp-content/themes/
y/wp-content/uploads/
siguen esas normas.
5 Compara .htaccess
(o la configuración de nginx)
Busca reglas que bloqueen inadvertidamente /wp-json/
o lo reescriban. Si está en Apache, renombra temporalmente .htaccess
; si lo guarda WordPress, una regla interna es la culpable.
6 Desactivar temporalmente los módulos de seguridad
Muchos hosts ejecutan mod_security
o un Cortafuegos de Aplicaciones Web (WAF).
- Pide al anfitrión que desactive mod_security para tu dominio y vuelve a probar.
- Si el error desaparece, pon en la lista blanca la regla infractora o ajusta el cortafuegos.
7 Comprobación de la integridad de la base de datos (Raro, pero posible)
Las partes de la plantilla viven en wp_posts
con post_type = 'wp_template_part'
.
- Localiza la fila.
Si está dañada, eliminarla permite a WordPress volver a crear la plantilla y puede eliminar el error.
7. Elimina todos los emojis y símbolos especiales
En algunos servidores puedes experimentar el error si has utilizado emojis o símbolos especiales.
Script de escalada para tu proveedor de alojamiento
Copia y pega lo siguiente en tu chat/ticket de asistencia:
Migramos nuestro sitio de WordPress con tema de bloques el [FECHA]. Inmediatamente después, sólo la plantilla Editores del sitio no se guarda con el error «Error de actualización. La respuesta no es una respuesta JSON válida». Los conflictos de plugins, el vaciado de enlaces permanentes y la salud del sitio están limpios. Comprueba los registros de errores PHP del servidor y cualquier regla WAF/mod_security que pueda bloquear
POST /wp-json/wp/v2/template-parts/*
. Confirma también los permisos de los archivos (subidas/temas) y que se puede acceder a la API REST. El problema no existía antes de la migración, por lo que sospechamos que se trata de un bloqueo a nivel de servidor o de un error de configuración.
Evitar que se repita en futuras migraciones
Elemento de la lista de control | Por qué ayuda |
Utiliza una versión de PHP actualizada (≥ 8.1) | Las versiones anteriores tienen errores REST corregidos en versiones posteriores. |
Migra a través de un plugin (por ejemplo, Duplicator) o SSH rsync, no a través de los botones «clonar» del host | Garantiza la búsqueda y sustitución completa de la BD y conserva los permisos. |
Verifica los puntos finales de la API REST antes y después de la migración a DNS | Detecta pronto los problemas con JSON. |
Mantén los registros del servidor durante 48 h después de la puesta en marcha | Permite un retroceso rápido o correcciones específicas. |
Recursos adicionales
- Manual de WordPress: Referencia de errores de la API REST
- Core ticket #52527 – El error genérico de respuesta JSON carece de contexto (por qué el mensaje es tan vago)
- Ayuda de GoDaddy: Ver registros de errores en cPanel
¿Sigues atascado?
Si has seguido todos los pasos y WordPress sigue sin guardar y tu host no puede identificar la petición bloqueada, considera la posibilidad de hacerlo:
- Cambiar temporalmente a un tema de bloque predeterminado (Twenty Twenty-Four) para comprobar si el problema es específico del tema.
- Contratar a un desarrollador de WordPress para que inspeccione el servidor en tiempo real.
Deja una respuesta