Găzduire pentru un magazin WooCommerce: ce verifici înainte de Black Friday
· Echipa AYT · 4 min de citit

Un magazin WooCommerce se poartă altfel decât un blog. Pe un blog, aproape toți vizitatorii văd aceleași pagini, care pot sta gata făcute în cache. Într-un magazin, fiecare client are coșul lui, contul lui și prețurile lui după cupon, iar aceste pagini se construiesc de fiecare dată în PHP, cu interogări în baza de date. Când vin de cinci ori mai mulți oameni decât de obicei, ele cedează primele.
Cache de pagini, cu excepțiile potrivite
Paginile de produs, categoriile și prima pagină pot veni din cache. Coșul, checkout-ul, pagina „Contul meu” și cererile unui client care are ceva în coș trebuie să ocolească cache-ul. Altfel un client poate vedea coșul sau adresa altuia, ceea ce e și o problemă de date personale.
La AYT, cache-ul de pagini rulează în nginx și recunoaște cookie-urile WooCommerce: produsele și categoriile vin din cache, iar coșul, checkout-ul și contul clientului trec mereu pe lângă el. Îl pornești din fila Caching a site-ului, în panou.
Dacă folosești un modul de cache în WordPress, verifică în setările lui aceleași excepții. Majoritatea le au deja, dar dacă ai tradus adresele paginilor (de exemplu /cos în loc de /cart), uită-te că excepțiile folosesc adresele tale.
Redis pentru interogări
Partea care nu poate sta în cache tot întreabă baza de date: prețuri, stocuri, variante de produs, opțiunile modulelor. WordPress repetă multe dintre aceste interogări la fiecare încărcare. Un cache de obiecte cu Redis ține rezultatele în memorie, iar cererea următoare le ia de acolo.
Diferența se simte cel mai mult în wp-admin, la căutare și la magazinele cu mii de produse sau cu multe filtre. Pe planurile plătite AYT, Redis e inclus, iar modulul care îl leagă de WordPress îl instalăm noi.
Procesele PHP și memoria
Fiecare cerere care nu vine din cache ține ocupat un proces PHP cât timp rulează. Dacă un checkout durează două secunde și contul are 40 de procese simultane, încap cel mult 20 de checkout-uri pe secundă. În practică încap mai puține, pentru că în același timp rulează wp-admin, WP-Cron și roboții motoarelor de căutare.
Cere de la găzduire limite scrise pentru procese, memorie și procesor. La AYT, planurile au 40, 80 și 150 de procese simultane, cu 1, 2 și 4 GB RAM, iar resursele contului tău nu le folosesc vecinii de pe server.
Partea ta de pregătire:
- Deschide raportul de module lente din panou înainte de campanie. Un modul de recenzii sau de produse recomandate care face sute de interogări pe pagină iese imediat în evidență.
- Lasă WP-Cron să ruleze din cron-ul serverului, ca sarcinile programate să nu pornească în mijlocul cererii unui client. În WordPress Toolkit e o setare.
- Scoate din checkout ce nu e obligatoriu: câmpuri în plus, verificări externe lente, scripturi de chat.
Baza de date și comenzile
Un magazin cu câțiva ani în spate strânge în baza de date sesiuni expirate, revizii vechi de produse și mii de sarcini Action Scheduler terminate. Tabelele cresc și interogările încetinesc. Câteva curățenii pe an, din WooCommerce → Stare → Unelte sau cu un modul de optimizare, țin baza de date mică.
Un magazin are nevoie de copii de siguranță mai mult decât orice alt site, pentru că o comandă pierdută înseamnă un client care a plătit și nu primește nimic. Pe planurile plătite AYT, fișierele și baza de date se copiază în fiecare noapte pe alt server, iar copiile se păstrează 2 ani.
Actualizările, testate pe o copie
Multe căderi de magazin în ziua campaniei vin dintr-o actualizare de WooCommerce, de temă sau de modul de plăți făcută cu o zi înainte. Fă actualizările pe mediul de test (staging), plasează acolo o comandă de probă de la coș până la confirmare și abia apoi publică pe site-ul live. În săptămâna campaniei nu mai actualiza nimic.
Lista pentru săptămâna dinaintea campaniei
- Cache-ul de pagini e pornit, iar coșul și checkout-ul îl ocolesc. Verifici dintr-o fereastră incognito, cu un produs în coș.
- Redis e pornit și raportul de module lente nu arată nimic nou.
- Ai o copie de siguranță recentă și știi din ce meniu o restaurezi.
- Ai plasat o comandă de test cu fiecare metodă de plată.
- Actualizările așteaptă până după campanie.
Dacă magazinul a crescut peste găzduirea de acum, planul Business e făcut pentru WooCommerce, iar mutarea de la vechiul furnizor o facem noi, gratuit.


