Speeding Up Wpbeginner - Behind The Scenes

Cómo hicimos WordPress más rápido que los generadores de sitios estáticos (estudio de caso

Con motivo del décimo aniversario de MundoCMS, compartí que la infraestructura de alojamiento de MundoCMS se ha actualizado significativamente gracias a nuestro socio de alojamiento web, HostGator. Poco después, comencé a recibir correos electrónicos de lectores que me pedían que compartiera los detalles de cómo hicimos que MundoCMS se cargara extremadamente rápido. Sí, MundoCMS se carga más rápido que la mayoría de los creadores de sitios estáticos y, en algunos casos, más rápido que los sitios de Google AMP. En este artículo, te daré una mirada entre bastidores sobre cómo hemos hecho que WordPress sea más rápido que los creadores de sitios estáticos y las plataformas CMS sin cabeza.

Notar: Este artículo es un poco más técnico de lo que normalmente publicamos en MundoCMS. Para los usuarios no expertos, recomiendo seguir nuestra guía definitiva sobre cómo acelerar WordPress.
Poner al día: Ya no usamos la configuración compartida en este artículo. En cambio, hemos hecho el cambio por completo a la plataforma Google Cloud operada por SiteGround. Tenemos los mismos resultados de velocidad y hemos desbloqueado un rendimiento de back-end aún más rápido. Lea por qué nos cambiamos a SiteGround.

Fondo

Últimamente WordPress ha recibido muchas malas respuestas de los desarrolladores «modernos» donde dicen que WordPress es lento. La instrucción suele ir seguida de, debe cambiar a un generador de sitios estáticos JAMstack como GatsbyJS. Otros en el mundo empresarial dirán que debería actualizar a un CMS sin cabeza como Contentful. Varios de mis amigos emprendedores de mucho éxito comenzaron a preguntarse si esto era cierto. Algunos incluso comenzaron el proceso de migración a un CMS sin cabeza mientras leían estudios de casos de cómo otros desbloquearon enormes mejoras de velocidad al cambiar de WordPress a creadores de sitios estáticos. Fue muy frustrante para mí porque sabía que estaban desperdiciando decenas de miles de dólares en costos de migración. Sin mencionar los interminables costos de personalización que se acumularán en el futuro. Así que acepté el desafío de demostrar que un gran sitio de contenido de WordPress como MundoCMS puede cargar tan rápido, si no más rápido, que la mayoría de los creadores de sitios estáticos modernos. Puedes llamarme vieja escuela, pero al final del día, un sitio estático es solo una página que se carga desde la caché.

Resultados

Antes de pasar a la infraestructura exacta de alojamiento de WordPress, las configuraciones del servidor y los complementos, creo que vale la pena compartir los resultados. A continuación, se muestra qué tan rápido se carga la página de inicio de MundoCMS en Pingdom desde su servidor en Washington, DC:

Página De Inicio De Mundocms Pingdom
Dependiendo de la hora del día y la ubicación desde la que esté comprobando, este resultado variará entre 400 ms y 700 ms, lo que es bastante rápido para una página de inicio. Aquí hay una prueba que ejecuté para una sola página de publicación porque tiene imágenes más grandes y más contenido:
Prueba De Velocidad De Página De Publicaciones Individuales Mundocms De Pingdom
También obtuvimos una puntuación perfecta de «100» en la prueba de velocidad de la página de Google Desktop. Aunque tenemos margen de mejora en la puntuación móvil.
Prueba De Velocidad De Página De Google Mundocms
Los resultados anteriores se refieren a páginas almacenadas en caché, que es lo que obtienen nuestros lectores y robots de motores de búsqueda cuando visitan nuestro sitio web. El tiempo de carga percibido de MundoCMS es casi instantáneo (más sobre esto más adelante). A modo de comparación, aquí hay un resultado de la prueba de velocidad para la página de inicio de Gatsby. Este es un popular generador de sitios estáticos que a muchos desarrolladores les encanta:
Página De Inicio De Gatsby Pingdom
Este es el resultado de la prueba de velocidad de la página de inicio de Netlify, un popular host de sitios estáticos, que recomiendan muchos desarrolladores. Tenga en cuenta que tienen la mitad de solicitudes y el tamaño de su página es del 30% MundoCMS, pero aún se carga más lento que nuestra página de inicio.
Pingdom De La Página De Inicio De Netlify
La velocidad de la página de inicio de Contentful, el CMS sin cabeza que permite a las empresas ofrecer mejores experiencias digitales, simplemente no está optimizada. Fue el sitio web más lento que probamos.
Página De Inicio Con Contenido Pingdom
Estoy compartiendo estas estadísticas no para desacreditar a otros ejecutivos, sino para dar una perspectiva de que no todas las cosas nuevas son tan brillantes como parecen. WordPress con la infraestructura de alojamiento adecuada y las optimizaciones puede ser tan rápido como cualquier creador de sitios estáticos. Además, ninguna otra plataforma se acercará siquiera al nivel de flexibilidad que WordPress ofrece a los propietarios de negocios a través de su vasto ecosistema de complementos y temas.

Infraestructura de alojamiento MundoCMS

Cuando se trata de la velocidad del sitio web, nada juega un papel más importante que su infraestructura de alojamiento web. Como muchos de ustedes ya saben, he sido cliente de HostGator desde 2007. Comencé el blog MundoCMS en 2009 en una pequeña cuenta de alojamiento compartido de HostGator. A medida que nuestro sitio web crecía, pasamos a su alojamiento VPS y luego a sus servidores dedicados. Durante la última década, he tenido la suerte de trabajar en estrecha colaboración con muchos de los miembros de su equipo, y se han convertido en una parte extendida de la familia MundoCMS. Entonces, cuando asumí el desafío de hacer que MundoCMS fuera más rápido que los creadores de sitios estáticos, recurrí a ellos en busca de ayuda. Compartí mi visión con su equipo de administración y se ofrecieron a ayudarme a crear una configuración de alojamiento empresarial única en su tipo para MundoCMS. Pusieron a los mejores ingenieros del equipo de Bluehost y HostGator para trabajar estrechamente conmigo para hacer que MundoCMS sea súper rápido. Aquí hay un vistazo a cómo se ve la configuración de alojamiento de MundoCMS:
Infraestructura De Alojamiento Mundocms
Como puede ver, esta es una configuración de múltiples servidores distribuida en dos regiones geográficas (Texas y Utah). Hay un total de 9 servidores sin incluir la nube del equilibrador de carga. Cada servidor es un procesador Xeon-D con 8 núcleos (16 subprocesos) con 32 GB de RAM y 2 x 1 TB SSD (configuración RAID). Usamos la plataforma Cloud Load Balancing de Google, que nos permite tener un ajuste de escala automático y un balanceo de carga transparentes en todo el mundo. Una vez que se configuró el hardware con la sincronización de datos adecuada, el equipo de Bluehost y HostGator trabajaron juntos para optimizar las configuraciones del servidor para WordPress. Espero que algunas de estas optimizaciones formen parte de futuros planes de alojamiento de WordPress pronto. :)
Resumen de la configuración del servidor
Resumir las configuraciones del servidor de esta compleja configuración en unos pocos párrafos es muy difícil, pero haré todo lo posible. Usamos Apache para nuestro software de servidor web porque el equipo está más familiarizado con él. No entraré en el debate de NGINX vs Apache. Estamos usando PHP 7.2 con grupos PHP-FPM, por lo que podemos manejar grandes cargas de procesos y solicitudes. Si su proveedor de alojamiento web no utiliza PHP 7+, se está perdiendo una importante optimización de velocidad. Usamos el almacenamiento en caché de Opcode con un calentador de caché avanzado para garantizar que ningún usuario real experimente una vista de página sin caché. También utilizamos la caché de objetos con Memcache, de modo que podamos mejorar el tiempo de respuesta para las visitas a páginas no almacenadas en caché y otros tiempos de respuesta de la API en el área de administración de WordPress para usuarios registrados (nuestros editores). Aquí hay una pestaña de carga de red de nuestra pantalla «Todas las publicaciones» en el administrador de WordPress:
Pantalla De Edición De Publicaciones De Mundocms
Para ponerlo en perspectiva, nuestra experiencia en el área de administración ahora es 2 veces más rápida que la que teníamos antes. Para nuestro servidor de base de datos, cambiamos de MySQL a MariaDB, que es un clon de MySQL pero más rápido y mejor. También hemos pasado de HyperDB a LudicrousDB porque nos ayuda a mejorar la replicación, la conmutación por error y el equilibrio de carga de nuestras bases de datos. También hay muchas otras configuraciones que nos ayudan con el rendimiento y la escalabilidad, como HTTP / 2 y HSTS para una conexión más rápida + cifrado, la capacidad de ejecutar servidores adicionales en nuevas regiones si el centro deja de datos, etc. No estoy haciendo justicia a la increíble configuración que ha construido el equipo, pero sé que mi principal fortaleza es el marketing. Sí, soy un blogger que escribe en WordPress, pero muchas de las optimizaciones técnicas aquí están muy por encima de mi salario. Fueron realizados por ingenieros súper inteligentes del equipo de Endurance, incluidos David Collins (Arquitecto Jefe de Endurance / CTO de HostGator), Mike Hansen (desarrollador líder de WordPress) y otros a quienes agradeceré en la sección de créditos a continuación.

CDN, WAF y DNS

Además del alojamiento web, otras áreas que juegan un papel importante en la velocidad de su sitio web son su proveedor de DNS, su red de entrega de contenido (también conocida como CDN) y su firewall de aplicaciones web (WAF). Aunque lo he enumerado como tres cosas separadas, muchas empresas ahora ofrecen estas soluciones en un plan combinado como Sucuri, Cloudflare, MaxCDN (StackPath), etc. Como quiero tener el máximo control y distribuir el riesgo, estoy utilizando tres empresas independientes para gestionar cada pieza de forma eficaz. MundoCMS DNS funciona con DNS Made Easy (la misma empresa que Constellix). Se clasifican constantemente entre los proveedores de DNS más rápidos del mundo. Lo mejor de DNS Made Easy es que puedo hacer la dirección del tráfico global cuando un centro de datos específico en mi CDN o WAF no funciona correctamente para garantizar el máximo tiempo de actividad. Nuestro CDN funciona con MaxCDN (StackPath). Básicamente, nos permiten servir nuestros activos estáticos (imágenes, archivos CSS y JavaScripts) desde su amplia red de servidores en todo el mundo. Usamos Sucuri como un firewall de aplicaciones web. Además de bloquear los ataques, también actúan como otra capa de CDN y su rendimiento general es simplemente asombroso. Creo que tienen la mejor solución de firewall de WordPress que existe. Al trabajar en la optimización de la velocidad del sitio web, es importante reducir cada milisegundo. Es por eso que el uso de estos proveedores de soluciones combinado con nuestra nueva infraestructura de alojamiento web hace que …

Leave a Reply