Google ha cambiado silenciosamente algo que llevaba años haciendo sin que nadie se lo pidiera: corregir automáticamente los errores de escapado HTML en el JSON-LD de las webs. A partir de ahora, ya no lo hace, y eso puede dejar sin rich results a páginas que hasta la semana pasada los tenían sin ningún problema.
La compañía lo confirmó en un post en LinkedIn: «Para adecuar nuestro parser al estándar JSON y a otros estándares, hemos cambiado nuestra extracción de JSON-LD y ahora solo aplicamos una pasada de HTML unescaping». Gary Illyes, de Google, añadió que el escapado correcto en JSON está perfectamente definido en la RFC 8259, sección 7, así que no hay excusa para hacerlo mal.
Qué significa esto en la práctica
Googlebot usa los scripts JSON-LD (script type="application/ld+json") para entender los datos estructurados de una página: precios de producto, estrellas de reseñas, ingredientes de recetas, preguntas frecuentes… y con eso construye los rich results que aparecen en el buscador.
Hasta ahora, si tu JSON-LD contenía entidades HTML «doble-escapadas» (por ejemplo & en vez de &, o ✔ en vez del símbolo ✓), Googlebot aplicaba varias pasadas de unescaping y lo corregía sin más. Era un margen de error que muchos sitios llevaban años pisando sin saberlo, normalmente por cómo algunos CMS o plugins generan el schema.
Google lo explica así: «en la práctica, esto significa que las entidades doble-escapadas ya no se van a desenrollar. Si usas JSON-LD para datos estructurados, asegúrate de actualizar tu código a los escapes JSON estándar o a escapes hexadecimales Unicode (como \u0026)».
Mi opinión: un cambio brusco que va a generar ruido
Que Google deje de corregir de golpe algo que llevaba años arreglando por su cuenta es, cuanto menos, un movimiento arriesgado. No es un ajuste menor de algoritmo: es retirar una red de seguridad que muchísimas webs no sabían que tenían. Eso se va a traducir en un pico de errores de un día para otro en sitios que nunca tocaron su schema y que, de repente, empiezan a perder elegibilidad para rich results sin haber cambiado nada.
Como webmasters y consultores, esto obliga a estar mucho más atentos a Search Console en las próximas semanas, especialmente a la sección de mejoras y resultados enriquecidos. Si ves que se disparan errores en tipos de schema que nunca habías tocado, no es que hayas roto algo: es que Google ha dejado de perdonar un error que arrastrabas desde hace tiempo sin saberlo.
La pregunta clave: ¿está el validador alineado con este cambio?
Aquí es donde este cambio se pone realmente interesante desde el punto de vista práctico. La duda que me surgió de inmediato fue: ¿el Rich Results Test de Google se comporta ahora igual que Googlebot en producción, o sigue «corrigiendo» estos errores como hacía antes?
Porque el escenario problemático sería que el validador siguiera limpiando el doble escapado y marcando todo en verde, mientras Googlebot en producción ya no lo hiciera. Eso dejaría a cualquiera confiando en una herramienta que le dice que todo está bien cuando en realidad está perdiendo rich results en la SERP real, sin ninguna señal de alarma.
Para salir de dudas, hice la prueba directamente: generé un JSON-LD de tipo Product con el error de doble escapado a propósito, tanto en el campo name como en description, y lo pasé por el Rich Results Test.
El resultado de la prueba
El código de prueba incluía & en el nombre del producto y varias entidades dobles en la descripción (ó, í, ✔). Esto es lo que devolvió la herramienta:

El validador aplicó exactamente una única pasada de unescaping, tal y como describe Google en su anuncio. En el campo name, & pasó a &, pero no llegó a resolverse del todo hasta el símbolo &. En la descripción, entidades como ó o ✔ se quedaron mostradas literalmente en el texto, sin convertirse en «ó» ni en el check mark.
Es decir: el Rich Results Test ya refleja el nuevo comportamiento de Googlebot. No se está dando el escenario de pesadilla que planteaba al principio, en el que el validador te da un falso verde mientras la producción ya ha cambiado. Al menos en esta prueba, ambos están alineados.
Un detalle adicional de la prueba: el «elemento no válido» que marcó la herramienta no vino del escapado en sí, sino de la falta del campo image en el Product (que no incluí a propósito). El texto con las entidades sin resolver quedó como contenido «sucio» visible en name y description, pero no bloqueó la validación del resto del schema.
Qué hacer ahora
Aunque el validador y Googlebot parezcan alineados hoy, conviene no relajarse. Mi recomendación para cualquier proyecto que use JSON-LD de forma no trivial:
- Revisa cómo genera tu CMS o plugin el JSON-LD. Si en algún punto del proceso se aplica un escapado HTML sobre contenido que ya viene de la base de datos también escapado, tienes doble escapado sin saberlo.
- Pasa tus plantillas de schema por el Rich Results Test y revisa con lupa los campos de texto (
name,description), no solo si aparece el aviso de «elemento válido». - Cruza los resultados con la inspección de URL en Search Console, que usa el renderizado real de Google, y no solo el validador aislado.
- Vigila de cerca el informe de resultados enriquecidos en Search Console durante las próximas semanas por si aparecen caídas repentinas en tipos de schema que llevabas tiempo sin tocar.
Este es exactamente el tipo de cambio silencioso que puede pasar desapercibido durante semanas hasta que alguien nota que un rich result ha desaparecido de la SERP, algo parecido a lo que ya vimos con la confusión entre páginas rastreadas y no indexadas que denunciaba la comunidad SEO. Merece la pena dedicarle una revisión antes de que lo note el cliente.
