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

Cum am coborât sub 1.2s pe un WooCommerce cu 12.000 de produse

De Alin Pătrașcu, 3 iul. 2026 · 15 vizualizări · 2 like-uri

Postat 3 iul. 2026
sql
/* Șterge transient-urile expirate din wp_options care îngreunează autoload-ul */
DELETE FROM `wp_options` 
WHERE `option_name` LIKE '_transient_%' 
AND `option_name` NOT LIKE '_transient_timeout_%'
AND SUBSTRING(`option_name`, 12) IN (
    SELECT SUBSTRING(`option_name`, 20) 
    FROM `wp_options` 
    WHERE `option_name` LIKE '_transient_timeout_%' 
    AND `option_value` < UNIX_TIMESTAMP()
);

/* Curăță log-urile vechi de la Action Scheduler */
DELETE FROM `wp_actionscheduler_actions` 
WHERE `status` IN ('complete', 'failed', 'canceled') 
AND `last_attempt_gmt` < DATE_SUB(NOW(), INTERVAL 30 DAY);

Am optimizat recent un magazin WooCommerce destul de măricel, cam 12.000 de produse active și vreo 8.000 de vizite zilnice. Proprietarul se plângea că site-ul se mișcă horror la checkout și că adminul WordPress se blochează când sunt mai mulți useri online. Normal, clienții abandonau coșul pentru că dura peste 4 secunde să se încarce pagina de plată.

Nu există o singură pastilă magică pentru WooCommerce. Pluginurile de cache clasice (gen WP Rocket sau LiteSpeed Cache) sunt excelente pentru vizitatorii care doar se uită la produse. Dar când userul adaugă ceva în coș, cache-ul de pagină se dezactivează. Atunci începe coșmarul pentru server.

Redis Object Cache: Salvarea interogărilor repetitive

Când cache-ul de pagină e dezactivat (la cart și checkout), WordPress trebuie să interogheze baza de date pentru orice rahat: detalii produs, taxe, sesiuni, setări. Fără un object cache, serverul tău SQL va fi îngenuncheat.

Am instalat Redis pe server (un VPS de 15 euro de la Hetzner) și am activat pluginul gratuit Redis Object Cache. Ce face asta? Salvează rezultatele interogărilor complexe în memoria RAM.

Trade-off-ul sincer: Redis consumă RAM. Mult RAM dacă ai multe produse și variații. Pe un VPS ieftin de 1GB sau 2GB, dacă pornești Redis fără limitări, riști să îți crape serviciul de MySQL din lipsă de memorie. Alocă-i maximum 256MB sau 512MB în redis.conf cu politica volatile-lru ca să șteargă automat cheile vechi.

Cloudflare APO: TTFB de sub 100ms la nivel global

Pentru utilizatorii noi, am activat Cloudflare APO (Automatic Platform Optimization). Costă 5 dolari pe lună dacă ești pe planul gratuit, dar merită fiecare cent.

Spre deosebire de cache-ul normal de la Cloudflare, APO știe exact când se modifică conținutul în WordPress și golește cache-ul de la edge instant. Rezultatul? TTFB-ul (Time to First Byte) a scăzut de la 800ms la sub 90ms pentru paginile de categorii și produse. Serverul nici măcar nu mai vede traficul respectiv; Cloudflare servește HTML-ul direct din cel mai apropiat data center.

Totuși, ai grijă la pluginurile de dinamică (cum ar fi cele de multi-currency sau geolocație). APO le poate strica dacă nu sunt configurate să ruleze prin AJAX.

Curățenia în baza de date și indexurile uitate

WooCommerce folosește tabelele wp_options și wp_postmeta ca pe un coș de gunoi. În cazul magazinului de care vă spuneam, tabela wp_options avea peste 300.000 de rânduri, majoritatea fiind transient-uri expirate și log-uri de la Action Scheduler.

Am rulat câteva query-uri de curățare direct în baza de date și am redus dimensiunea tabelei cu 80%. De asemenea, am trecut magazinul pe HPOS (High-Performance Order Storage), noua structură de tabele custom de la WooCommerce. Asta mută comenzile din wp_posts în tabele dedicate, reducând considerabil timpul de scriere la checkout.

Dacă aveți baze de date vechi, rulați query-ul de mai jos în phpMyAdmin ca să scăpați de transient-urile orfane care încetinesc pornirea WordPress-ului.

La final, după toate astea, timpul total de încărcare pe mobil a scăzut la 1.2 secunde, iar rata de conversie a crescut cu 1.4%. Voi ce folosiți pentru WooCommerce? Ați trecut la HPOS sau încă vă chinuiți cu postmeta?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

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