eduardweb.
Plugin-uriIntermediar#wordpress#woocommerce#mysql#redis#cloudflare

Optimizarea WooCommerce la modul serios: Cum am coborât sub 1s cu Redis și APO

De Andreea Crăciun, 11 iul. 2026 · 12 vizualizări · 2 like-uri

Postat 11 iul. 2026
php
/**
 * Dezactivează WooCommerce Cart Fragments pe paginile care nu au nevoie de el
 */
add_action('wp_enqueue_scripts', 'eduardweb_disable_cart_fragments', 99);
function eduardweb_disable_cart_fragments() {
    // Dezactivăm doar pe paginile statice și articole, nu pe magazin sau coș
    if (is_front_page() || is_single() || is_page()) {
        wp_dequeue_script('wc-cart-fragments');
    }
}

Dacă ai un magazin WooCommerce cu peste 5.000 de produse, știi deja că se mișcă ca o căruță cu roți pătrate dacă îl lași pe setările default. Am salvat recent un client care pierdea cam 25% din conversii din cauza timpului de încărcare uriaș, reușind să coborâm sub 0.9 secunde pe mobile. Îți arăt exact ce am făcut pe partea de Redis, Cloudflare APO și cum am curățat query-urile alea enervante din baza de date.

Mitul pluginurilor de cache și salvarea numită Redis Object Cache

Toată lumea instalează WP Rocket sau LiteSpeed Cache și crede că a rezolvat problema. Greșit. Cache-ul de pagină (HTML static) e super pentru vizitatorii anonimi care citesc blogul sau se uită pe homepage, dar în momentul în care un user adaugă un produs în coș, cache-ul de pagină moare. Din acel moment, fiecare click înseamnă interogări grele în baza de date și PHP rulat în timp real.

Aici intervine Redis. Am configurat Redis Object Cache (folosind pluginul gratuit al lui Till Krüss). Ce face de fapt? În loc ca WooCommerce să interogheze baza de date de 150 de ori pentru aceleași opțiuni, transient-uri și sesiuni la fiecare afișare de produs, le stochează direct în memoria RAM.

Am avut un caz unde timpul de execuție al interogărilor SQL a scăzut de la 1.2 secunde la doar 0.05 secunde.

Trade-off-ul sincer: Redis mănâncă memorie RAM cu pâine. Pe un VPS ieftin de 10 euro cu doar 1GB sau 2GB RAM, s-ar putea să îți crape baza de date (MySQL) din lipsă de resurse. Recomand minimum 4GB RAM pe server dacă vrei să rulezi Redis stabil pe un magazin cu trafic.

Cloudflare APO (Automatic Platform Optimization)

Pentru 5 dolari pe lună, Cloudflare APO este probabil cea mai bună investiție pe care o poți face pentru performanța WooCommerce. Spre deosebire de cache-ul clasic de la Cloudflare, APO știe nativ de cookie-urile specifice WordPress și WooCommerce (wp_woocommerce_session_* și woocommerce_items_in_cart).

Asta înseamnă că servește paginile de produs direct din edge-urile Cloudflare (obții un timp de răspuns TTFB de sub 50ms) pentru utilizatorii noi. În secunda în care cineva adaugă un produs în coș, APO detectează cookie-ul și trimite request-ul direct către serverul tău, fără să strice funcționalitatea coșului. Am redus încărcarea procesorului (CPU) pe server cu aproape 60% doar din chestia asta.

Marea problemă: get_refreshed_fragments și query-urile grele

Dacă deschizi tab-ul de Network în Chrome Developer Tools, o să vezi un request care blochează adesea încărcarea: /?wc-ajax=get_refreshed_fragments. WooCommerce îl rulează pe absolut orice pagină (chiar și pe articole de blog) ca să actualizeze iconița de coș din header.

Pe un site cu 10k vizitatori pe zi, chestia asta îți îngenunchează serverul pentru că forțează PHP-ul să pornească de fiecare dată. Dacă nu ai un coș de tip slide-out complex pe toate paginile, dezactivează mizeria asta pe paginile statice.

De asemenea, curăță periodic tabela wp_options de transient-uri expirate. La un audit recent, am găsit într-o bază de date peste 1.2 GB de transient-uri vechi de 3 ani care sufocau orice query de tip SELECT option_value.

Voi ce soluții folosiți pentru magazinele mari? Ați trecut deja pe High-Performance Order Storage (HPOS) în WooCommerce sau tot pe tabelele clasice de postmeta rulați?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

Doar membrii comunității pot lăsa comentarii.