Comprobador de HTML original y renderizado
Free, no signup. Open the page in a browser and it looks complete; Google sees raw HTML first, then runs JavaScript and looks again — and those two views don't always agree. Test a public URL through the bounded rendering service to find where they diverge, with a side-by-side raw-vs-rendered diff.
Free, no sign-up. The page is rendered in headless Chrome only when the initial HTML looks incomplete — most server-rendered sites never need it.
Las comprobaciones se ejecutan desde nuestro servidor; consultamos la URL que introduces y no conservamos los resultados. Reports are kept 7 days so you can share a link to the result. Anonymous aggregate stats feed our research posts; domains are counted once via an anonymized hash and never stored in the clear. Los contadores anónimos de resultados por ejecución pueden utilizarse para investigación agregada; nunca incluyen URL, dominios, IP ni identificadores, y no se publica ninguna estadística con menos de 100 ejecuciones.
+ guarda el sitio o la página actuales. Usa ☆ junto a cualquier sitio, página o lista guardados para añadirlos a favoritos. El historial de comprobaciones recientes aparece debajo.
Crear una lista con nombre
Destino rellenado desde tus selecciones locales.
Pasaporte del sitio Contexto local de este sitio guardado
Datos locales
Los destinos guardados, las listas con nombre y los resúmenes de comprobaciones recientes permanecen solo en este navegador.
What JavaScript changed
Resources Google and AI bots couldn’t get
What non-rendering AI crawlers can see
This is a fast, directional check. For anything that affects indexing, confirm it in Google Search Console's URL Inspection tool — that's Google's own renderer and the real source of truth.
Valorar esta herramienta
What this is checking
The render gap
Google can process JavaScript in a rendering phase after crawling. Content that appears only after rendering depends on that phase and is absent from the initial response; this comparison does not predict discovery or indexing timing.
The most restrictive rule wins
If a noindex appears in either the raw or rendered HTML, Google may use it — and an initial-HTML noindex may cause Google to skip rendering, so JavaScript cannot reliably undo it.
Canonicals are conditional
JavaScript may add a canonical when the raw HTML has none, or keep the same value. A different or additional value creates competing canonical input.
Checks based on the JavaScript SEO guide on Ahrefs. Confirm findings in Search Console.
Acerca de esta herramienta
Una página puede parecer completa en el navegador, pero Google ve primero el HTML inicial y después el contenido renderizado con JavaScript; ambas versiones no siempre coinciden. Detecta esa diferencia.
Gratis y sin registro. Prueba una URL pública mediante el servicio de renderizado limitado para descubrir qué señales dependen de JavaScript.
Funciones
- Tabla paralela que compara HTML inicial y DOM renderizado en diez campos importantes, con una diferencia línea por línea y detección de frameworks como React, Vue y Angular.
- Ejecuta Chrome headless solo cuando la heurística del contenido inicial indica que hace falta y deja claro si se produjo el renderizado; si el HTML ya parece completo, no inventa una diferencia.
- Aplica aproximadamente quince comprobaciones calibradas de SEO para JavaScript, agrupadas por gravedad, sobre contenido, enlaces, canonical, noindex, alt, datos estructurados y hreflang.
- Comprueba robots.txt y señala recursos JavaScript o CSS bloqueados que Google podría necesitar para renderizar.
Cómo funciona
Un endpoint limitado del Worker recupera el HTML inicial y el robots.txt. Una heurística decide si hace falta renderizar; cuando lo hace, Chrome headless produce el DOM tras un presupuesto acotado. La herramienta compara los campos relevantes de ambas versiones, detecta el framework y ejecuta comprobaciones calibradas sin asumir que una señal ausente en una respuesta truncada no existe.
Limitaciones
- Es una comprobación rápida y orientativa, no el renderizador de Google. La versión de Chromium, los tiempos y la red pueden diferir; las páginas muy grandes se truncan y no se reproducen todas las interacciones.
- Analiza una página cada vez y solo prueba controles expandibles comunes. Cuando un hallazgo pueda afectar a la indexación, confírmalo con la herramienta de inspección de URL de Google Search Console.
Preguntas frecuentes
¿Qué es la diferencia de renderizado en el SEO para JavaScript?
Es la diferencia entre el HTML sin procesar que entrega el servidor y el DOM final que crea el navegador tras ejecutar JavaScript. Google puede procesar JavaScript en una fase de renderizado posterior al rastreo. Todo lo que aparece solo después depende de que el renderizado funcione y no está en la respuesta inicial. La herramienta mide esa dependencia; no predice cuándo Google descubrirá o indexará el contenido.
¿Google realmente renderiza JavaScript?
Sí. Google renderiza páginas con un navegador siempre actualizado, por lo que puede indexar contenido del cliente. Es una fase de procesamiento separada, y los recursos bloqueados o fallos de JavaScript pueden impedir que el contenido aparezca en el HTML renderizado. La Búsqueda de Google no interactúa con la página para cargar contenido: lo que exige una interacción debe estar ya en el HTML renderizado. Incluir el contenido y las etiquetas esenciales en la respuesta del servidor elimina esa dependencia.
¿Por qué esta herramienta a veces no renderiza mi página?
El navegador automatizado solo se ejecuta cuando una heurística limitada indica que el HTML inicial parece incompleto. Un título, enlaces y texto principal sustanciales pueden hacer que omita el renderizado, pero eso no demuestra que el marco genere la página en el servidor ni que JavaScript no añada nada. Una ejecución omitida ofrece el análisis del HTML inicial sin comparar la paridad renderizada.
¿Google respeta un canonical o noindex insertado mediante JavaScript?
Google puede omitir el renderizado si encuentra noindex en el HTML inicial, por lo que JavaScript no puede retirar esa directiva de forma fiable; también puede usar un noindex presente solo tras renderizar. JavaScript puede añadir un canonical cuando no hay ninguno inicialmente, y repetir el mismo valor es aceptable. Cambiarlo por otro valor o dejar varios crea señales competidoras arriesgadas.
¿Es lo mismo que la herramienta de inspección de URL de Google Search Console?
No, ni pretende sustituirla. Esta es una comparación rápida y orientativa. La inspección de URL de Search Console aporta evidencia específica de Google sobre rastreo, indexación y prueba publicada para una propiedad verificada, pero ninguna herramienta garantiza cómo se procesará una URL en un rastreo posterior.
Problemas habituales y cómo solucionarlos
- Advertencia La cabecera del documento inicial se cierra demasiado pronto Solución: Corrige el marcado defectuoso de la cabecera para que los metadatos permanezcan dentro de un único elemento <head> válido en el HTML inicial.
- Error Falta el título Solución: Añade al HTML inicial un único <title> conciso que nombre el tema principal de la página.
- Advertencia El título cambia después del renderizado Solución: Haz que los valores de <title> del servidor y renderizado sean idénticos salvo que el cambio del cliente sea deliberadamente necesario.
- Error El título aparece solo después de JavaScript Solución: Emite el <title> final en el HTML inicial en lugar de depender de JavaScript para insertarlo.
- Advertencia Falta la metadescripción Solución: Añade al HTML inicial una metadescripción específica de la página que resuma con exactitud el contenido.
- Advertencia La metadescripción cambia después del renderizado Solución: Alinea las metadescripciones inicial y renderizada para que los rastreadores reciban un único resumen coherente.
- Error Las referencias canónicas inicial y renderizada entran en conflicto Solución: Elige la URL absoluta preferida y haz que las etiquetas canónicas inicial y renderizada apunten a ella.
- Error JavaScript sobrescribe la referencia canónica Solución: Mantén una referencia canónica en el HTML inicial e impide que el código del cliente la sustituya después del renderizado.
- Advertencia La referencia canónica solo existe después del renderizado Solución: Traslada la etiqueta canónica al HTML inicial en lugar de añadirla únicamente después de ejecutar JavaScript.
- Error El código JavaScript elimina noindex Solución: Elimina noindex de la respuesta inicial del servidor cuando la página deba indexarse; no dependas de JavaScript para deshacerlo.
- Advertencia JavaScript añade noindex Solución: Impide que el código del cliente añada noindex a las páginas que deban seguir siendo indexables.
- Error Noindex permanece después del renderizado Solución: Elimina la directiva noindex tanto del HTML inicial como del renderizado cuando la página deba indexarse.
- Advertencia La directiva Nofollow permanece después del renderizado Solución: Elimina nofollow cuando los rastreadores deban seguir los enlaces de la página o limítalo a los enlaces que lo requieran.
- Advertencia hreflang aparece solo después del renderizado Solución: Emite cada anotación hreflang en el HTML inicial o en las cabeceras HTTP en lugar de añadirla solo con JavaScript.
- Advertencia hreflang cambia después del renderizado Solución: Haz que los conjuntos hreflang inicial y renderizado sean idénticos, recíprocos y apunten a las URL de configuración regional previstas.
- Error El contenido importante aparece solo después del renderizado Solución: Renderiza en el servidor o genera estáticamente el texto importante para que exista en el HTML inicial.
- Advertencia Se añade contenido considerable después del renderizado Solución: Traslada al HTML inicial el texto esencial añadido por JavaScript y deja al cliente solo las mejoras no esenciales.
- Advertencia Los enlaces importantes aparecen solo después del renderizado Solución: Muestra los destinos importantes como enlaces ordinarios <a href> en el HTML inicial.
- Error Los enlaces renderizados no son URL rastreables Solución: Sustituye los controladores onclick, javascript: o la navegación mediante botones por URL rastreables con <a href>.
- Advertencia Las imágenes renderizadas carecen de atributos alt Solución: Añade texto alt conciso a las imágenes renderizadas significativas y atributos alt vacíos a las decorativas.
- Error El archivo Robots.txt bloquea recursos de renderizado Solución: Permite que Googlebot obtenga los recursos de JavaScript, CSS o datos bloqueados que sean necesarios para renderizar la página.
- Advertencia El renderizado produce fallos en la consola Solución: Corrige la excepción del cliente indicada y confirma que el contenido esencial siga renderizándose en una carga en frío.
- Advertencia El renderizado tiene solicitudes de recursos fallidas Solución: Restaura, dirige correctamente o elimina cada solicitud de recurso fallida que necesite la salida renderizada.
- Advertencia El contenido importante requiere interacción Solución: Incluye todo el contenido en el DOM cargado o dale una URL rastreable en lugar de exigir un clic o desplazamiento.
- Error La página renderizada parece un 404 blando Solución: Devuelve 404/410 para una página ausente o sustituye el cuerpo escaso parecido a un fallo por contenido sustancial en la URL con estado 200.
- Advertencia JavaScript redirige la página Solución: Sustituye la redirección de JavaScript por una respuesta 3xx adecuada del servidor hacia la URL final.
- Información Faltan datos estructurados Solución: Añade JSON-LD exacto para la entidad principal compatible de la página cuando procedan los datos estructurados.
- Advertencia Los datos estructurados aparecen solo después del renderizado Solución: Emite el JSON-LD validado en el HTML inicial en lugar de insertarlo únicamente después de ejecutar JavaScript.
- Información La página depende de un WebSocket durante el renderizado Solución: Renderiza el contenido esencial sin requerir un WebSocket abierto y proporciona una alternativa resistente mediante HTTP o renderizado del servidor.
- Advertencia Falta la metaetiqueta de ventana gráfica Solución: Añade <meta name="viewport" content="width=device-width, initial-scale=1"> a la cabecera inicial.
- Error El contenido crítico depende del renderizado del cliente Solución: Renderiza en el servidor o previamente el título, H1, los enlaces y el contenido principal en el HTML inicial.
- Advertencia La página depende del enrutamiento mediante fragmentos Solución: Cambia el enrutador a rutas de historial que el servidor pueda resolver sin un fragmento de URL.
- Advertencia El elemento de título está fuera de la cabecera HTML Solución: Mueve el título a la cabecera del documento y conserva allí exactamente un valor de título no vacío.
- Advertencia El elemento canónico está fuera de la cabecera HTML Solución: Mueve el enlace canónico previsto a la cabecera del documento y elimina las declaraciones canónicas del cuerpo.
- Advertencia El HTML inicial contiene referencias canónicas contradictorias Solución: Emite una sola URL canónica en el HTML inicial en lugar de depender de JavaScript para reparar declaraciones contradictorias.