Acerca de este problema HTML
El atributo http-equiv en un elemento <meta> simula una cabecera de respuesta HTTP, permitiéndote definir metadatos a nivel de documento que de otro modo requerirían configuración del servidor. Debido a que estos metadatos se aplican a todo el documento y deben procesarse antes de que el contenido de la página se renderice, la especificación HTML requiere que los elementos <meta http-equiv> aparezcan dentro del elemento <head>. Colocarlos en el <body> es inválido y puede hacer que los navegadores los ignoren por completo, llevando a comportamientos inesperados como codificación de caracteres incorrecta, políticas de seguridad de contenido rotas, o directivas de recarga perdidas.
Este error ocurre comúnmente cuando:
-
Una etiqueta
<meta http-equiv>se coloca accidentalmente dentro del<body>. -
Se copia y pega contenido de un documento al cuerpo de otro, trayendo etiquetas
<meta>consigo. -
Un sistema de plantillas o CMS inyecta etiquetas
<meta>en la ubicación incorrecta.
Valores comunes de http-equiv
El atributo http-equiv soporta varios valores estándar:
-
content-type— Declara el tipo MIME del documento y la codificación de caracteres. En HTML5, se prefiere la forma abreviada<meta charset="UTF-8">en su lugar. -
refresh— Instruye al navegador a recargar la página o redirigir después de un número especificado de segundos. Ten en cuenta que la recarga automática está desaconsejada por razones de accesibilidad: puede desorientar a los usuarios, mover el foco de vuelta al inicio de la página, y interrumpir las tecnologías de asistencia. Evítala a menos que sea absolutamente necesario. -
content-security-policy— Define una Política de Seguridad de Contenido para el documento, ayudando a prevenir ataques de cross-site scripting (XSS) y otras inyecciones de código. -
default-style— Especifica la hoja de estilos preferida de un conjunto de hojas de estilos alternativas.
Cómo solucionarlo
Encuentra cada elemento <meta http-equiv> en tu documento y asegúrate de que esté colocado dentro del elemento <head>, antes de cualquier contenido en <body>. Si la etiqueta está duplicada o es innecesaria, elimínala.
Ejemplos
❌ Incorrecto: http-equiv dentro del <body>
<!DOCTYPE html>
<html lang="en">
<head>
<title>My Page</title>
</head>
<body>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<p>Hello, world!</p>
</body>
</html>
La etiqueta <meta http-equiv> está dentro del <body>, lo cual desencadena el error de validación.
✅ Correcto: http-equiv dentro del <head>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>My Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
✅ Correcto: usando la forma abreviada charset de HTML5
En HTML5, puedes reemplazar <meta http-equiv="content-type" content="text/html; charset=UTF-8"> con el atributo charset más simple:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
✅ Correcto: Política de Seguridad de Contenido en <head>
<head>
<meta charset="UTF-8">
<meta http-equiv="content-security-policy" content="default-src 'self'">
<title>Secure Page</title>
</head>
El valor content-security-policy es particularmente sensible a la ubicación — los navegadores lo ignorarán si aparece fuera del <head>, dejando tu página sin las protecciones de seguridad previstas.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.
Más información: