Una de las preguntas más comunes que escucho mucho sobre WordPress y el comercio electrónico gira en torno a la noción de WooCommerce y su capacidad de escalar. \»¿Puedes escalar WooCommerce?\» la gente me pregunta Y mi respuesta siempre es sí.
Pero nunca es tan simple como eso, ¿verdad?
La gente quiere saber si solo estás siendo amable, esperanzado o simplemente no tienes la experiencia suficiente para saber si WooCommerce realmente puede manejar una gran cantidad de tráfico.
Para mí, que trabajo con WooCommerce y clientes desde hace algunos años, la escala ha sido un objetivo en movimiento. En un momento, ver una tienda obtener miles de visitas por hora era un tema de conversación en torno a la escala. Luego, fueron toneladas de pedidos simultáneos. Y, finalmente, los requisitos de escala realmente locos, a fines de 2015.
Para entrar en el tema, primero tenemos que definir algunos términos.
¿Cómo se define \»escala\»?
La escala puede significar muchas cosas diferentes para diferentes personas.
Algunas personas hablarán sobre la escala en el mundo de las páginas vistas. Cuántas vistas de página por día (u hora) están ocurriendo en un sitio de WooCommerce. La verdad es que, con el tipo correcto de estrategias de almacenamiento en caché, esta es una métrica que no nos ayudará mucho cuando se trata de escalar. A menos que no pueda almacenar en caché ninguna parte de sus páginas, los recuentos de páginas vistas no son un buen indicador de escala.
Otros usarán los ingresos por día como una métrica de escala. Desafortunadamente, esto termina siendo una comparación de manzanas con naranjas porque los ingresos de los sitios que venden papel de lija a $ 0.40 por hoja y las tiendas que venden mochilas a $ 300 cada una realmente no se pueden comparar.
Te acercas cuando hablas de volumen de pedidos. Pero el problema con los pedidos es que las personas pueden comenzar y ordenar y luego abandonarlo, ya sabes, abandonar el carrito. Y eso significa que no se contará en su evaluación de esa métrica. Porque la mayoría de las personas, cuando hablan de órdenes, hablan de órdenes cerradas.
Entonces, ¿qué métrica uso (y recomiendo)? Añade al carrito eventos por hora (o minuto). Esto pone a todos los sitios en igualdad de condiciones. Desafortunadamente, esta no es una métrica que aparece directamente del sistema de informes de WooCommerce. Tendrá que trabajar un poco para capturar y monitorear la métrica. Pero creo que es la mejor manera de evaluar el comportamiento en un sitio, al tiempo que observa la correlación con el tráfico y el volumen de pedidos.
Una vez que tenga la métrica correcta, puede comenzar a medir dónde se encuentra y determinar qué tipo de cosas quiere hacer para llegar a donde quiere estar. Para mi cliente en 2015, pasamos un año trabajando con ellos y su sitio (y código) para lograr 2000 eventos de agregar al carrito por minuto.
¡Eso es lo que yo llamo escala!
¿Qué áreas necesitan escalar?
Navegación posterior a la tienda
Uno de los errores más comunes que cometen las personas con su sitio WooCommerce es creer que después de completar un pedido, las personas abandonarán el sitio. Es un error común porque a todos nos gusta pensar transaccionalmente. Así que vas a la tienda, haces tu compra y luego te vas.
Pero algunas personas finalizan su compra y pueden quedarse, explorando la tienda nuevamente. Solo que esta vez, todavía están conectados. Y eso significa que no hay nada en caché. Y cada clic y página que visitan está llamando a su base de datos.
Entonces, lo primero que debe observar, que es realmente simple, es asegurarse de que después de completar un pedido, desconecte a las personas para que puedan navegar por la tienda almacenada previamente en caché sin causar problemas de escala.
Estrategias de almacenamiento en caché para páginas de categorías y menús
Debido a que es un sitio de comercio electrónico, muchos desarrolladores simplemente se saltan el almacenamiento en caché por completo. No quieren preocuparse de que puedan configurar incorrectamente algo como Varnish. Entonces, al final, nada se almacena en caché, y ese es otro error. Una tonelada del sitio aún puede beneficiarse directamente desde una perspectiva de almacenamiento en caché, incluso una agresiva.
Gran parte del catálogo se puede almacenar en caché y solo necesita actualizar las cosas si alguien realiza un cambio en la definición del producto. Y en lugar de usar WooCommerce para crear sus páginas de categoría, puede crear las páginas que desee y eliminar más consultas allí. Y si estamos hablando de almacenar en caché y limitar las llamadas de consulta, mire sus menús y vea cuántos de ellos deben ser dinámicos.
La mesa Postmeta
Cada pedido que se escribe en su base de datos está colocando todos los datos del pedido en su tabla postmeta. Esta tabla crece rápidamente y el número de consultas aumenta. Una cosa que podría considerar es interceptar las órdenes y escribirlas en una sola fila de varias columnas. Pero si ese tipo de cambio lo asusta (y entiendo perfectamente por qué lo haría), también podría considerar hacer un cambio de tabla en la base de datos que ayude a que los índices funcionen mejor. ¡Esto puede tener un impacto inmediato!
La página Mis cuentas
Sé que a menudo hemos encontrado que la página Mis cuentas es un lugar donde pueden ocurrir toneladas de optimización del rendimiento. Piénselo por un segundo: los clientes vienen aquí para verificar cosas sobre sus pedidos, pero las llamadas consultan todo, todos sus datos históricos. Y eso sucede por qué otros están tratando de pedir cosas.
Lo que vimos fue que trabajar en estas llamadas y evaluarlas se traduciría en una reducción masiva de los retrasos en el rendimiento, y eso resultó en una mayor escalabilidad inmediata.
Cambiar el motor de consultas por completo
¿Qué pasaría si pudiera cambiar la forma en que se ejecutan las consultas por completo? ¿Y si pudieras hacer todo más rápido? ¿Con un solo cambio? Eso sería casi demasiado bueno para ser verdad, ¿verdad? Pues tienes razón, nunca es solo una cosa. Pero implementar ElasticSearch y hacer que haga muchas de las consultas por usted podría proporcionar grandes ganancias.
¿La escala de WooCommerce requiere mucho código personalizado?
No son toneladas de código personalizado el problema. El verdadero problema para escalar su sitio WooCommerce es la experiencia. Si nunca lo has hecho, es probable que no sepas cómo hacerlo. De hecho, ni siquiera sabes qué buscar. Entonces, si bien es posible que necesite un poco de código, lo que probablemente necesite son algunos recursos recomendados.
Déjame ayudarte con eso. Conozco bien cada una de estas empresas y confío en ti en todas sus manos.
- Búsqueda elástica: Zeek Interactive, 10up
- Sitios WooCommerce: Zao, webdevstudios, Crowd Favorite
- Escala WooCommerce: Mindsize
Una última cosa…
Por supuesto, también debo mencionar que si pasar mucho tiempo pensando en cómo escalar WooCommerce no es en lo que desea invertir su tiempo, creamos un producto de alojamiento de WooCommerce administrado que lo ayudará a ejecutar su sitio de WooCommerce a escala. Automáticamente. ¡Todo lo anterior, y más, está incluido!