Definición
Una CDN (Content Delivery Network) es una red de servidores repartidos geográficamente que guardan copias de los ficheros de tu web —imágenes, CSS, JavaScript, y a veces páginas enteras— y los entregan desde el nodo más cercano a cada visitante.
El problema que resuelve es físico y no se puede optimizar de otra manera: la luz tarda en recorrer distancias. Si tu servidor está en Madrid y alguien entra desde Buenos Aires, cada petición cruza el Atlántico dos veces. Son unos 200 milisegundos de ida y vuelta, multiplicados por cada fichero. Con una CDN, ese visitante descarga desde un nodo en Sudamérica y pasa a 20 milisegundos.
Qué aporta además de velocidad
Menos carga en tu servidor. Si la CDN sirve el 90 % de las peticiones, tu servidor solo atiende el 10 %.
Aguante ante picos. Una campaña que te traiga un pico de visitas la absorbe la CDN.
Protección. Casi todas incluyen mitigación de ataques de denegación de servicio y un cortafuegos de aplicación. Para muchos sitios, esto vale más que la velocidad.
HTTPS y HTTP/2 gratis, incluso si tu servidor de origen es viejo.
Cómo funciona
- Cambias los registros DNS para que tu dominio apunte a la CDN.
- El visitante pide un fichero y llega al nodo más cercano.
- Si el nodo lo tiene en caché y sigue vigente, lo sirve al instante.
- Si no, lo pide a tu servidor de origen, lo guarda y lo sirve.
- Los siguientes visitantes de esa zona ya lo reciben del nodo.
La clave es qué se puede cachear. Lo estático —imágenes, tipografías, CSS, JavaScript— sin problema. El HTML depende: si es igual para todos, también; si cambia por usuario, no.
Ejemplo práctico
Mis webs no usan CDN, y es una decisión razonada que ilustra cuándo no hace falta.
El público de IMDICA y de AEWorks es español. El servidor está en Europa. La distancia física entre un visitante de Barcelona y el servidor no da para que una CDN aporte gran cosa: hablamos de una diferencia de pocos milisegundos.
Además, esta web es estática: son ficheros HTML que el servidor entrega sin calcular nada. Ya responde en décimas de segundo. La CDN optimizaría algo que no es el cuello de botella.
Lo que sí hicimos en su lugar fue la optimización que de verdad importaba: bajar el peso. Una imagen del asistente pesaba 1 MB y se mostraba a 99×99 píxeles. Redimensionada y convertida a WebP, 29 KB. Con eso y un par más, las páginas bajaron de 2,5 MB a menos de 1 MB.
Esa es la lección que saco: una CDN acelera la entrega de lo que mandas; no reduce lo que mandas. Si tu página pesa 2,5 MB, con CDN pesará 2,5 MB y llegará algo antes. Primero adelgaza, después reparte.
Dónde sí la pondría: si el público fuera internacional, si hubiera vídeo o descargas pesadas, o si el sitio recibiera ataques.
Errores comunes
- Cachear contenido privado. Si la CDN guarda una página con datos de un usuario y se la sirve a otro, tienes una fuga de datos seria. Todo lo que dependa de la sesión tiene que ir marcado como no cacheable.
- No purgar al desplegar. Publicas una versión nueva y la CDN sigue sirviendo la anterior durante horas. Se resuelve versionando los nombres de fichero o purgando en el despliegue.
- Creer que sustituye a optimizar. No comprime tus imágenes por ti (salvo que actives esa función), y no reduce el JavaScript que mandas.
- Complicar la depuración. Con CDN por delante, ya no sabes si lo que ves viene de tu servidor o de un nodo. Las cabeceras de respuesta te lo dicen: mira si pone acierto o fallo de caché.
- Ponerla porque sí. Es una capa más que puede fallar, con su propia configuración y sus propias sorpresas.
Cuándo usarla
Sí cuando tienes público en varios países o continentes, cuando sirves ficheros pesados, cuando recibes picos de tráfico importantes o cuando necesitas protección ante ataques.
No cuando tu público es local, tu web ya es ligera y tu servidor va sobrado. En ese caso la CDN añade complejidad sin resolver ningún problema que tengas hoy.
Y el orden correcto de optimización, que es el que casi nadie sigue: mide primero, adelgaza después, y reparte al final.