Skip to main content
Validación HTML

Valor incorrecto “Cache-Control” para el atributo “http-equiv” en el elemento “meta”.

Acerca de este problema HTML

El atributo http-equiv en el elemento <meta> está diseñado para simular ciertas cabeceras de respuesta HTTP cuando un servidor no está configurado para enviarlas directamente. Sin embargo, la especificación HTML solo permite un conjunto limitado de valores para este atributo. Según el estándar HTML living de WHATWG, los valores válidos de http-equiv son:

  • content-type — una forma alternativa de declarar la codificación de caracteres
  • default-style — establece la hoja de estilos preferida
  • refresh — redirige o recarga la página tras un retraso
  • x-ua-compatible — especifica el modo de compatibilidad del documento para Internet Explorer
  • content-security-policy — declara una política de seguridad de contenido

Usar Cache-Control como valor de http-equiv es un patrón que se originó en los primeros días del desarrollo web, cuando algunos navegadores intentaban respetar las directivas de caché establecidas a través de etiquetas <meta>. En la práctica, los navegadores modernos ignoran completamente <meta http-equiv="Cache-Control">. El comportamiento de caché se determina por las cabeceras de respuesta HTTP reales enviadas por el servidor, no por etiquetas <meta> en el cuerpo del documento. Esto significa que la etiqueta no solo desencadena un error de validación, sino que también no tiene ningún efecto práctico: da una falsa sensación de control sobre el caché mientras no hace nada.

Esto importa por varias razones. El HTML inválido puede causar comportamientos inesperados en los navegadores, particularmente en casos extremos con user agents más antiguos o menos comunes. También mina la confianza en tu marcado: si un validador señala problemas, se vuelve más difícil detectar errores genuinamente importantes. Además, depender de una etiqueta no funcional para el caché puede llevar a problemas reales si los desarrolladores asumen que el caché se está manejando cuando no es así.

El enfoque correcto es configurar cabeceras de cache-control en tu servidor web o capa de aplicación. Cada servidor web y framework principal proporciona una forma sencilla de establecer cabeceras HTTP Cache-Control.

Para Apache, puedes añadir esto a tu .htaccess o configuración del servidor:

Header set Cache-Control "no-cache, no-store, must-revalidate"

Para Nginx, usa:

add_header Cache-Control "no-cache, no-store, must-revalidate";

En una aplicación Node.js/Express:

res.set('Cache-Control', 'no-cache, no-store, must-revalidate');

Ejemplos

Inválido: usar Cache-Control como valor de http-equiv

<!DOCTYPE html>
<html lang="en">
<head>
  <title>My Page</title>
  <meta http-equiv="Cache-Control" content="no-cache">
  <meta http-equiv="Pragma" content="no-cache">
  <meta http-equiv="Expires" content="0">
</head>
<body>
  <p>This page attempts to control caching via meta tags.</p>
</body>
</html>

En este ejemplo, las tres etiquetas <meta> son problemáticas. Cache-Control y Pragma no son valores válidos de http-equiv. Aunque Expires se usaba históricamente, tampoco está en la lista actual de valores conformes en la especificación WHATWG.

Corregido: eliminar etiquetas <meta> inválidas

<!DOCTYPE html>
<html lang="en">
<head>
  <title>My Page</title>
<!-- Cache-Control should be set via server HTTP headers -->

</head>
<body>
  <p>Caching is now properly handled server-side.</p>
</body>
</html>

Las etiquetas <meta> inválidas se eliminan por completo. El comportamiento de caché se configura en el servidor, donde realmente tiene efecto.

Válido: usar un valor permitido de http-equiv

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Redirecting</title>
  <meta http-equiv="refresh" content="5;url=https://example.com">
</head>
<body>
  <p>You will be redirected in 5 seconds.</p>
</body>
</html>

Este ejemplo usa refresh, que es un valor válido de http-equiv. Demuestra para qué está realmente diseñado el atributo: un pequeño conjunto de directivas bien definidas y soportadas por el navegador.

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.