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.
