Apple Podcasts | Google Podcasts | Spotify | Pandora | RSS
Hoy vamos a hablar de que es un CDN, para que sirve, si es recomendable usarlo, pero antes… Demos paso al patrocinador!!!!:
- WebEmpresa, hosting especializado en WordPress.
- Es el hosting que usamos nosotros desde hace tiempo
- En pampua.es/webempresa te dejamos los 13 motivos que tienes contratarlo; échale un vistazo!
- Además te damos un cupón del 20% de descuento. Entra ahora mismo en pampua.es/webempresa y guárdate tu cupón.
Es probable que hayas oído hablar bastante de los CDN y de su capacidad de acelerar las páginas web, entre otros usos.
Y no me extraña, ya que la velocidad de navegación en un sitio web es, sin duda, uno de los factores más relevantes para mejorar la experiencia de usuario, mientras tus usuarios navegan a través de las páginas de tu web.
Hoy en día, una página que tarde más de 2-3 segundos en mostrarse en pantalla, hará que el usuario pierda la paciencia y la abandone, para encontrar en otra parte lo que busca.
Después de todo, en Internet todo está a unos pocos clics de ratón, así que, ¿para qué esperar si puede ir a otro sitio sin apenas esfuerzo?
A su vez, la experiencia de usuario influye en el SEO de una web, ya que Google penaliza las páginas que tardan demasiado en cargar, precisamente por su efecto negativo en este factor.
Esto, hasta ahora, era razón suficiente para ponernos las pilas y empezar a optimizar las imágenes (ep. 7), instalar un plugin de caché (ep. 10), utilizar plugins que consuman pocos recursos (hablaremos de ello la semana que viene), etc.
Otra forma de optimizar: usar un CDN
A diferencia de otras optimizaciones realizadas sobre recursos o componentes instalados en el servidor web o en WordPress, con un CDN intervienen servidores externos, que interactúan con el servidor web para acelerar la descarga de una página web y, en consecuencia, la velocidad de navegación.
A continuación, te mostraré en qué consiste, cómo funciona y, desde un punto de vista práctico, cómo puedes instalar y configurar un CDN en tu WordPress, para aprovechar todas sus ventajas.
¿Qué es un CDN?
Un CDN es, de forma muy resumida, un conjunto de servidores distribuidos por todo el planeta y conectados entre ellos a través de Internet.
Pero, para creo que la mejor forma de comprender qué es un CDN y cómo funciona es conociendo primero el proceso que se sigue, desde que un usuario introduce una dirección en su navegador hasta que la página web correspondiente aparece en pantalla.
Aunque no hay diferencias significativas con otros gestores de contenidos, con el fin de simplificar la descripción de este proceso, vamos a suponer a partir de ahora que accedemos a la página web de un sitio en WordPress. El procedimiento sería el siguiente:
- El usuario introduce la dirección en su navegador.
- El navegador identifica el servidor correspondiente a esa dirección y le solicita la correspondiente página web.
- El servidor recibe esta petición y WordPress genera un fichero HTML, a partir de la información almacenada en sus bases de datos.
- Dicho servidor envía este fichero HTML al navegador que hizo la petición (punto 2).
- Cuando el navegador recibe el fichero HTML, lee e interpreta su contenido.
- Durante esta interpretación, pueden aparecer referencias (direcciones web) a diversos recursos, como ficheros de estilos o imágenes, que forman parte del contenido o estructura de la página web.
- Por cada una de estas referencias, el navegador solicita ese recurso al mismo servidor.
- El servidor atiende cada una de estas peticiones, localizando el correspondiente recurso en su disco duro y enviándolo al navegador.
- A medida que el navegador va recibiendo estos recursos, va generando y mostrando la página web al usuario.
Por regla general, todos los recursos de una página (punto 6), se encuentran alojados en el mismo servidor que ha generado el fichero HTML (punto 3).
La utilización de este tipo de herramientas libera al servidor de hosting de esta última tarea, de forma que solo deberá encargarse de atender las peticiones del navegador (puntos 3 y 4). Por su parte, el CDN se encargará de atender las referencias a los recursos estáticos (puntos 7 y 8).
¿Cómo funciona un CDN?
Si analizamos en detalle el proceso descrito en el punto anterior, observaremos que gran parte del trabajo realizado por el servidor de alojamiento no está, paradójicamente, dedicado a la tarea más importante: generar y entregar la página HTML al navegador que la solicita.
En vez de ello, el servidor de alojamiento dedica un elevado tiempo de proceso a, simplemente, localizar y entregar ficheros de recursos al navegador.
Entre estos recursos, los más frecuentes son las imágenes, que suelen ocupar bastante más espacio y, en consecuencia, consumen mayor ancho de banda que la propia página HTML, por muy optimizadas que estén.
Con este recurso, el servidor de alojamiento puede centrar su trabajo en lo importante: atender las peticiones de los usuarios, generar los ficheros HTML que le solicitan y entregarlos de vuelta.
Hasta ahora, sólo nos hemos parado en ver el efecto externo de utilizarlo, pero seguramente empiezas a vislumbrar algunas de las ventajas que nos puede aportar.
Pero, antes de ver en detalle para qué sirve, vamos a pararnos un poco en saber cómo funcionan los CDN’s y así comprender mejor todas sus posibilidades.
Esquemáticamente, el principio del funcionamiento de un CDN se basa en los 3 puntos siguientes:
- Disponiendo de una extensa red de servidores, conectados a través de Internet, dispersos a lo largo y ancho de toda la geografía terrestre.
- Almacenando localmente en esos servidores una copia de todos los ficheros de recursos estáticos que tenemos en nuestro servidor de alojamiento.
- Interfiriendo y atendiendo las peticiones de estos ficheros de recursos cuando un navegador los solicite para generar y mostrar la página web al usuario.
Veamos a continuación cada punto con más detalle…
► Disponiendo de una red de servidores
Aunque hasta ahora nos hemos referido al CDN de forma singular, como si fuera un único elemento, en realidad se trata de un conjunto de servidores, distribuidos por todo el planeta y conectados entre ellos a través de Internet.
Gracias a esta disposición, cuando un navegador solicita un recurso, le atiende el servidor que tenga más próximo a su propia localización geográfica, reduciendo enormemente el tiempo de envío y recepción de los datos.
La gestión y funcionamiento internos de esta red de servidores es completamente transparente tanto para el propietario del sitio web que utiliza el CDN, como para los usuarios que navegan a través de sus páginas.
Para uno y otro, éste tiene la apariencia externa de un único servidor que entrega los ficheros de recursos a través de Internet.
► Almacenando localmente los recursos
Tiene sentido, ya que si el CDN (no nos importa cuál de sus servidores) va a entregar, por ejemplo, una imagen a un navegador, debe disponer de ese fichero imagen en su propio disco duro.
Si tuviera que solicitarlo al servidor de alojamiento, dejaríamos de tener todos los beneficios que nos podría proporcionar.
La forma en que estos ficheros llegan, se almacenan y se distribuyen entre los servidores del mismo, que puede variar en función de la configuración del servicio y también es transparente a nosotros, sin que tengamos que intervenir para nada.
Por defecto, la mayoría de los CDN’s hacen una copia local de todos los ficheros de recursos cuando se instalan y activan por primera vez. Igualmente, el propio CDN se encarga de revisar que su copia local esté actualizada con cualquier cambio en el fichero original del servidor de alojamiento.
► Interfiriendo y atendiendo las peticiones de los recursos
Hasta el momento, disponemos de una red de servidores y, distribuidos en ellos, una copia de todos nuestros ficheros de recursos.
Sin embargo, las referencias (direcciones web) a estos recursos desde el código HTML de las páginas web siguen siendo a nuestro servidor de alojamiento.
Esto significa que, cuando el navegador lea e interprete estas direcciones web en el código HTML, los seguirá solicitando al servidor de alojamiento, no a los servidores.
Por tanto, para que el navegador descargue esos ficheros desde el CDN, habrá que cambiar esas direcciones web para que apunten a los servidores del CDN en vez de al servidor de alojamiento.
Aquí podemos asustarnos un poco: ¿tenemos que cambiar las direcciones web de TODAS nuestras imágenes?
En principio sí, pero los proveedores de este tipo de herramienta proporcionan herramientas (como un plugin de CDN para WordPress), para hacerlo por nosotros automáticamente, con lo que tampoco debemos preocuparnos de eso.
► Modalidades de funcionamiento de un CDN
Los proveedores para WordPress pueden optar por dos alternativas a la hora de interferir y atender las peticiones de los recursos:
- La primera ya la hemos descrito anteriormente: un plugin CDN WordPress, proporcionado por el proveedor del mismo, que modifica las direcciones web en el código HTML de las páginas web, para que apunten a las respectivas copias de los ficheros de recursos en los servidores.
Una vez instalado y configurado este plugin, el proceso de cambiar las direcciones web es automático y transparente, tanto para el propietario del sitio web como para los usuarios que navegan por él, que no tienen por qué saber dónde están realmente alojados los recursos.
- Por su parte, en la segunda modalidad, las direcciones web en las páginas no varían, sino que los servidores atienden directamente a esas direcciones, como si fueran el servidor de alojamiento original. En este caso, el servidor CDN de WordPress funciona como un proxy, colocándose entre el navegador y el servidor de alojamiento.
Cuando el servidor puede suministrar el recurso solicitado, porque tiene una copia local, lo entrega en ese momento. Si no lo puede suministrar, ya sea porque no está almacenado en su disco duro o porque es una copia obsoleta, redirige la petición al servidor de alojamiento para que la atienda.
Con esta modalidad, el servidor de alojamiento siempre estará detrás del servidor CDN, por lo que obtiene una capa adicional de seguridad contra posibles ataques externos, que primero deberán atravesarlo.
Además, dispone de la posibilidad de almacenar una copia estática de las páginas web, comportándose como un servidor caché, especialmente útil cuando nuestras páginas de contenido cambian con poca frecuencia.
El propio servidor CDN se encarga de actualizar periódicamente estas copias estáticas para asegurar que los usuarios siempre tengan acceso a la versión más reciente de las páginas.
¿Que significa CDN?
Content Delivery Network o lo que es lo mismo: Red en distribución de contenido.
¿Para qué sirve un CDN?
Ahora que sabemos en qué consiste este término y cómo funciona, veamos qué servicios nos proporciona un CDN en WordPress y cómo podemos aprovecharlos para mejorar el tiempo de respuesta de nuestro servidor y, en consecuencia, la velocidad de navegación de nuestros usuarios:
1. Almacenamiento y entrega de ficheros de recursos estáticos
Fundamentalmente imágenes y ficheros CSS. Esta es la principal característica de los servidores y casi su razón de ser.
Como se ha comentado anteriormente, al disponer de una copia local de los recursos estáticos, se libera al servidor de alojamiento de tener que enviarlos al navegador cuando un usuario accede a una de sus páginas web, liberándolo para así dedicarse a otras tareas.
2. Caché de los recursos dinámicos
Los recursos dinámicos son aquellos que genera un gestor de contenidos cada vez que se visita el sitio web.
Por ejemplo, en WordPress, las páginas web son generadas cada vez que un usuario accede a ella. Cuando el sitio web tiene muchas visitas, este proceso se repite continuamente, lo que afecta al rendimiento del servidor de alojamiento.
Para evitarlo, se puede configurar un CDN para WordPress, que almacene una copia estática de estas páginas dinámicas y que actúe como una caché, cuando varios usuarios naveguen por las mismas páginas.
Él mismo se encarga de mantener actualizadas sus copias estáticas locales con el servidor de hosting.
En este punto, hay que señalar que no todos los CDN para WordPress ofrecen este servicio y que, en la mayoría de los casos, suele ser un servicio de pago.
3. Respuesta más rápida para usuarios de otros países
Nuestro servidor de alojamiento es uno, o un pequeño conjunto de servidores si el sitio web es grande, ubicado en una única localización geográfica.
Este servidor atiende las peticiones realizadas por usuarios desde cualquier parte del mundo.
Cuando más lejos esté dicho usuario, más tiempo de tránsito necesitan los datos para transferirse desde el navegador hasta el servidor y viceversa.
Con este recurso, este problema desaparece, puesto que tienen sus servidores diseminados en todos los continentes.
Cuando un usuario accede a nuestro sitio web, le atenderá el servidor CDN que esté más próximo a su ubicación física, reduciendo significativamente el tiempo de tránsito y, en consecuencia, el tiempo de descarga y navegación de la página web.
4. Optimización del uso de recursos del servidor de hosting
En la primera sección de este artículo, vimos cómo era el proceso completo de generación y descarga de una página web, en que gran parte de la capacidad del servidor de alojamiento, como el tiempo de proceso y el ancho de banda, se dedicaban a la atención y descarga de los ficheros de recursos estáticos.
Al externalizar esta descarga, el servidor puede dedicar un mayor porcentaje de su potencia a lo realmente importante: la atención a los usuarios y la generación de las páginas web que visitan.
De esta forma, podrá atender a un mayor número de usuarios y servir más páginas web sin afectar negativamente al tiempo de descarga y navegación.
5. Protección contra ataques de hackers
Especialmente los ataques de Denegación de Servicio (DoS o DDoS), que consiste en realizar un alto número de accesos simultáneos al servidor, con objeto de saturarlo y no pueda atender las peticiones de usuarios legítimos.
Los servidores CDN disponen de mecanismos para detectar cuando se produce este tipo de ataques y contrarrestarlos, evitando o limitando el efecto que pueda tener sobre el funcionamiento normal del servidor de alojamiento.
Sin embargo, no debe utilizarse un CDN para WordPress como principal herramienta de protección frente a este tipo de ataques, puesto que el servidor de alojamiento sigue estando accesible a través de Internet y los hackers pueden encontrar caminos para acceder directamente a él, bordeando los servidores.
Por tanto, para prevenir estos ataques directos, siempre deberá contarse también con un proveedor de hosting de calidad, que disponga de medidas de seguridad contra estos ataques.
¿Cómo puedo instalar un CDN para mi Web WordPress?
La instalación de un CDN en una web en WordPress no presenta muchas dificultades, gracias a que los proveedores proporcionan plugins que realizan gran parte del trabajo, junto con la configuración del servicio, para registrar el sitio web.
Aunque cada proveedor de este tipo de recursos tiene sus respectivas particularidades a la hora de instalar y configurar el plugin y el servicio en sí, la diferencia principal viene dada por la modalidad de funcionamiento:
► Redirección de las URL’s de los ficheros de recursos
Para esta modalidad, la integración de un servicio de este tipo requiere estos 2 pasos generales (los detalles pueden variar ligeramente entre proveedores):
- Registrarse en la plataforma CDN, a través de la web del proveedor y activar el sitio web que utilizará el CDN. Aunque la nomenclatura puede variar entre proveedores, suelen denominarlo “zona”. A esta zona, éste le asocia una URL, que debemos anotar.
- Instalar el plugin para el CDN, que se encargará de hacer la redirección de todos los ficheros de recursos. Para ello, deberemos configurar con la URL de zona que anotamos en el punto anterior.
Proveedores bajo esta modalidad estarían KeyCDN y AWS CloudFront (de Amazon).
Ambos ofrecen un periodo de prueba, pasado el cual hay que suscribirse a algún plan de pago.
► Servidor CDN como proxy
Integrar un servicio de esta índole que funciona como proxy también requiere dos pasos generales:
- Registrarse en la plataforma CDN, a través de la web del proveedor, y activar el sitio web. Al hacerlo, éste proporciona los servidores de nombre para el dominio del sitio web.
- Cambiar los servidores de nombres en nuestro proveedor para que apunten a los servidores de nombres del CDN. Desde ese momento, cualquier acceso a nuestro sitio web se hará siempre y exclusivamente a través de los servidores.
En este caso, no es imprescindible la instalación del plugin de CDN para WordPress, puesto que los cambios anteriores son suficientes para el funcionamiento del recurso. Aunque sí es aconsejable, para poder configurar algunas áreas sin tener que entrar en la web del proveedor.
Proveedores de este tipo que actúen como proxies serían CloudFlare e Incapsula.
Ambos ofrecen un servicio gratuito sin límite de tiempo y con suficientes prestaciones para sitios web pequeños y medianos con un volumen de tráfico no muy elevado.
► Instalación y configuración del CloudFlare CDN WordPress
Como vimos en el apartado anterior, CloudFlare pertenece a los CDN’s que actúan como un proxy, situándose por delante del servidor de nuestro sitio web y atendiendo directamente a los navegadores.
A continuación veremos cómo instalar y configurar este CDN para WordPress, desde tres frentes:
- Registro del sitio web en CloudFlare
- Entra en la página de registro de CloudFlare y crea una cuenta con tus datos.
- Después de crear la cuenta, debes añadir tu sitio web en la plataforma, para que CloudFlare lo analice y registre sus datos de nombre de dominio. Tan sólo necesitas introducir la dirección web y dejar que CloudFlare lo escanee:
- CloudFlare muestra una pantalla con los datos de dominio que ha detectado del sitio web y que solo tenemos que validar.
Observarás que extrae muchos datos, pero los relevantes para el funcionamiento son los dos remarcados en la siguiente imagen, que siempre aparecerán con el icono de la nube naranja (“On CloudFlare”):
4.- En la siguiente pantalla, debemos seleccionar el plan de pago. Por ahora, elegiremos el plan gratuito, pero siempre tendremos la opción de contratar cualquier otro plan:
5.- A continuación, CloudFlare te muestra los dominios de tus servidores de nombre (a la izquierda en la imagen siguiente) y los dominios de los servidores de nombre por los que debes sustituirlos (columna de la derecha). Toma nota de estos dominios:
6.- El sitio ya está registrado pero, hasta que no cambiemos los dominios de los servidores de nombre en nuestro proveedor de dominios, CloudFlare lo deja en estado pendiente:
El registro del sitio web ya está terminado y no necesitamos hacer nada más.
CloudFlare lo activará automáticamente, tan pronto detecte que hemos cambiado los servidores de nombre.
- Cambio de los servidores de nombre
Este cambio depende del proveedor de dominios que tengamos contratado.
Veamos los pasos que, en general, deberemos seguir con cualquier proveedor:
- Acceder a nuestra cuenta en la web del proveedor de nombres de dominio.
- Entre las opciones de configuración, localizar la opción que muestre los servidores que nos proporciona el proveedor.
- El proveedor siempre suministra dos servidores DNS. Debemos modificarlos para introducir en su lugar los dos servidores de nombre que nos proporcionó CloudFlare al registrar nuestros sitio web (punto 5 del apartado anterior).
- Una vez hecha la modificación, pueden pasar hasta 24-48 horas para que el cambio se difunda por toda la red. No es posible acelerarlo, así que solo nos queda esperar.
En el momento que CloudFlare detecte que el cambio se ha producido, activará éste para nuestro sitio web, sin necesidad de que intervengamos más.
5. Una vez que CloudFlare lo ha activado, debemos indicarle que no cachee el panel de control de WordPress, puesto que podría afectar a su correcto funcionamiento.
Para ello, accedemos de nuevo a la web de CloudFlare y añadimos la una regla de página (“Page rules”) para la carpeta wp-admin, con los siguientes valores: Disable Security, Browser Caché TTL 4hours, Always Online Off, Cache level: Bypass, Disable Apps, Disable Performance.
- Instalación del plugin CloudFlare CDN WordPress
La instalación del plugin no es imprescindible, pero nos permite configurar directamente desde nuestra web las opciones más útiles, sin tener que entrar en la plataforma web del CDN. Puesto que no es imprescindible yo no recomiendo instalarlo.
Conclusiones
Recomiendo utilizar un CDN por varias razones: la optimización de posicionamiento orgánico, añadir una capa adicional de seguridad contra hackers al sitio web y un mejor aprovechamiento de los recursos del servidor de alojamiento.
A pesar de la complejidad técnica que hay detrás de su funcionamiento ya hemos visto como instalar el CDN de Cloudflare.
Anímate, instálalo y cuéntame como te ha ido. Te recomiendo pasar un test de velocidad antes y después para comprobar su eficacia.
Por hoy nada más, ya sabes; si ves que no tienes tiempo para montar tu web, o ya la tienes pero necesitas que te ayude a mejorarla, pásate por Pampua.es y estaré encantado de echarte una mano con tus problemas.
Y si quieres que en próximos episodios hable de algún tema en concreto o tienes cualquier duda o comentario que quieras hacerme, déjamelo en Pampua.es/contacto, en los comentarios de iVoox, en twitter @pampua, o en nuestra página de Facebook: fb.me/pampua
Si te ha gustado este episodio compártelo al menos con una persona a la que pueda resultarle interesante. Por whatsapp, por mail, por Facebook, twitter o incluso por SMS, como quieras, pero compártelo!
Y por último estaré inmensamente agradecido si me dejas una reseña de 5 estrellas en iTunes o un me gusta y un comentario en iVoox. Puedes ver cómo dejar una reseña en www.pampua.es/resena
El jueves que viene trataremos un tema muy interesante: Los plugins de WordPress y cómo afectan al rendimiento.
Muchísimas gracias por escuchar hasta el final, por comentar, por tus “Me gusta” y reseñas. Nos escuchamos la semana que viene con más y mejor!
Deja una respuesta