Czym jest cache i dlaczego to najtańszy sposób na szybką stronę? Wyjaśniamy pamięć podręczną przeglądarki, cache serwera, OPcache, Redis i CDN. Praktyczne wskazówki dla WordPressa i sklepów internetowych oraz typowe błędy konfiguracji.
Cache (czyt. „kasz", po polsku: pamięć podręczna) to mechanizm przechowywania raz przygotowanych danych, aby przy kolejnym żądaniu nie trzeba było wykonywać tej samej pracy od nowa. Zamiast za każdym razem uruchamiać kod PHP, odpytywać bazę danych i składać stronę od zera, serwer może podać gotowy wynik w ułamku sekundy.
Dlaczego to takie ważne? Badania Google pokazują, że wraz z wydłużaniem czasu ładowania strony z 1 do 3 sekund prawdopodobieństwo, że użytkownik ją porzuci, rośnie o 32%. Szybkość strony jest też oficjalnym czynnikiem rankingowym Google (Core Web Vitals). Dobrze skonfigurowany cache to najtańszy sposób poprawy obu tych rzeczy - nie wymaga mocniejszego serwera ani przepisywania strony.
Cache nie jest jednym mechanizmem - to kilka warstw, które działają niezależnie i się uzupełniają:
Największy efekt daje włączenie ich wszystkich - każda warstwa eliminuje inny rodzaj pracy.
Gdy użytkownik odwiedza stronę po raz drugi, jego przeglądarka nie musi ponownie pobierać logo, arkuszy stylów czy skryptów - o ile serwer jej na to pozwoli. Steruje tym nagłówek HTTP Cache-Control:
Na hostingu w McProdukt długi cache dla plików statycznych jest skonfigurowany domyślnie. Jeśli zarządzasz konfiguracją samodzielnie, pamiętaj o żelaznej zasadzie: długi cache tylko dla plików, których nazwa zmienia się przy każdej modyfikacji - inaczej użytkownicy będą widzieć starą wersję strony.
Strona na WordPressie przy każdym wejściu wykonuje dziesiątki zapytań do bazy i uruchamia setki plików PHP. Full page cache zapisuje ostateczny HTML i podaje go kolejnym odwiedzającym bez uruchamiania PHP w ogóle. Różnica bywa dramatyczna: z 1-2 sekund generowania do 20-50 milisekund.
Ważne: włącz wykluczenia dla koszyka, stron logowania i panelu (dobre wtyczki robią to automatycznie dla WooCommerce). Zalogowani użytkownicy zwykle omijają cache - to celowe.
Po każdej zmianie wyglądu lub treści, która „nie chce się pokazać". Dziewięć na dziesięć zgłoszeń „zmieniłem stronę, ale nic się nie zmieniło" to właśnie stary cache - strony albo przeglądarki (odśwież z pominięciem cache: Ctrl+F5).
PHP jest językiem interpretowanym: przy każdym żądaniu serwer normalnie czyta pliki .php i kompiluje je do kodu pośredniego. OPcache przechowuje wynik tej kompilacji w pamięci RAM, dzięki czemu kolejne żądania pomijają najdroższy etap. To przyspieszenie rzędu 2-3× dla samego PHP - bez żadnych zmian w kodzie strony.
Na hostingu McProdukt OPcache jest włączony domyślnie dla wszystkich wersji PHP 8.x. Jeśli prowadzisz własny serwer VPS, upewnij się, że rozszerzenie jest aktywne (dyrektywa opcache.enable=1) i ma sensowny rozmiar pamięci (opcache.memory_consumption=128 lub więcej dla większych aplikacji).
Nawet z full page cache część żądań musi przejść przez PHP - np. koszyk w sklepie, wyszukiwarka, panel zalogowanego klienta. Wtedy wąskim gardłem staje się baza danych. Cache obiektowy (najczęściej Redis) trzyma wyniki powtarzalnych zapytań w pamięci RAM: zamiast pytać MySQL o listę kategorii przy każdym żądaniu, aplikacja dostaje ją z Redisa w mikrosekundach.
W WordPressie wystarczy wtyczka Redis Object Cache - po jej włączeniu liczba zapytań do MySQL potrafi spaść o 80-95%. Największą różnicę zobaczysz w sklepach WooCommerce i na stronach z dużą liczbą zalogowanych użytkowników.
CDN (Content Delivery Network) to sieć serwerów w wielu krajach, które przechowują kopie Twoich plików statycznych. Użytkownik z Niemiec pobierze obrazki z Frankfurtu, a nie z Warszawy - fizyczna odległość ma znaczenie, bo każde 1000 km to dodatkowe milisekundy opóźnienia.
Kiedy CDN ma sens? Gdy Twoi odbiorcy są rozproszeni geograficznie albo strona serwuje dużo mediów. Dla lokalnej strony firmowej z polskimi klientami hostowanej w Polsce zysk będzie niewielki - lepiej zainwestować czas w cache serwera. Popularny darmowy start to Cloudflare, który przy okazji daje ochronę przed atakami DDoS.
Przed i po zmianach sprawdź stronę w PageSpeed Insights (pagespeed.web.dev) - zwróć uwagę na metrykę TTFB (Time To First Byte, czas do pierwszego bajta) i LCP (Largest Contentful Paint). Dobrze skonfigurowany full page cache sprowadza TTFB poniżej 200 ms. Pamiętaj, żeby każdy test wykonać 2-3 razy - pierwszy pomiar może trafić na „zimny" cache.
Źle skonfigurowany - tak (patrz sekcja o błędach). Dobrze skonfigurowany jest niewidoczny dla użytkownika: strona po prostu działa szybciej. Zaczynaj od ustawień domyślnych renomowanej wtyczki i zmieniaj pojedyncze opcje, sprawdzając efekt.
Full page cache zwykle wygasa po zadanym czasie (np. 1-24 h) i jest czyszczony automatycznie przy publikacji treści. Cache przeglądarki wygasa według max-age. Ręczne czyszczenie potrzebne jest głównie po zmianach w wyglądzie strony.
Sprawdź wersję PHP (8.x jest wyraźnie szybsze od starszych), zoptymalizuj obrazy (format WebP), ogranicz liczbę wtyczek i zewnętrznych skryptów. Jeśli problem leży w bazie danych sklepu, rozważ wyższy pakiet hostingu z większą ilością RAM lub Redis.
Cache to nie jedna magiczna opcja, lecz kilka współpracujących warstw: przeglądarka, CDN, cache stron, OPcache i Redis. Włączenie ich w rozsądnej konfiguracji potrafi przyspieszyć stronę kilkukrotnie bez wydawania złotówki na mocniejszy serwer. Na hostingu McProdukt OPcache i cache plików statycznych działają od pierwszego dnia, a nasz zespół chętnie pomoże dobrać resztę konfiguracji do Twojej strony.
Wszystkie poradniki z kategorii: Szybkość i wydajność