¿Qué es el código de estado HTTP 304 Not Modified?
El código de estado HTTP 304 Not Modified es una respuesta del servidor que indica que un recurso solicitado no ha cambiado desde la última vez que fue accedido. Esto significa que el navegador o el rastreador de un motor de búsqueda puede reutilizar la versión almacenada en caché en lugar de descargarla nuevamente.
Este código es una parte clave del sistema de almacenamiento en caché de la web, ya que ayuda a reducir el uso del ancho de banda y acelera la carga de las páginas para los usuarios.

¿Cómo funciona el código HTTP 304 Not Modified?
El funcionamiento del código HTTP 304 Not Modified se basa en un mecanismo de validación condicional que permite a los navegadores y rastreadores web saber si un recurso ha cambiado desde la última vez que fue descargado. Si no ha habido modificaciones, el servidor responde con un 304 en lugar de reenviar el contenido completo. Este comportamiento depende del uso de cabeceras específicas incluidas en las solicitudes HTTP.
🧭 Cabeceras utilizadas para activar el 304
Cuando un navegador, bot o cliente realiza una solicitud HTTP, puede incluir una de las siguientes cabeceras para preguntar al servidor si el recurso ha sido actualizado:
🔹 If-Modified-Since
- Esta cabecera contiene la fecha y hora en la que el cliente recibió el recurso por última vez.
- El servidor compara esa fecha con la última modificación del recurso.
- Si no ha habido cambios, devuelve 304 Not Modified; si el recurso fue modificado, responde con el código 200 OK y el contenido actualizado.
📌 Ejemplo de solicitud:
GET /estilos.css HTTP/1.1
Host: www.ejemplo.com
If-Modified-Since: Tue, 30 Jul 2025 14:00:00 GMT
📌 Respuesta si no hubo cambios:
HTTP/1.1 304 Not Modified
Date: Wed, 31 Jul 2025 10:00:00 GMT
🔹 If-None-Match
- En lugar de una fecha, esta cabecera incluye un identificador llamado ETag (Entity Tag), generado por el servidor.
- El ETag representa el estado actual del recurso; si cambia, indica que el contenido también ha cambiado.
- El servidor compara el ETag enviado con el actual; si son iguales, responde con 304 Not Modified.
📌 Ejemplo de solicitud:
GET /logo.png HTTP/1.1
Host: www.ejemplo.com
If-None-Match: “etag-123abc”
📌 Respuesta si el ETag no ha cambiado:
HTTP/1.1 304 Not Modified
ETag: “etag-123abc”
🛠 Proceso completo de validación
- El cliente solicita un recurso y guarda su versión local junto con un ETag o la fecha de modificación.
- En la próxima solicitud, el navegador incluye If-Modified-Since o If-None-Match en la cabecera.
- El servidor recibe la solicitud y compara los valores:
- Si la fecha enviada es igual o posterior a la fecha de modificación real, o si el ETag coincide, responde con 304 Not Modified.
- Si hay diferencia (fecha anterior o ETag diferente), responde con 200 OK y envía el contenido actualizado.
- El navegador usa la caché local si recibe un 304, sin necesidad de descargar el recurso nuevamente.
💡 Detalles técnicos importantes
- El cuerpo de la respuesta 304 está vacío: no se reenvía el contenido, solo las cabeceras.
- El código 304 requiere caché previa: si no hay versión local del recurso, no se puede usar.
No se usa en respuestas a métodos POST: solo GET y HEAD suelen beneficiarse de esta validación.
Beneficios del código 304 Not Modified para el SEO

El uso adecuado del código 304 Not Modified puede mejorar el rendimiento de un sitio web y optimizar la forma en que los motores de búsqueda rastrean sus páginas.
🚀 Ahorro de ancho de banda y recursos del servidor
Uno de los beneficios más tangibles del código 304 es la reducción del tráfico innecesario entre el cliente y el servidor.
- En lugar de volver a enviar archivos que ya se encuentran en la caché del navegador o del rastreador, el servidor responde simplemente con un 304 Not Modified.
- Esto evita la transferencia de archivos como imágenes, hojas de estilo, scripts o páginas HTML que no han cambiado.
- El resultado es una menor carga de trabajo para el servidor, lo cual es especialmente útil para sitios de alto tráfico o con recursos limitados.
Ventajas específicas:
- Reducción del uso de ancho de banda en cada solicitud.
- Menor consumo de memoria y CPU en el servidor.
- Mejora en la disponibilidad y estabilidad del sitio en picos de tráfico.
⚡ Mejora del tiempo de carga de la página
El rendimiento web es un factor crucial tanto para la experiencia del usuario como para el posicionamiento en buscadores. El uso del código 304 permite a los navegadores reutilizar los recursos que ya están almacenados en caché, lo que se traduce en cargas más rápidas.
¿Cómo contribuye el 304 a la velocidad?
- Evita que el navegador tenga que descargar nuevamente recursos sin cambios.
- El contenido se carga directamente desde el almacenamiento local del dispositivo del usuario.
- Esto reduce el Tiempo hasta el Primer Byte (TTFB) y el tiempo total de carga de la página.
Impacto SEO y UX:
- Mejores tiempos de carga mejoran la experiencia del usuario.
- Un sitio más rápido reduce la tasa de rebote.
- Google considera la velocidad de carga como un factor de ranking, especialmente en dispositivos móviles.
🕷️ Optimización del presupuesto de rastreo
Google y otros motores de búsqueda asignan un presupuesto de rastreo a cada sitio web, es decir, un número limitado de URLs que pueden visitar y analizar en un periodo de tiempo.
Cuando el servidor responde con un 304 en lugar de un 200 con contenido completo, se optimiza el uso de este presupuesto.
¿Qué implica esto?
- Los rastreadores no malgastan recursos volviendo a procesar páginas que no han cambiado.
- El tiempo de rastreo se puede reorientar hacia nuevas páginas o contenido actualizado.
- Mejora la frecuencia de indexación de nuevas URLs o modificaciones importantes.
Ventajas concretas:
- Mejora el descubrimiento de contenido nuevo en grandes sitios.
- Aumenta la probabilidad de que los cambios importantes sean indexados más rápido.
- Facilita el rastreo completo en sitios con miles de páginas.
📊 Mejora en la eficiencia general del sitio
El uso estratégico del código 304 refleja una estructura técnica eficiente, algo que los motores de búsqueda valoran. Aunque no es un factor de ranking por sí solo, su correcta implementación contribuye a una mejor salud técnica del sitio.
Posibles problemas del código 304 Not Modified en SEO

Aunque el código 304 tiene beneficios, su uso incorrecto puede generar problemas en el rastreo y la indexación de un sitio web.
🕒 Contenido desactualizado en caché
Uno de los errores más frecuentes es que el servidor responda con un código 304 incluso cuando el contenido ha sido modificado. Esto provoca que tanto los usuarios como los bots de Google visualicen una versión antigua de la página, lo cual puede afectar directamente la calidad del sitio y retrasar la visibilidad de las actualizaciones.
🔍 Ejemplo del problema:
Un blog actualiza su contenido con nueva información, pero el navegador sigue mostrando la versión anterior almacenada en caché. Google también recibe un 304 y no indexa los cambios.
⚠️ Consecuencias:
- La información desactualizada permanece en los resultados de búsqueda.
- Las actualizaciones SEO no se reflejan en Google.
- Se genera una mala experiencia de usuario si la información mostrada no coincide con la real.
✅ Solución:
- Implementar validaciones adecuadas con ETag o Last-Modified.
- Verificar que el servidor compare correctamente el contenido actual antes de responder con 304.
- Realizar pruebas con herramientas como curl -I ohttpstatus.io para comprobar respuestas reales.
🛠 Recomendación técnica:
Usa una lógica de validación basada en la última modificación real del contenido, no solo en la fecha del archivo físico.
🧩 Configuración incorrecta de caché
Si las cabeceras Cache-Control, ETag o Last-Modified están mal configuradas, el servidor podría devolver un 304 de forma inapropiada, incluso cuando el contenido ha cambiado.
📉 Ejemplo de fallo:
Una landing page de producto cambia sus precios, pero el servidor sigue respondiendo con 304 porque no se actualizó la fecha de modificación ni el ETag.
📌 Principales errores de configuración:
- Cabeceras contradictorias (Cache-Control: no-cache junto con ETag activo).
- Falta de sincronización entre el contenido generado dinámicamente y las cabeceras de validación.
- Políticas de caché genéricas aplicadas a todos los recursos sin distinción.
✅ Solución:
- Revisar la configuración de las cabeceras HTTP y asegurarse de que reflejen el comportamiento real del contenido.
- Usar herramientas de auditoría como Lighthouse, WebPageTest o Google Search Console para detectar errores de caché.
- Aplicar reglas específicas por tipo de recurso (HTML, JS, imágenes) en lugar de reglas globales.
🔄 Problemas con ETags en entornos distribuidos
Los ETags (Entity Tags) son identificadores únicos que permiten validar si un recurso ha cambiado. Sin embargo, su implementación puede generar inconsistencias en entornos con múltiples servidores (load balancing), donde el mismo archivo puede tener ETags diferentes.
📍 Ejemplo típico:
Un archivo HTML alojado en varios servidores genera ETags basados en metadatos del sistema (como inode o timestamp). Un navegador recibe un ETag diferente en cada solicitud y nunca obtiene una respuesta 304, aunque el contenido no haya cambiado.
⚠️ Impacto SEO:
- Se pierde el beneficio del almacenamiento en caché.
- Se genera un uso innecesario de ancho de banda y recursos del servidor.
- Los rastros de rastreo se desperdician, afectando el presupuesto de rastreo del sitio.
✅ Solución:
- Desactivar ETags en entornos con múltiples servidores cuando no se pueda garantizar su coherencia.
- Usar mecanismos alternativos como Last-Modified para validar la versión del recurso.
- Si se desea conservar ETags, configurar el servidor para que genere identificadores estables y consistentes en todos los nodos.
🧩 Código para desactivar ETags en Apache:
apache
FileETag None
🧩 En Nginx:
nginx
etag off;
📊 Cuadro resumen: problemas y soluciones
Problema | Impacto SEO | Solución recomendada |
304 con contenido modificado | Contenido desactualizado en Google | Validación precisa con ETag o Last-Modified |
Caché mal configurada | Indexación incorrecta o incompleta | Revisión de cabeceras Cache-Control, ETag |
ETags inconsistentes en múltiples servidores | Pérdida de beneficios de caché | Desactivar o estandarizar ETags |
¿Cómo verificar si un sitio web usa el código 304 Not Modified?
Para comprobar si un sitio web responde con el código 304 Not Modified, se pueden utilizar varias herramientas.
🧪 1. Verificación con la consola de desarrollador de Google Chrome
Una forma accesible y rápida de revisar el uso del código 304 es utilizando la consola del navegador Google Chrome.
✅ Pasos detallados:
- Abre Google Chrome y accede al sitio web que quieres analizar.
- Presiona F12 o haz clic derecho sobre cualquier parte de la página y selecciona “Inspeccionar”.
- Ve a la pestaña “Red” (Network).
- Recarga la página con Ctrl + R o Cmd + R.
- En la lista de solicitudes, observa la columna “Estado” (Status).
- Busca líneas que indiquen 304 en vez de 200, 301, etc.
📌 Ejemplo visual:
Recurso | Estado | Tipo |
🔰main.css | 304 | stylesheet |
🔰app.js | 304 | script |
🔰logo.png | 200 | image |
🔰index.html | 200 | document |
Esto indica que el navegador usó la caché local para main.css y app.js, y no volvió a descargar esos recursos desde el servidor.
🌐 2. Uso de herramientas en línea
Si prefieres una opción sin necesidad de abrir la consola del navegador, puedes usar herramientas online que muestran los códigos de estado HTTP.
🔧 Herramientas recomendadas:
▶HTTP Status Code Checker (httpstatus.io)
- Permite analizar múltiples URLs.
- Muestra redirecciones, cabeceras y el código de estado HTTP recibido.
- Puedes forzar solicitudes condicionales para simular 304.
▶ WebPageTest
- Ejecuta pruebas de rendimiento y entrega un desglose detallado de todas las solicitudes.
- Puedes ver qué recursos se cargan desde caché (304) y cuáles se descargan completamente (200).
- Ideal para auditar sitios completos y entender comportamientos en distintas ubicaciones.
🧠 Consejo SEO:
Usa estas herramientas para comparar el comportamiento de la página en visitas sucesivas, ya que el código 304 solo aparece si el recurso ya fue solicitado previamente.
💻 3. Verificación con cURL desde la terminal
Si eres más técnico o estás trabajando en auditorías automatizadas, cURL es una excelente herramienta para verificar respuestas HTTP directamente desde la línea de comandos.
🧾 Comando básico:
curl -I -H “If-Modified-Since: Wed, 21 Jun 2023 07:28:00 GMT” https://tusitio.com
🔎 ¿Qué hace este comando?
- -I solicita solo las cabeceras del servidor (no descarga el cuerpo).
- -H agrega una cabecera personalizada simulando que el navegador ya tiene el contenido desde cierta fecha.
- Si el servidor considera que el recurso no ha cambiado desde esa fecha, responderá con:
HTTP/1.1 304 Not Modified
📌 Resultado alternativo:
Si el contenido cambió, recibirás algo como:
HTTP/1.1 200 OK
Last-Modified: Thu, 25 Jul 2024 18:22:00 GMT
Esto indica que el servidor devolvió una versión actualizada del recurso.
🧰 4. Verificación con herramientas para desarrolladores y SEO
Algunas plataformas SEO también muestran información sobre códigos de estado HTTP, especialmente cuando realizas crawls de sitios enteros.
🛠 Herramientas SEO populares:
- Screaming Frog SEO Spider
Permite identificar recursos que responden con 304 y analizarlos por tipo, cabecera, tamaño, etc. - Ahrefs / Semrush / Sitebulb
Algunas suites avanzadas permiten monitorear la eficiencia del presupuesto de rastreo y el uso de la caché.
📊 Cuadro comparativo: herramientas para verificar código 304
Herramienta | Nivel técnico | Ideal para… | Soporta 304 |
Chrome DevTools | Bajo | Pruebas rápidas manuales | ✅ |
Bajo | Validación puntual | ✅ | |
WebPageTest | Medio | Análisis de rendimiento | ✅ |
cURL | Alto | Pruebas técnicas automatizadas | ✅ |
Screaming Frog / Sitebulb | Medio-Alto | Auditorías SEO completas | ✅ |
🧭 Recomendaciones finales

- Verifica el código 304 en recursos estáticos como CSS, JS e imágenes, que son los más beneficiados por la caché.
- Analiza el comportamiento en visitas repetidas: en la primera carga verás códigos 200, y en la segunda, los posibles 304.
- Comprueba que los recursos dinámicos respondan con 200 o con 304 de forma lógica, de acuerdo con sus cabeceras Last-Modified o ETag.
Un correcto uso del 304 reduce la carga en los servidores, mejora la velocidad de navegación y ayuda a Google a entender mejor cuándo debe reindexar tu contenido. ¡Haz que el caché trabaje a tu favor!
¿Cómo configurar correctamente el código 304 Not Modified?
Para que este mecanismo funcione de forma eficaz, es necesario configurar correctamente las cabeceras HTTP relacionadas con el almacenamiento en caché y los ETags (Entity Tags) en el servidor.
Configuración en Apache
En servidores Apache, el archivo .htaccess es clave para definir políticas de caché. Para indicar a los navegadores cuánto tiempo deben conservar un recurso, puedes habilitar cabeceras Expires según el tipo de contenido:
apache
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html “access plus 7 days”
ExpiresByType image/jpeg “access plus 30 days”
ExpiresByType text/css “access plus 7 days”
ExpiresByType application/javascript “access plus 7 days”
</IfModule>
Esto indica al navegador que puede usar los archivos por el tiempo especificado sin volver a solicitarlos, a menos que el contenido haya sido modificado.
Para permitir que Apache genere ETags, que sirven como identificadores únicos del contenido, añade:
apache
FileETag MTime Size
De esta manera, la ETag se calculará a partir de la hora de modificación y el tamaño del archivo, facilitando la comparación de versiones entre cliente y servidor.
Configuración en Nginx
En servidores Nginx, las reglas de almacenamiento en caché se pueden establecer directamente en el archivo de configuración del sitio. Un ejemplo básico sería:
nginx
location / {
expires 7d;
add_header Cache-Control “public, max-age=604800, must-revalidate”;
}
Esto le indica al navegador que puede conservar el recurso durante siete días. La cabecera must-revalidate asegura que el navegador verifique si el recurso ha cambiado después de ese periodo.
Para activar las ETags, simplemente añade esta línea:
nginx
etag on;
Recomendaciones generales
- Verifica que los recursos estáticos (imágenes, CSS, JS) usen caché agresiva, mientras que los recursos dinámicos se manejen con políticas más controladas.
- Verifica que las respuestas del servidor incluyan correctamente las cabeceras Last-Modified o ETag.
- Utiliza herramientas como WebPageTest o curl para confirmar que se está devolviendo el código 304 cuando corresponde.
Una correcta configuración ayuda a optimizar la velocidad, reducir el uso de ancho de banda y mejorar el rendimiento SEO.
¿Cuándo evitar el uso del código 304 Not Modified?
Aunque el código HTTP 304 Not Modified es útil para optimizar el rendimiento de un sitio web al aprovechar el contenido almacenado en caché, existen situaciones en las que su uso puede ser contraproducente, tanto para la experiencia del usuario como para el posicionamiento en motores de búsqueda.
1️⃣Páginas con información en tiempo real
En sitios web donde el contenido cambia constantemente, como:
- Sitios de noticias en vivo
- Páginas de precios de productos
- Plataformas de trading o cotizaciones financieras
El uso del código 304 puede hacer que los visitantes vean versiones anticuadas, almacenadas en la caché del navegador o del servidor, lo que afecta la precisión del contenido y puede dañar la credibilidad del sitio ante el usuario.
Ejemplo: Un e-commerce que muestra precios actualizados dinámicamente podría seguir mostrando precios antiguos si la respuesta 304 impide cargar la versión actualizada del producto.
2️⃣Páginas con contenido dinámico basado en sesión o usuario
Cuando el contenido se genera según parámetros únicos de cada visitante, como:
- Datos personalizados de sesión
- Resultados de búsqueda interna
- Contenido generado por cookies o tokens de usuario
Usar almacenamiento en caché puede devolver una versión incorrecta o irrelevante del contenido, afectando negativamente la experiencia del usuario.
Consejo: Para este tipo de páginas, es mejor evitar las respuestas 304 y permitir que el contenido se regenere completamente en cada solicitud.
3️⃣Sitios con errores en la configuración de caché
Un sistema mal configurado puede devolver códigos 304 incluso cuando el contenido sí ha cambiado. Esto puede deberse a:
- Cabeceras Last-Modified o ETag incorrectas
- Conflictos entre servidores cacheados
- Mala implementación de políticas Cache-Control
En estos casos, los usuarios y motores de búsqueda verán versiones desactualizadas, lo que puede afectar el SEO y la indexación.
Recomendación final
Antes de implementar el uso de 304, asegúrate de:
- Identificar correctamente qué recursos deben cachearse.
- Validar que el contenido no cambie frecuentemente.
- Configurar correctamente las cabeceras HTTP y políticas de caché.
El código 304 es valioso, pero debe aplicarse estratégicamente para no comprometer la frescura del contenido ni la precisión de las páginas.
SEO inteligente que impulsa tu visibilidad
¿Tu sitio no aparece donde debería en Google? En Agencia Seology aplicamos estrategias SEO personalizadas que combinan análisis técnico, contenidos optimizados y autoridad de enlaces. Atrae tráfico orgánico de calidad y destaca frente a tu competencia con resultados reales y medibles.
Nuestros servicios incluyen:
- Consultoría SEO a medida, adaptada a los objetivos específicos de cada proyecto.
- Auditorías SEO profesionales para detectar y corregir problemas técnicos.
- Estrategias SEO para ecommerce, enfocadas en aumentar la visibilidad y conversión de tiendas online.
- Link Building estratégico, con prácticas seguras y efectivas para mejorar tu autoridad.
- SEO local, ideal para negocios que quieren destacar en búsquedas geográficas.
- SEO internacional para empresas que buscan posicionarse en distintos mercados.
- Gestión de migraciones SEO, asegurando que tu tráfico orgánico no se vea afectado.
- Publicidad digital con Google Ads, para atraer tráfico segmentado de manera inmediata.
- SEO para restaurantes y otras industrias.
Para seguir aprendiendo sobre SEO y marketing digital, te invito a explorar más artículos en mi blog.




