Cache w WooCommerce - jak ustawić pamięć podręczną bez psucia koszyka i checkoutu

Technical Implementation Expert
Cache w WooCommerce - jak ustawić pamięć podręczną bez psucia koszyka i checkoutu

Cache w WooCommerce ustawiasz tak, by strony katalogu - strona główna, kategorie i karty produktów - były serwowane z pamięci podręcznej, a koszyk, zamówienie (checkout) i Moje konto zawsze generowały się na bieżąco dla konkretnego klienta. Do tego wykluczasz z cache ciasteczka WooCommerce, takie jak woocommerce_cart_hash, woocommerce_items_in_cart i wp_woocommerce_session_, żeby klient z produktami w koszyku nie dostał cudzej, zapisanej wcześniej wersji strony.
Pamięć podręczna to jeden z najtańszych sposobów na szybszy sklep na WordPressie. Źle ustawiona potrafi jednak zrobić więcej szkody niż pożytku: koszyk pokazuje stare produkty, klient nie może się zalogować, a zamówienie zatrzymuje się na błędzie w ostatnim kroku. W tym wpisie wyjaśniamy, jakie rodzaje cache spotkasz w sklepie WooCommerce, które strony i ciasteczka trzeba wykluczyć, jak skonfigurować popularne wtyczki i jak przetestować sklep po każdej zmianie ustawień.
[#wazne] W skrócie: w WooCommerce cache stron włączasz dla katalogu, a wyłączasz dla koszyka, checkoutu i Mojego konta oraz dla odwiedzających z ciasteczkami sesji i koszyka WooCommerce. Wtyczki takie jak WP Super Cache rozpoznają te strony same, inne wymagają ręcznych wykluczeń. Cache obiektów (np. Redis) przyspiesza panel i dynamiczne strony, ale wymaga wsparcia hostingu. W Vinson budujemy i rozwijamy sklepy na WooCommerce oraz integrujemy je z Allegro i Base, w tym konfigurujemy cache tak, żeby nie psuł sprzedaży.
Czym jest cache w WooCommerce i jakie są jego rodzaje?
Cache, czyli pamięć podręczna, to zapisana wcześniej kopia wyniku pracy serwera, którą można oddać kolejnemu odwiedzającemu bez ponownego liczenia wszystkiego od zera. W sklepie WooCommerce każde wyświetlenie strony to praca PHP i wiele zapytań do bazy danych. Gdy strona kategorii jest w cache, serwer wysyła gotowy plik HTML, a nie składa go od nowa. To skraca czas odpowiedzi i odciąża hosting, zwłaszcza przy większym ruchu, np. w czasie kampanii reklamowej.
Problem polega na tym, że sklep internetowy nie jest zwykłą stroną firmową. Część treści jest taka sama dla wszystkich, a część zależy od klienta: zawartość koszyka, ceny po zalogowaniu, adres dostawy, zapisane zamówienia. Dlatego w sklepie działa zwykle kilka warstw cache naraz i każdą trzeba ustawić z myślą o tym, co zobaczy klient. Najczęściej spotkasz:
Cache stron (page cache) - gotowe pliki HTML całych podstron. Daje największy zysk szybkości, ale to on najczęściej psuje koszyk, jeśli nie ma wykluczeń.
Cache obiektów (object cache) - wyniki zapytań do bazy przechowywane w pamięci, np. w Redis lub Memcached. Przyspiesza strony, których nie da się zapisać w całości, w tym panel administracyjny.
Cache przeglądarki - pliki CSS, JavaScript, czcionki i obrazy zapisane na urządzeniu klienta, dzięki czemu kolejne podstrony ładują się szybciej.
CDN - sieć serwerów, która trzyma kopie plików statycznych, a czasem całych stron, bliżej odwiedzającego.
Cache po stronie serwera - mechanizmy hostingu, np. Varnish lub cache wbudowany w serwer, które działają niezależnie od wtyczek w WordPressie.
Każda z tych warstw działa w innym miejscu i inaczej się ją czyści. Tak wygląda podział w typowym sklepie WooCommerce:
[#chart:woo70a]
Które strony WooCommerce wykluczyć z cache?
Dokumentacja WooCommerce wymienia trzy strony, które muszą pozostać dynamiczne: Koszyk, Zamówienie (checkout) i Moje konto. Powód jest prosty - pokazują informacje przypisane do bieżącego klienta i jego koszyka. Jeśli taka strona trafi do cache, kolejny odwiedzający może zobaczyć cudzy koszyk albo formularz, który nie zadziała. Wiele wtyczek wyklucza te strony automatycznie, ale dokumentacja zaleca, żeby to sprawdzić, a nie zakładać.
Przy cache serwerowym typu Varnish dokumentacja WooCommerce zaleca pomijanie żądań do adresów /cart, /my-account, /checkout i /addons oraz każdego adresu zawierającego parametr ?add-to-cart=. W polskim sklepie adresy tych stron są zwykle przetłumaczone, np. /koszyk, /zamowienie i /moje-konto, więc wykluczenia muszą obejmować adresy faktycznie używane w Twoim sklepie, a nie tylko przykłady z dokumentacji.
Ciasteczka WooCommerce, które powinny wyłączać cache
Samo wykluczenie stron to za mało. Klient, który dodał produkt do koszyka, ogląda dalej kategorie i karty produktów, a nagłówek strony z licznikiem koszyka czy komunikatami powinien być dla niego aktualny. Dlatego dokumentacja WooCommerce wymienia ciasteczka, które warto wykluczyć z cache:
| Ciasteczko | Do czego służy | Jak długo działa |
|---|---|---|
| woocommerce_cart_hash | śledzi zmiany zawartości koszyka | sesja |
| woocommerce_items_in_cart | śledzi zmiany zawartości koszyka | sesja |
| wp_woocommerce_session_ | wiąże klienta z danymi koszyka w bazie | 2 dni |
| woocommerce_recently_viewed | obsługuje widżet ostatnio oglądanych produktów | sesja |
| store_notice[id komunikatu] | pozwala zamknąć komunikat sklepu | sesja |
W praktyce oznacza to regułę: jeśli odwiedzający ma ciasteczko koszyka lub sesji WooCommerce, dostaje stronę generowaną na bieżąco. Pozostali, czyli większość ruchu z reklam i wyszukiwarki, dostają szybką wersję z cache. Taki podział zachowuje większość zysku z pamięci podręcznej, a jednocześnie chroni koszyk przed pomyłkami.
- Przegląd sklepu, wtyczek i wydajności
- Płatności, wysyłki i integracje
- Plan rozwoju sklepu
Konsultację poprowadzi Łukasz Palej, Technical Implementation Expert

Łukasz Palej
Technical Implementation Expert
Sklep na WooCommerce z Vinson
Łukasz i nasz zespół pomogą Ci wdrożyć to na Twoim koncie - bez zobowiązań.
- Analiza Twojego konta i obecnych działań
- Konkretny plan poprawek do wdrożenia
- Bezpłatna konsultacja – bez zobowiązań

Przeczytaj także
Więcej porad z naszej bazy wiedzy - przesuń, aby zobaczyć kolejne artykuły.
Wybierz dogodny termin w kalendarzu - bez wymiany maili w tę i z powrotem.
