Skip to main content
Validación HTML

Etiqueta de inicio incorrecta en “iframe” en “noscript” en “head”.

Acerca de este problema HTML

El elemento <noscript> se comporta de manera diferente dependiendo de dónde aparece en un documento. Cuando se coloca dentro del <head>, solo puede contener elementos <link>, <style> y <meta> — estrictamente contenido de metadatos. Cuando se coloca dentro del <body>, puede contener cualquier contenido de flujo, incluyendo <p>, <div>, <iframe> y más. Esta distinción se define en el WHATWG HTML Living Standard.

Cuando el validador encuentra un <iframe> dentro de un <noscript> en el <head>, reporta “Etiqueta de inicio incorrecta” porque el analizador está operando bajo el modelo de contenido del <head>, donde <iframe> simplemente no es un elemento válido. El navegador puede intentar recuperación de errores cerrando implícitamente el <head> y abriendo el <body>, pero esto puede llevar a estructuras DOM inesperadas y problemas de diseño.

Este patrón aparece comúnmente al agregar fragmentos de seguimiento o análisis. Por ejemplo, Google Tag Manager proporciona un respaldo <noscript> que contiene un <iframe>, y está destinado a colocarse inmediatamente después de la etiqueta de apertura <body> — no en el <head>. Colocarlo en la ubicación incorrecta rompe la validación y puede hacer que el pixel de seguimiento no funcione correctamente.

Para corregir el error, identifica cualquier bloque <noscript> en tu <head> que contenga elementos que no sean metadatos (como <iframe>, <p>, <div>, <img>, etc.) y muévelos al <body>. Si el bloque <noscript> solo necesita elementos de metadatos como <meta> o <style>, puede permanecer en el <head>.

Ejemplos

Inválido: iframe dentro de noscript en head

El <iframe> no es contenido válido de metadatos, por lo que no puede aparecer dentro de <noscript> en el <head>.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My webpage</title>
    <noscript>
      <iframe src="https://example.com/tracking"></iframe>
    </noscript>
  </head>
  <body>
    <h1>Welcome</h1>
  </body>
</html>

Corregido: noscript con iframe movido al body

Mover el bloque <noscript> al <body> resuelve el error, ya que el contenido de flujo está permitido allí.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My webpage</title>
  </head>
  <body>
    <noscript>
      <iframe src="https://example.com/tracking"></iframe>
    </noscript>
    <h1>Welcome</h1>
  </body>
</html>

Válido: noscript solo con metadatos en head

Un bloque <noscript> que contiene solo elementos de metadatos es perfectamente válido dentro del <head>.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My webpage</title>
    <noscript>
      <meta http-equiv="refresh" content="0; url=https://example.com/nojs">
      <style>
        .js-only { display: none; }
      </style>
    </noscript>
  </head>
  <body>
    <h1>Welcome</h1>
  </body>
</html>

Corregido: dividir un noscript mixto entre head y body

Si necesitas tanto metadatos como contenido de flujo en tu respaldo <noscript>, usa dos bloques <noscript> separados — uno en el <head> para metadatos, y uno en el <body> para contenido visible.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My webpage</title>
    <noscript>
      <style>
        .js-only { display: none; }
      </style>
    </noscript>
  </head>
  <body>
    <noscript>
      <p>Please enable JavaScript to view this website.</p>
      <iframe src="https://example.com/tracking"></iframe>
    </noscript>
    <h1>Welcome</h1>
  </body>
</html>

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.