Hay muchos complementos de almacenamiento en caché con una amplia gama de parámetros y funciones;
sin un análisis cuidadoso es imposible tomar una decisión competente . Después de navegar por Internet, no encontré ninguna comparación realmente normal. Solo hay publicaciones únicamente para atraer la atención: descripciones de complementos. Lo común son los pulsos de SEO, por así decirlo. Incluso vi un intento de realizar un análisis comparativo de los tres complementos, pero no se dio nada más que medir la velocidad de descarga a través del servicio en línea. Pero cómo se organiza todo dentro, no se dice qué influyen las optimizaciones. Después de todo, cada sitio es individual, aún necesita un ajuste fino, debe comprender el principio de funcionamiento para la elección óptima.
Este artículo fue creado simultáneamente con la creación de
material , cuyo énfasis está en el uso de resultados de análisis. Aquí
quiero compartir más detalles y métodos de este análisis con personas sofisticadas y hermanos en la tienda.
Principios
WordPress consta de muchos scripts PHP. Cada vez que accede al sitio (servidor), se ejecutan parte de los scripts y el resultado se genera en forma de página HTML. La idea principal de la optimización es ahorrar tiempo al emitir un resultado inmediatamente terminado para contenido que rara vez cambia.
Debido a la urgencia del problema, muchos complementos de caché ya se han escrito y aparecen nuevos. Además, nunca quiero pagar demasiado, por lo que se realizó un análisis comparativo de solo soluciones gratuitas y shareware.
Se
destacan las principales propiedades que debe tener el complemento para garantizar el almacenamiento en caché de alta calidad:
- Caché del servidor (caché del lado del servidor)
- Tiempo de carga de la página
Uno de los parámetros más importantes. Cuanto más corto sea el tiempo, más rápido recibirá la respuesta el cliente. Por supuesto, puede elegir un complemento con mucho tiempo, pero luego con altas cargas en el servidor tendrá que aumentar el rendimiento del hardware, y estos son costos que podrían haberse evitado. - Método de almacenamiento en caché
Máxima conservación de todos los objetos HTML, JS, CSS preparados, preferiblemente también en estado comprimido, para ahorrar tiempo de procesamiento en el servidor y aumentar la velocidad de salida.
- Caché del cliente
- Al emitir el resultado, es posible controlar el caché del navegador del cliente. Cuando se activa, una solicitud repetida al servidor ni siquiera llegará, lo que afecta favorablemente su rendimiento. Se indica en forma de valores TTL (Time To Live) para cada tipo de objeto (HTML, CSS, JS, Imágenes, ...). Para objetos críticos, los valores son pequeños o iguales a 0.
- Optimizar
- Combinar
Cargando un JS común (o CSS) en lugar de varios, como cada acceso adicional al servidor es costoso. Esto también se indica directamente mediante la Prueba de velocidad de la página de Google . - En línea (inclusión)
El contenido del CSS se inserta en el HTML, lo que finalmente reduce la cantidad de llamadas al servidor. CSS es mejor incluir porque En la práctica, es difícil dividirlo en partes necesarias y no en partes. - Posponer (descarga retrasada)
Retraso en la carga de scripts JS que no afectan la visualización inicial de la página. También la métrica más importante que afecta la velocidad de carga de la página para el usuario. JS es mejor posponer que incluir directamente en HTML ya que Por lo general, son simples de separar y la inclusión implicará un aumento en el volumen de HTML, lo que puede llevar a la carga en varias iteraciones, lo que equivale a la aparición de consultas adicionales. - Minify
El contenido HTML, JS y CSS a menudo tiene partes adicionales, como espacios, saltos de línea y comentarios. Es mejor eliminar todo esto para reducir aún más el tamaño de los objetos. - Comprimir
Compresión de datos utilizando el algoritmo GZip (Deflate) para reducir la cantidad de datos transferidos. Porque HTML, JS y CSS son esencialmente formatos de texto, se comprimen bien.
- Administrar
- Actualizar (actualizar)
En el caso de que el objeto solicitado haya cambiado (por ejemplo, se ha agregado un nuevo artículo), el objeto en la memoria caché debe volver a crearse; de lo contrario, se enviará información irrelevante a los usuarios. Los buenos complementos están configurados para actualizar automáticamente el caché en los eventos más obvios. Y siempre debe ser posible vaciar todo el caché manualmente. Es como una parada de grúa en un tren, muy rara, pero necesaria. - Excluir (agregar excepciones)
A veces es necesario excluir algunos objetos y páginas del almacenamiento en caché para solucionar problemas. Debe haber suficiente control sobre esto.
Comparación de complementos
Para compilar la lista real bajo investigación, la selección de complementos se realizó a través del conocido
wordpress.org con una búsqueda por las palabras caché y muestras de las primeras 140 (10 páginas) adecuadas. Resultó 24.
Por cierto, si cree que algún complemento valioso no está en la lista, escriba los comentarios, los agregaré al análisis más adelante.
Metodología
- Todas las pruebas se llevaron a cabo en la misma página HTML que contiene CSS, JS y varios objetos multimedia para cubrir la gama más general de tipos.
- Se realizaron verificaciones de funcionalidad para cada criterio de lo anterior y se resumen en una tabla.
- A cada criterio se le da el peso de la importancia de influir en la puntuación general (son visibles en la tabla detallada adjunta).
- La medición del tiempo de carga de la página se realizó primero sin optimización, luego se realizó una medición con cada complemento y se realizó una comparación relativa de los tiempos. Esto garantiza una independencia suficiente de la velocidad de alojamiento.
- El medio ambiente es el más reciente:
- WordPress 4.9.8,
- PHP 7.2.10 con almacenamiento en caché habilitado (OpCache),
- MariaDB (MySQL) 10.3.9,
- Apache 2.4.35.
Cada criterio se verificó utilizando el navegador Chrome:
- En la sección de depuración, al presionar F12 en la sección Red, los tiempos de las diferentes etapas de carga y los encabezados HTTP de las respuestas del servidor son claramente visibles para verificar el control y la compresión de la memoria caché del navegador. También puede ver la unión de CSS y JS en uno o más archivos.
- Mediante el uso de Ver código fuente de la página, en el botón derecho, el análisis del contenido devuelto se realizó sobre la inclusión de CSS, la calidad de la minificación (solo HTML, JS, CSS) y los signos de carga demorada de los scripts JS (los atributos diferidos o asíncronos deben estar presentes en la descripción de la etiqueta de enlace del script).
- La carga demorada de JS también se verificó para mantener la salud del sitio, ya que La prueba de velocidad de la página de Google puede mostrar que todo está bien y que los scripts no funcionan.
Resultados
El resultado principal del análisis es una
tabla XLSX detallada en la que puede clasificar, filtrar y ver cómodamente la metodología para calcular los pesos finales. También contiene notas sobre los detalles del complemento al evaluar cada criterio.
A cada complemento se le asignan roles de acuerdo con los resultados de la prueba para la conveniencia de comprender el espectro de cobertura de las propiedades requeridas.
A continuación se resumen los resultados de comparación para comprender la imagen general y la conveniencia.
Conclusión
La
tabla resultante le permite seleccionar complementos de acuerdo con los criterios necesarios y seleccionar varias combinaciones para maximizar la cobertura de los criterios necesarios. En apoyo de 4 combinaciones fueron seleccionadas y probadas (paquete marcado en lugar de versión).
Las configuraciones específicas se describen en el material mencionado al principio del artículo.
- Es mejor usar diferentes combinaciones de complementos en lugar de individualmente.
- Una calificación general baja del complemento no es una señal de su inadecuación. Puede ser bueno en alguna funcionalidad particular.
- Algunos complementos son incompatibles entre sí cuando se combinan.
- Siempre debe verificar el funcionamiento correcto de la carga diferida de JS: algunos complementos deben configurarse adicionalmente y otros aún rompen el contenido. La tabla contiene comentarios sobre este tema.
- Y asegúrese de verificar finalmente a través de la Prueba de velocidad de la página de Google (u otros medidores externos como PingDom y otros): en diferentes sitios puede haber diferentes resultados, porque la optimización de complementos puede comportarse de manera diferente.