Alojamiento y plugins de WordPress

Cómo hacer que WordPress sea rápido y seguro: lista de verificación de rendimiento y plugins

WordPress solo es tan rápido y seguro como el entorno que lo ejecuta. Aquí tiene la lista de verificación práctica que aplicamos a cada sitio de WordPress que alojamos: qué almacenar en caché, qué proteger y qué complementos se ganan su lugar frente a los que la plataforma hace redundantes.

WordPress es tan bueno como aquello sobre lo que se ejecuta

WordPress impulsa una gran parte de la web porque es flexible, pero esa flexibilidad también hace que se vuelva lento e inseguro: una instalación predeterminada consulta la base de datos decenas de veces por página, transmite su versión y pila tecnológica a cualquiera que mire, y le invita a acumular plugins hasta que el rendimiento y la superficie de ataque se disparan silenciosamente. Nada de eso es un defecto de WordPress, sino más bien la consecuencia de ejecutarlo en una infraestructura que no hace nada para ayudar.

La buena noticia es que el mismo puñado de decisiones soluciona la mayor parte, y son decisiones sobre la infraestructura técnica más que sobre el contenido. Almacene en caché de forma agresiva en la capa adecuada, mantenga la base de datos fuera de la ruta crítica, ejecute solo los pocos plugins que realmente se ganan su lugar, mantenga todo actualizado y aísle el sitio para que cualquier problema quede contenido. Esta publicación es esa lista de verificación, en el orden en que la aplicamos a cada sitio de WordPress en la plataforma.

Almacene en caché en el servidor, no solo en un plugin

La mayor palanca individual para la velocidad de WordPress es no ejecutar WordPress en absoluto durante la mayoría de las visitas. Una solicitud estándar arranca WordPress, ejecuta sus plugins y consulta la base de datos antes de enviar un solo byte; una caché de página completa sirve la página terminada directamente desde el servidor web en la siguiente visita, omitiendo todo ese arranque. La ubicación de esa caché es importante: un plugin de caché se encuentra dentro de PHP, por lo que PHP todavía se inicia antes de que la caché pueda responder, mientras que una caché a nivel de servidor responde antes en la solicitud y retiene las páginas en un formato que el servidor puede purgar al instante.

Cada sitio de WordPress que alojamos funciona en LiteSpeed Enterprise con LSCache a nivel de servidor, y nuestro propio complemento de caché conecta WordPress con él correctamente desde el primer momento — preinstalado y actualizado automáticamente, por lo que es una cosa menos que configurar o mantener al día. En un origen que no sea LiteSpeed, el mismo complemento simplemente no emite encabezados de página completa y se mantiene al margen mientras la caché de objetos sigue funcionando, de modo que un sitio migrado nunca se queda configurado a medias. La regla práctica para su propia lista de verificación: una caché de página completa, en el servidor, y no acumule un segundo complemento de caché encima — entran en conflicto.

La caché de objetos y la base de datos

No todas las solicitudes pueden ser una página estática. Las sesiones iniciadas, la administración, las búsquedas, los carritos y cualquier fragmento personalizado deben ejecutar PHP, y para ellos el objetivo cambia de omitir la aplicación a omitir la base de datos. Una caché de objetos por sitio — Redis, en nuestro caso — almacena los resultados de lecturas repetidas de la base de datos en la memoria, de modo que las mismas opciones, datos transitorios y consultas no se soliciten a la base de datos en cada visita. El efecto se hace evidente exactamente donde la caché de página completa no puede ayudar: una administración más rápida, carritos más rápidos y una carga de base de datos mucho menor bajo el tráfico.

La palabra clave es «por sitio» (per-site). Una caché de objetos compartida (shared object cache) significa que un sitio con mucho tráfico o mal programado puede expulsar los datos en caché de todos los demás y privar a sus vecinos de recursos de base de datos; una caché dedicada por sitio, combinada con límites de base de datos por sitio, mantiene contenido el radio de impacto. En su lista de verificación, considere la caché de objetos persistente como obligatoria para cualquier sitio con tienda o usuarios autenticados, y desconfíe del alojamiento donde se comparta entre inquilinos.

Los plugins que vale la pena usar — y los que la plataforma sustituye

Cada plugin que añade es código que se ejecuta en las peticiones y una puerta por la que alguien podría entrar algún día, por lo que el objetivo sincero es contar con el menor número de plugins que hagan la mayor cantidad de tareas. Un buen alojamiento elimina la necesidad de toda una categoría de ellos: con el almacenamiento en caché a nivel de servidor, una caché de objetos administrada y copias de seguridad de la plataforma, usted no necesita un plugin de caché, un plugin de caché de objetos independiente ni un plugin de copias de seguridad; esas tareas se realizan mejor por debajo de WordPress, y ejecutarlas por encima solo añade conflictos y sobrecarga.

Lo que vale la pena conservar es el conjunto reducido que aporta una funcionalidad auténtica: los plugins que su sitio realmente necesita para operar y, en nuestra plataforma, los dos plugins de calidad de repositorio que desarrollamos e incluimos con cada sitio. Nuestro plugin de caché conecta WordPress con la caché del servidor y gestiona el vaciado inteligente para que una edición borre únicamente las páginas necesarias. Nuestro plugin de huella (footprint) elimina en cada despliegue los rastros identificativos que emite una instalación predeterminada de WordPress —la etiqueta de versión y de generador, los endpoints de descubrimiento, XML-RPC, los pingbacks y la cabecera powered-by—, evitando así que una actualización de plugin o tema los restablezca de forma inadvertida. Ambos están desarrollados según los estándares del directorio de plugins de WordPress.org, son gratuitos y se actualizan por sí mismos.

Mantener WordPress seguro y actualizado

La mayoría de las vulneraciones de WordPress no son ingeniosas; son antiguas. Un núcleo, tema o plugin desactualizado con una vulnerabilidad conocida y publicada es la forma más común en que los sitios se ven afectados, lo que convierte el mantenerse al día en el trabajo de seguridad más valioso que existe — y el más tedioso, razón por la cual se pasa por alto. El alojamiento administrado debería quitarle esa carga de encima: aplicando parches a la infraestructura subyacente de WordPress y haciendo que las actualizaciones del núcleo y de los plugins sean seguras de aplicar al proporcionarle un entorno de pruebas para verificarlas y una copia de seguridad para restaurarlas.

Además de la actualización constante, espere que los límites se apliquen en su beneficio: escaneo de malware activado de forma predeterminada para que una infección se detecte antes de que la descubra un visitante, aislamiento para que un sitio comprometido no pueda afectar a otro, protección DDoS en el perímetro y TLS en todas partes con certificados que se renuevan automáticamente. Nada de esto reemplaza las prácticas básicas de seguridad — credenciales seguras, acceso con privilegios mínimos, eliminación de plugins que ya no utilice —, pero garantiza que la infraestructura no sea el eslabón débil. En su lista de verificación, la pregunta para cualquier proveedor de alojamiento es simple: ¿la seguridad viene por defecto o es un paquete que debe comprar?

WooCommerce y las páginas que nunca debe almacenar en caché

Una tienda es donde el almacenamiento en caché agresivo obtiene su mayor beneficio y causa su peor daño si se hace de forma ingenua. Las páginas de catálogo, productos y categorías son las que tienen mayor tráfico y son las más almacenables en caché que tiene, y servirlas desde una caché de página completa es lo mejor que puede hacer por la velocidad de una tienda. Sin embargo, las páginas del carrito, de finalizar compra y de la cuenta son personales y nunca deben servirse desde una caché compartida; si lo hace, un comprador verá la cesta de otra persona, lo que representa tanto una tienda rota como un fallo de privacidad.

La forma de obtener ambos es almacenar la página en caché y abrir huecos para las partes dinámicas. Edge Side Includes procesa el fragmento del carrito, los totales del minicarrito y el estado de la cuenta por cada solicitud mientras el resto de la página se sirve desde la caché, y cart, checkout, my-account junto con cualquier página de nonce o session quedan excluidas de forma predeterminada. La actualización se gestiona mediante un purgado automático inteligente que se activa cuando cambia un producto, un precio o un pedido, por lo que nunca se muestra un precio desactualizado. Si usted utiliza WooCommerce, esta es la parte de la lista de verificación que debe ajustar con total precisión: tienda rápida desde la caché, carrito dinámico por usuario y nada de contenido personal almacenado jamás en la caché.

Preguntas frecuentes

¿Todavía necesito un plugin de caché como WP Rocket?

No. El almacenamiento en caché de página completa se gestiona en el servidor web mediante LSCache de LiteSpeed, nuestro propio plugin de caché conecta WordPress a este y gestiona el vaciado inteligente, y una caché de objetos Redis por sitio se encuentra detrás. Añadir un segundo plugin de caché de página completa normalmente entra en conflicto con la caché a nivel de servidor en lugar de ayudar, por lo que no es necesario ni recomendado.

¿Qué complementos hace innecesarios la plataforma?

Los plugins de caché, los plugins independientes de caché de objetos y los plugins de copias de seguridad son redundantes aquí, ya que esas tareas se realizan por debajo de WordPress: almacenamiento en caché a nivel de servidor, una caché de objetos gestionada por sitio y copias de seguridad de la plataforma. Eliminarlos reduce los conflictos y la superficie de ataque. Lo que vale la pena mantener activo son los plugins que su sitio realmente necesita para su funcionamiento, además de nuestros dos plugins gratuitos de caché y footprint, que se entregan preinstalados.

¿Afectará el almacenamiento en caché a mi carrito de WooCommerce o a las páginas para usuarios que han iniciado sesión?

No. Las páginas Cart, checkout, my-account y cualquier página de nonce o sesión están excluidas de la caché de forma predeterminada, y Edge Side Includes mantiene el fragmento del carrito y los totales actualizados en páginas que de otro modo estarían en caché. Los compradores siempre ven su propia cesta y una pantalla de pago operativa mientras la tienda aún se carga desde la caché, y la purga automática inteligente borra las páginas afectadas cuando cambia un producto, precio o pedido.

¿Cómo mantienen WordPress seguro sin que yo tenga que gestionarlo?

Aplicamos parches a la infraestructura subyacente de WordPress, hacemos que las actualizaciones del núcleo y de los plugins sean seguras de aplicar mediante entornos de prueba y restauración con un solo clic, mantenemos activados de forma predeterminada el análisis de malware y la protección contra DDoS, aislamos cada sitio para que una brecha de seguridad no pueda propagarse, y emitimos y renovamos certificados TLS automáticamente. Esto elimina la infraestructura como el eslabón débil; la higiene básica, como el uso de credenciales seguras y la eliminación de plugins no utilizados, sigue estando en sus manos.

Pruébelo gratis durante 14 días

Ponga en marcha sus primeros sitios gratis durante 14 días — sin necesidad de tarjeta. ¿Va a migrar un sitio o red existente? Las migraciones son gratuitas y sin límites.

Empiece gratis