Czas wygasania cache w WordPress ustawisz najłatwiej w panelu wtyczki buforującej, na przykład LiteSpeed Cache. Zaawansowani użytkownicy mogą skonfigurować nagłówki przeglądarki w pliku .htaccess. To dwie różne warstwy: TTL wtyczki dotyczy głównie pamięci podręcznej na serwerze, a .htaccess steruje między innymi nagłówkiem Cache-Control wysyłanym do przeglądarki.
Jak ustawić TTL w LiteSpeed Cache?
LiteSpeed Cache korzysta z buforowania na poziomie serwera LiteSpeed. Jeśli używasz innego serwera, na przykład Apache lub Nginx, część funkcji wtyczki może działać inaczej. Wartość TTL określa, jak długo odpowiedź może pozostać w pamięci podręcznej, zanim wtyczka pobierze lub wygeneruje nowszą wersję.
Konfigurację wykonasz w następującej kolejności:
- W panelu WordPress otwórz LiteSpeed Cache.
- Przejdź do Pamięć podręczna → TTL.
- Znajdź ustawienie Domyślny publiczny Cache TTL.
- Wpisz czas w sekundach i zapisz zmiany.
Domyślna wartość publicznej pamięci podręcznej to 604800 sekund, czyli 1 tydzień. Dla większości stron firmowych i blogów można ją pozostawić bez zmian. Prywatny cache ma zwykle krótszy czas, na przykład 1800 sekund, czyli 30 minut, ponieważ może zawierać treści zależne od użytkownika.
Po zmianie ustawień wyczyść istniejący cache. Bez tego część odwiedzających może nadal otrzymywać wcześniejszą wersję strony. Nie ustawiaj długiego TTL dla stron, na których często zmieniają się ceny, stany magazynowe, koszyk lub dane użytkownika.
Jak ustawić czas wygasania cache przez .htaccess?
Plik .htaccess działa na serwerach Apache i pozwala ustawiać nagłówki dla pamięci podręcznej przeglądarki. Na Nginx nie jest obsługiwany, dlatego analogiczne reguły trzeba dodać w głównej konfiguracji serwera albo zlecić je administratorowi hostingu.
Przed edycją pobierz kopię pliku .htaccess. Użyj zwykłego edytora tekstu, a nie Worda lub innego programu zapisującego formatowanie. Reguły dodaj poza blokiem oznaczonym przez WordPress jako # BEGIN WordPress i # END WordPress, ponieważ ten fragment może zostać nadpisany.
Uwaga: błąd składni w .htaccess może spowodować błąd 500 i całkowicie zablokować stronę. Po zapisaniu od razu sprawdź stronę główną oraz kilka podstron. Jeśli pojawi się błąd, przywróć kopię pliku.
Przykładowa konfiguracja wykorzystująca dyrektywę ExpiresByType wygląda tak:
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresDefault "access plus 3 days"
Zestawienie sugerowanych czasów dla podstawowych typów plików wygląda następująco:
| Typ pliku | Sugerowany czas TTL | Dlaczego? |
|---|---|---|
| Obrazy | 1 rok | Zwykle zmieniają się rzadko i mogą być długo przechowywane w przeglądarce. |
| CSS i JavaScript | 1 miesiąc | Pliki są statyczne, ale ich zmiana może wpływać na wygląd i działanie strony. |
| HTML | 0 sekund lub krótko | Treść może zmieniać się często, dlatego przeglądarka powinna szybciej sprawdzać nową wersję. |
Długi TTL dla plików CSS i JavaScript działa najlepiej, gdy po każdej zmianie zmieniasz nazwę pliku albo dodajesz wersję w adresie, na przykład style.css?ver=2. W przeciwnym razie przeglądarka może przez pewien czas korzystać ze starego zasobu.
Możesz też ustawić nagłówek Cache-Control za pomocą modułu Apache mod_headers:
<FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|ico)$">
Header set Cache-Control "public, max-age=31536000"
</FilesMatch>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "public, max-age=2592000"
</FilesMatch>
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "no-cache, must-revalidate"
</FilesMatch>
Wartości max-age są podawane w sekundach. Rok to 31 536 000 sekund, a miesiąc przy przyjęciu 30 dni to 2 592 000 sekund. Jeśli hosting nie pozwala na użycie dyrektywy lub modułu, nie dodawaj jej na siłę. Poproś administratora o sprawdzenie konfiguracji Apache.
Jak sprawdzić, czy TTL działa?
Otwórz stronę w przeglądarce, naciśnij F12 i przejdź do zakładki Network lub „Sieć”. Wybierz plik CSS, JavaScript albo obraz, a następnie rozwiń sekcję Response Headers. Sprawdź wartości:
- Cache-Control – pokazuje między innymi wartość
max-age. - Expires – wskazuje datę wygaśnięcia zasobu, jeśli serwer ją wysyła.
- Age – może informować, jak długo odpowiedź znajduje się w cache serwera.
- X-LiteSpeed-Cache – na serwerze LiteSpeed może wskazywać, czy odpowiedź pochodzi z pamięci podręcznej.
Po zmianie ustawień sprawdź stronę w oknie prywatnym lub po wyczyszczeniu cache. Jeśli nagłówki nie odpowiadają konfiguracji, reguły może nadpisywać wtyczka, CDN, reverse proxy albo konfiguracja hostingu.
Dla większości użytkowników bezpiecznym wyborem jest ustawienie TTL w LiteSpeed Cache i pozostawienie domyślnego tygodnia dla publicznego cache. Plik .htaccess wybierz wtedy, gdy potrzebujesz precyzyjnie sterować buforowaniem plików w przeglądarce i potrafisz bezpiecznie wycofać zmianę.