Skip to main content
Validación HTML

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

Acerca de este problema HTML

El elemento <noscript> proporciona contenido de fallback para usuarios cuyos navegadores no admiten scripting o tienen JavaScript deshabilitado. Cuando <noscript> aparece dentro de <head>, la especificación HTML restringe su contenido únicamente a elementos de metadatos — específicamente <link>, <style> y <meta>. Una etiqueta <img> es contenido de flujo, no contenido de metadatos, por lo que no está permitida dentro de <head> independientemente de si está envuelta en <noscript>.

Cuando <noscript> aparece dentro de <body>, sin embargo, puede contener cualquier contenido de flujo que normalmente sería válido en esa posición — incluyendo elementos <img>. Por eso la solución es simplemente reubicar el bloque <noscript> del <head> al <body>.

Este problema es extremadamente común con píxeles de seguimiento de terceros. Servicios como Facebook Pixel, LinkedIn Insight Tag, Google Tag Manager y herramientas similares a menudo te instruyen a pegar un bloque <noscript> que contiene un <img> de seguimiento de 1×1 directamente después de la etiqueta de apertura <head>. Aunque esto funciona en los navegadores (son tolerantes con HTML inválido), no se ajusta a la especificación HTML y activará un error de validación.

Más allá del cumplimiento de estándares, mantener tu HTML válido asegura un comportamiento predecible en todos los navegadores y tecnologías de asistencia. El marcado inválido puede llevar a una construcción DOM inesperada, que puede causar problemas sutiles con selectores CSS, consultas DOM de JavaScript o herramientas de accesibilidad.

Cómo solucionarlo

  1. Localiza el bloque <noscript> que contiene el elemento <img> dentro de tu <head>.
  2. Mueve ese bloque <noscript> completo a algún lugar dentro del <body> — típicamente justo después de la etiqueta de apertura <body>.
  3. Mantén cualquier etiqueta <script> asociada en el <head> si lo deseas; solo el <noscript> con el <img> necesita moverse.

Ejemplos

❌ Inválido: <img> dentro de <noscript> en <head>

Este es el patrón comúnmente proporcionado por las instrucciones de píxeles de seguimiento de terceros:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
    <script>
      /* tracking script */
    </script>
    <noscript>
      <img src="https://example.com/pixel?id=123" height="1" width="1" alt="">
    </noscript>
  </head>
  <body>
    <h1>Welcome</h1>
  </body>
</html>

El validador reporta “Bad start tag in img in noscript in head” porque <img> no es contenido de metadatos válido.

✅ Válido: <noscript> con <img> movido al <body>

Mueve el bloque <noscript> al <body> mientras dejas el <script> en el <head>:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
    <script>
      /* tracking script */
    </script>
  </head>
  <body>
    <noscript>
      <img src="https://example.com/pixel?id=123" height="1" width="1" alt="">
    </noscript>
    <h1>Welcome</h1>
  </body>
</html>

El <img> ahora está dentro de <body> (vía <noscript>), donde se permite el contenido de flujo. El píxel de seguimiento seguirá funcionando correctamente para usuarios con JavaScript deshabilitado.

✅ Válido: <noscript> solo de metadatos en <head>

Si solo necesitas contenido de fallback de metadatos en el <head>, se permiten elementos como <meta>, <link> y <style>:

<head>
  <title>My Page</title>
  <noscript>
    <style>
      .js-only { display: none; }
    </style>
  </noscript>
</head>

Esto es válido porque <style> es contenido de metadatos. Usa este patrón cuando necesites aplicar estilos de fallback para usuarios sin JavaScript, y reserva los bloques <noscript> con <img> u otro contenido de flujo para el <body>.

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.