# Caché y CDN para bots: cómo afectan al rastreo

> Cómo la caché HTTP y la CDN deciden qué ven Googlebot y los bots de IA en tu tienda: ETag, 304, max-age y los bloqueos que sacan páginas del índice.

URL: https://clione.ai/es/glosario/cache-cdn-bots/
Lang: es

Aquí caché no es la del navegador ni el botón de «vaciar caché» de una app: es la capa que hay entre tu servidor y quien pide una página, y que a menudo responde por él. Casi todas las tiendas tienen una delante, la de su plataforma o la de su CDN (_content delivery network_), y eso cambia lo que ve un [rastreador](/es/glosario/rastreador/): **ve lo que la caché le da, cuando la caché se lo da**, y a veces solo ve el muro con el que la CDN para a los bots que no reconoce. Para una tienda, ahí se juega cuánto tarda Google en ver un precio nuevo y si una [ficha de producto](/es/glosario/ficha-de-producto/) sigue en el índice después de una regla de seguridad mal puesta.

## Cómo funciona

El estándar es el RFC 9111 (junio de 2022). Distingue dos tipos de caché: la **privada**, dedicada a un solo usuario y normalmente dentro del navegador, y la **compartida**, que guarda respuestas para reutilizarlas con más de un usuario y suele vivir en un intermediario. Una respuesta guardada está **fresca** mientras su edad no supera su tiempo de vida, y entonces puede servirse sin preguntar al servidor de origen; después está **caducada**.[^rfc9111] Una CDN es una caché compartida a escala: Google la describe como un intermediario entre tu servidor de origen y el usuario, cuyo trabajo principal ha sido siempre guardar copias.[^google-cdns]

### Las peticiones condicionales

Un rastreador no tiene por qué descargar otra vez una página que no ha cambiado. La infraestructura de rastreo de Google admite las dos formas del estándar: `ETag` con `If-None-Match`, y `Last-Modified` con `If-Modified-Since`. El rastreador manda el valor que guardó la última vez; si coincide con el actual, el servidor responde **304 (_Not Modified_) sin cuerpo**, y se ahorra generar la página y enviarla.[^google-caching]

Google **recomienda `ETag`**, porque `Last-Modified` tiene problemas de formato de fecha,[^google-crawlers] y sugiere poner los dos si se puede. Si una misma URL tiene varias versiones, por ejemplo para móvil y escritorio, cada una debería llevar su propio `ETag`. Y deja a tu criterio qué cambio merece invalidar la caché: un cambio importante del contenido sí; actualizar el año del pie de página, probablemente no.[^google-caching] También aconseja indicar en `Cache-Control` un `max-age` con los segundos que esperas que el contenido no cambie, para ayudar al rastreador a decidir cuándo volver.[^google-crawlers]

El dato que da contexto: según Google, hace diez años un 0,026 % de sus peticiones de rastreo se podían resolver desde la caché, y en diciembre de 2024 **solo un 0,017 %**.[^google-caching]

### La CDN y el ritmo de rastreo

Google deduce por la IP que un sitio está detrás de una CDN, y entonces sube el umbral a partir del cual frena el rastreo: supone que el sitio aguanta más peticiones simultáneas. La trampa está en la primera visita. La caché de la CDN empieza fría, así que **tu servidor tiene que servir cada URL al menos una vez** antes de que la CDN ayude; si publicas muchas URL de golpe, Google avisa de que el rastreo será intenso durante unos días.[^google-cdns] Es una de las piezas del [presupuesto de rastreo](/es/glosario/presupuesto-de-rastreo/).

Si tus páginas cambian según una cabecera de la petición, la caché solo puede reutilizar una respuesta cuando las cabeceras que nombra `Vary` coinciden con las de la nueva petición.[^rfc9111] Es el punto donde la caché se cruza con la [negociación de contenido](/es/glosario/negociacion-de-contenido/).

## Cuando la CDN para al bot equivocado

La misma protección que frena a un ataque puede frenar a [Googlebot](/es/glosario/googlebot/). Google separa dos tipos de bloqueo, y no pesan igual:[^google-cdns]

| Lo que recibe el rastreador        | Lo que pasa, según Google                                                                                                                          |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Un 503 o un 429                    | Es la forma preferida de señalar un bloqueo temporal: te da tiempo a reaccionar                                                                    |
| Un tiempo de espera agotado        | Se trata como un error definitivo: las URL afectadas salen del índice y el ritmo de rastreo puede bajar                                            |
| Una página de error con código 200 | Si Google la detecta como error, retira la URL; si no, las páginas con el mismo mensaje pueden eliminarse como duplicadas, y recuperarse tarda más |
| Un desafío de «¿eres humano?»      | El rastreador solo ve el desafío, no tu página. Google recomienda responder a los clientes automatizados con un 503                                |

**Un desafío de verificación que deja pasar a las personas no deja pasar a los bots que quieres.** Google, otros buscadores y otros operadores de rastreadores publican sus direcciones IP para que puedas identificarlos y, si te parece bien, sacarlos de las reglas del cortafuegos de la CDN.[^google-cdns] Las reglas para los bots de IA tienen su propia entrada, [bloqueo de bots de IA](/es/glosario/bloqueo-de-bots-de-ia/).

## En una tienda

Dos visitas del mismo rastreador a la ficha de una tienda **ejemplo ficticio**. La primera recibe la página entera, con su `ETag` y un `max-age` de una hora:

```http
GET /productos/moka-inox-6 HTTP/1.1
Host: cafeteras-ejemplo.es

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
ETag: "moka-inox-6-v42"
Cache-Control: max-age=3600
```

La segunda, días después, manda ese `ETag`. Si la ficha no ha cambiado, la respuesta no lleva cuerpo:

```http
GET /productos/moka-inox-6 HTTP/1.1
Host: cafeteras-ejemplo.es
If-None-Match: "moka-inox-6-v42"

HTTP/1.1 304 Not Modified
ETag: "moka-inox-6-v42"
```

La regla que se deduce para una tienda: **si cambias el precio, la disponibilidad o los [datos estructurados](/es/glosario/datos-estructurados/) de la ficha, el `ETag` tiene que cambiar**. Un `ETag` que no cambia con el contenido le dice al rastreador que no hay nada nuevo que leer.


Dar por bueno el desafío anti-bots porque los clientes pasan sin problema. El rastreador no es una persona ni finge serlo: cuando aparece el desafío, **es lo único que ve**. Google pide un 503 para los clientes automatizados, para que la página no salga del índice, y propone mirar la captura renderizada de la Inspección de URLs en [Search Console](/es/glosario/search-console/): si ves la página, bien; si ves un error, una página vacía o el desafío, toca hablar con tu CDN.[^google-cdns]


## Cómo comprobarlo

1. **Mira las cabeceras de tu ficha** con `curl -sI https://tu-dominio/productos/tu-producto`: busca `ETag`, `Last-Modified` y `Cache-Control`. Sin ninguna de las dos primeras, un rastreador no puede hacer peticiones condicionales.[^google-caching]
2. **Repite la petición con `If-None-Match`** y el `ETag` que te dio la primera. Si la ficha no ha cambiado, debería volver un 304 sin cuerpo.[^google-caching]
3. **Abre la Inspección de URLs de Search Console** con una ficha y mira la captura renderizada. Un desafío o una página vacía apuntan a la CDN.[^google-cdns]
4. **Revisa las reglas de bots de tu CDN** contra las IP que publican Google y los demás operadores de rastreadores que te interesan, y hazlo de vez en cuando: Google avisa de que una IP puede acabar en una lista de bloqueo sin que lo sepas.[^google-cdns]
5. **Cambia un precio de prueba y vuelve a pedir la ficha.** Si la respuesta sigue igual, la caché está sirviendo una copia fresca según su `max-age`.[^rfc9111]

## Concepto cercano: presupuesto de rastreo

El presupuesto de rastreo es cuánto rastrea un buscador de tu sitio; la caché y la CDN deciden **cuánto le cuesta** cada una de esas peticiones a tu servidor. Un 304 sin cuerpo y una CDN que responde desde su copia abaratan cada visita, y una CDN también sube el ritmo que Google se permite.[^google-cdns][^google-caching] Pero la caché no hace que una página se indexe: solo decide qué recibe el rastreador. La diferencia entre las dos cosas está en [la diferencia entre rastrear e indexar](/es/glosario/rastreo-vs-indexacion/).

Para seguir, [Web Bot Auth](/es/glosario/web-bot-auth/) explica cómo puede tu CDN reconocer a un bot por su firma y no solo por su IP, y la [ruta de lectura](/es/aprender/rastreo-e-indexacion/) de rastreo e [indexación](/es/glosario/indexacion/) ordena el resto de términos.
