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

Cum am scăzut TTFB-ul pe WooCommerce de la 3.2s la 250ms

De Cristian Barbu, 24 iul. 2026 · 7 vizualizări · 3 like-uri

Postat 24 iul. 2026
php
/**
 * Dezactivează WooCommerce Cart Fragments pe paginile non-cart/checkout
 * Reduce dramatic Request-urile AJAX care blochează TTFB-ul și distrug cache-ul.
 */
add_action('wp_enqueue_scripts', function() {
    if (function_exists('is_woocommerce') && !is_cart() && !is_checkout()) {
        wp_dequeue_script('wc-cart-fragments');
    }
}, 99);

Am preluat anul trecut un magazin WooCommerce cu 14.000 de produse și peste 80 de plugin-uri active. Pagina de produs se încărca în 3.2 secunde, iar la checkout clienții așteptau și câte 5 secunde până la confirmare. După o lună de profiling cu Query Monitor și New Relic, am coborât TTFB-ul la sub 250ms fără să schimbăm hostingul de 45$/lună.

Nu am folosit niciun plugin magic de optimizare de tip "all-in-one". Totul s-a rezumat la Redis, Cloudflare APO și curățarea interogărilor SQL.

1. Redis Object Cache: unde se rupe de obicei filmul

Majoritatea devilor dau install la un plugin de Redis, văd butonul verde cu "Connected" și cred că au rezolvat problema. În realitate, WooCommerce scrie masiv în wp_options și wp_woocommerce_sessions.

Dacă nu configurezi corect alocarea de memorie în redis.conf (mai ales policy-ul maxmemory-policy allkeys-lru), Redis umple RAM-ul serverului și începe să dea erori 500 în checkout când rămâne fără spațiu.

Am setat WP_REDIS_SELECTIVE_FLUSH pe true și am adăugat ignorări pentru grupurile de cache problematice (cum sunt tranzienții de cart). Câștigul real? Interfața de wp-admin s-a mișcat de 3 ori mai repede, iar interogările SQL repetate pe tabelul de opțiuni au scăzut de la 450 per request la sub 30.

2. Cloudflare APO: cache la nivel de edge, dar atenție la coș

Cloudflare Automatic Platform Optimization (APO) e probabil cel mai ieftin upgrade pe care îl poți face (5$/lună). Serveste tot HTML-ul direct din PoP-ul cel mai apropiat de client, ceea ce prăbușește timpul de încărcare.

Dar există o capcană enormă aici. Dacă ai plugin-uri care scriu cookieless sessions direct în HTML sau ești dependent de scriptul nativ de WooCommerce cart fragments (wc-ajax=get_refreshed_fragments), APO fie va livra pagini cu coșul altui utilizator, fie va face bypass complet la cache.

Soluția mea a fost să decuplez cart fragments pe paginile statice și să folosesc stocarea locală (sessionStorage) pentru starea coșului. Pagina de produs și homepage-ul se încarcă acum în ~80ms direct din edge-ul Cloudflare.

3. Interogările SQL și trecerea obligatorie la HPOS

Dacă ești încă pe sistemul vechi unde comenzile sunt salvate ca custom post types în wp_posts și wp_postmeta, ai o bombă cu ceas. La un volum de 500 de comenzi pe zi, tabela wp_postmeta ajunge rapid la milioane de rânduri, iar orice căutare după statusul comenzii blochează baza de date.

Activarea High-Performance Order Storage (HPOS) creează tabele dedicate pentru comenzi (wp_wc_orders). În cazul nostru, asta a redus timpul de executare al interogărilor din panoul de administrare cu 65%.

La fel de important: evitați cu orice preț interogările de tip meta_query pe atribute de produs în frontend. Dacă aveți peste 20k SKU-uri și filtrare complexă, folosiți indexarea prin taxonomii native sau un motor extern ca Meilisearch.

Voi ce latențe aveți pe checkout și cum ați rezolvat problema cu cart fragments?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

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