Spis treści
Zasady cache dla WooCommerce na CDN
WooCommerce intensywnie korzysta z sesji i cookies – dlatego strategia cache musi rozróżniać gości od użytkowników zalogowanych oraz strony statyczne od dynamicznych. Klucz jest prosty: cache’uj HTML tylko dla gości i tylko tam, gdzie nie występuje personalizacja. Dla zalogowanych, koszyka i checkoutu wymuszaj omijanie cache.
CDN świetnie obsługuje zasoby statyczne – obrazy, CSS, JS – oraz wybrane strony HTML dla gości. „Cache everything” bez wyjątków to proszenie się o kłopoty – zamiast tego zbuduj białą listę tego, co przyspieszać, i czarną listę ścieżek oraz cookies, które mają cache omijać. Dzięki temu skracasz TTFB i LCP, a jednocześnie nie ryzykujesz wycieków stanu sesji.
Pamiętaj o metodach HTTP i nagłówkach. Tylko GET nadaje się do cache; POST, PUT czy PATCH zawsze omijają CDN. Odpowiedzi, które ustawiają cookies, powinny mieć nagłówki „no-store” albo być wykluczone regułami, by nie trafiły do wspólnego cache. CDN ma respektować nagłówki Cache-Control
z originu – to Twoje bezpieczniki na wypadek błędnej reguły.
Co cache’ować, czego nie – konkretne listy i reguły
Co warto cache’ować:
- Strony produktowe i kategorie dla gości – stabilny HTML, duży ruch, realny zysk w LCP i TTFB.
- Strona główna i treści poradnikowe – blog, landing pages, FAQ.
- Zasoby statyczne – obrazy, miniatury, ikony, CSS, JS, czcionki w WOFF2.
- Warianty obrazów i generowane miniatury – długie TTL na krawędzi i w przeglądarce.
Czego nie cache’ować:
/cart/
,/checkout/
,/my-account/
– zawierają stan użytkownika i płatności.- Endpoints AJAX i API –
/wc-ajax/*
,/wp-json/*
dla operacji wrażliwych,/wp-admin/*
. - Linki akcyjne i parametry sesji –
?add-to-cart=*
, linki usuwania z koszyka, tokeny resetu hasła. - Odpowiedzi ustawiające cookies sesji lub logowania.
Cookies, które powinny omijać cache (prefiksy): wordpress_logged_in_
, wordpress_sec_
, wp_woocommerce_session_
, woocommerce_cart_hash
, woocommerce_items_in_cart
, woocommerce_recently_viewed
.
Parametry i nagłówki do normalizacji: ignoruj utm_*
, gclid
, fbclid
, a zachowaj parametry funkcjonalne, które realnie zmieniają HTML. Nie cache’uj, gdy obecny jest nagłówek Authorization
lub odpowiedź zawiera Set-Cookie
dla cookies WooCommerce.
Praktyczne TTL: HTML dla gości – TTL na krawędzi 10–60 minut z stale-while-revalidate
; obrazy i czcionki – 7–30 dni z wersjonowaniem; CSS/JS z procesu budowania – długi TTL z hashami.
Konfiguracja na Cloudflare – logowanie, koszyk, checkout i sesje
1) Wykluczenia krytyczne
– Reguła „Bypass cache” dla ścieżek: /cart*
, /checkout*
, /my-account*
, /wp-admin*
, /wc-ajax*
.
– Bypass dla żądań z metodą inną niż GET.
– Bypass, gdy obecny jest nagłówek Authorization
.
2) Bypass na cookies WooCommerce
– „Bypass cache on cookie” dla: wordpress_logged_in_
, wp_woocommerce_session_
, woocommerce_cart_hash
, woocommerce_items_in_cart
.
– Cel – zalogowani i osoby z koszykiem omijają cache HTML.
3) Akcyjne parametry i linki
– Wyklucz z cache adresy z ?add-to-cart=*
, ?remove_item=*
, ?undo_item=*
.
– Normalizuj klucz cache – ignoruj utm_*
, gclid
, fbclid
.
4) „Cache everything” tylko dla gości
– Jedna reguła „Cache everything” dla dokumentów HTML poza wykluczeniami.
– TTL na krawędzi 30 minut, TTL przeglądarki 5–10 minut oraz stale-while-revalidate
.
– „Respect origin” dla zasobów statycznych – proces budowania steruje TTL.
5) Nagłówki po stronie originu
– Odpowiedzi ze stanem użytkownika oznacz Cache-Control: no-store
.
– Publiczne strony: Cache-Control: public, max-age=300, stale-while-revalidate=30
.
– Czcionki i obrazy – długi max-age
z wersjonowaniem.
6) Testy i bezpieczeństwo stanu
– Sprawdź CF-Cache-Status
– koszyk i checkout muszą być BYPASS
lub DYNAMIC
.
– W narzędziach deweloperskich przeglądarki zweryfikuj brak współdzielenia koszyka między użytkownikami.
– Monitoruj, czy odpowiedzi z Set-Cookie
nie trafiają do cache.
7) Checkout i płatności
– Cały proces płatności omija cache – w tym powroty i stronę podziękowania.
– Wymuś HTTPS, HSTS i wyłącz transformacje treści na tych ścieżkach.
8) Dodatkowe optymalizacje bez ryzyka stanu
– Długie TTL dla obrazów produktowych i czcionek z wersjonowaniem.
– Early Hints 103 i preload
krytycznych zasobów dla list i kart produktu.
– Minifikacja i kompresja Brotli dla CSS/JS.
Kontrola jakości i monitoring
– Panel: hit ratio HTML dla gości, TTFB dokumentu, LCP.
– Porównuj konwersję i porzucenia koszyka przed i po.
– Alarmuj na spadek hit ratio z powodu fragmentacji parametrów.
Podsumowanie
Skuteczny cache WooCommerce na CDN polega na selekcji – szybkie HTML dla gości i twardy bypass dla logowania, koszyka oraz checkoutu. Zadbaj o reguły omijania cache na cookies i parametry akcyjne, normalizuj „szum” marketingowy w kluczu cache i pilnuj nagłówków Cache-Control
. W Cloudflare ustaw kolejno: wykluczenia, bypass na cookies, „cache everything” dla reszty oraz rozsądne TTL z stale-while-revalidate
. Dzięki temu poprawisz LCP i TTFB bez ryzyka naruszenia stanu sesji użytkownika.