Strona główna  /  Hosting i domeny  /  Jak skonfigurować htaccess cache w WordPress?

✦ AI
Stylizowana serwerownia z ikoną konfiguracji plików, symbolizująca optymalizację pamięci podręcznej w WordPressie.

Jak skonfigurować htaccess cache w WordPress?

Dodanie reguł do pliku .htaccess pozwala włączyć kompresję GZIP i ustawić cache przeglądarki dla plików statycznych WordPressa. Dzięki temu strona przesyła mniej danych, a powracający użytkownik może pobierać obrazy, arkusze CSS i skrypty JavaScript z własnego urządzenia.

Jak bezpiecznie edytować plik .htaccess?

Plik .htaccess działa na serwerach Apache i zwykle znajduje się w głównym katalogu instalacji WordPressa, najczęściej w folderze public_html. Możesz otworzyć go przez FTP, SFTP albo Menedżer plików w panelu hostingu.

Przed zmianą pobierz kopię pliku .htaccess. Błąd składni może spowodować błąd 500 Internal Server Error i uniemożliwić otwarcie strony.

Przed wklejeniem reguł sprawdź następujące elementy:

  • Kopia zapasowa – zapisz oryginalny plik lokalnie, aby móc szybko przywrócić poprzednią konfigurację.
  • Dostęp do plików – przygotuj dane FTP lub dostęp do menedżera plików hostingu.
  • Serwer Apache – reguły .htaccess nie działają na serwerze Nginx, chyba że hosting zapewnia dodatkową obsługę tej konfiguracji.
  • Test po zmianie – po zapisaniu pliku otwórz stronę w trybie incognito i sprawdź kilka podstron.

Nie usuwaj istniejących reguł WordPressa, które odpowiadają za przyjazne adresy URL. Nowe bloki najlepiej wkleić przed sekcją dodawaną automatycznie przez WordPress albo w miejscu wskazanym przez dokumentację hostingu.

Jak włączyć kompresję GZIP?

Kompresja GZIP zmniejsza rozmiar tekstowych danych przesyłanych z serwera do przeglądarki. Dotyczy między innymi kodu HTML, arkuszy CSS, plików JavaScript, XML i JSON. Mniejsza paczka danych może skrócić czas pobierania, szczególnie przy wolniejszym połączeniu.

Wklej do .htaccess poniższy blok:

# Kompresja GZIP dla treści tekstowych
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType application/xml
    AddOutputFilterByType application/json
    AddOutputFilterByType application/javascript
    AddOutputFilterByType text/javascript
</IfModule>

Dyrektywa <IfModule> sprawia, że blok zostanie zastosowany tylko wtedy, gdy hosting udostępnia moduł mod_deflate. Jeżeli moduł jest wyłączony, kod nie włączy kompresji. Nie oznacza to jednak, że należy samodzielnie dodawać alternatywne, niepotwierdzone reguły. W takiej sytuacji zapytaj administratora hostingu o dostępność kompresji.

Jak ustawić cache przeglądarki?

Cache przeglądarki przechowuje lokalnie kopie zasobów, które rzadko się zmieniają. Przy kolejnej wizycie obraz, arkusz CSS lub skrypt JavaScript może zostać odczytany z urządzenia użytkownika zamiast pobrany ponownie z serwera. Za nagłówki Expires odpowiada moduł mod_expires.

Dodaj drugi blok:

# Cache przeglądarki dla plików statycznych
<IfModule mod_expires.c>
    ExpiresActive On

    # Obrazy i ikona strony
    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"

    # Style i skrypty
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"

    # Czcionki
    ExpiresByType font/woff "access plus 1 year"
    ExpiresByType font/woff2 "access plus 1 year"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType application/x-font-ttf "access plus 1 year"

    # Dokumenty HTML są odświeżane częściej
    ExpiresByType text/html "access plus 10 minutes"
    ExpiresByType application/xhtml+xml "access plus 10 minutes"
</IfModule>

Czasy można dobrać do sposobu aktualizowania witryny. Najczęściej dłuższy cache ustawia się dla zasobów statycznych, takich jak:

  • obrazy JPEG, PNG, GIF, WebP i SVG
  • arkusze stylów CSS
  • skrypty JavaScript
  • czcionki WOFF i WOFF2

Długi czas przechowywania przyspiesza kolejne wizyty, ale może opóźnić wyświetlenie zmian w plikach CSS lub JavaScript. Jeśli po wdrożeniu aktualizacji użytkownik widzi starą wersję stylów, wyczyść cache albo zmień nazwę pliku, na przykład przez wersjonowanie zasobu.

Jak sprawdzić, czy konfiguracja działa?

Po zapisaniu pliku otwórz stronę w oknie prywatnym i sprawdź stronę główną oraz kilka podstron. Zwróć uwagę, czy nie pojawia się błąd 500. Jeśli strona przestała działać, przywróć kopię .htaccess. Gdy to nie pomoże, skontaktuj się z administratorem hostingu i poproś o sprawdzenie logów serwera.

W przeglądarce otwórz narzędzia deweloperskie, przejdź do karty Network i odśwież stronę. Po wybraniu pliku sprawdzisz nagłówki odpowiedzi. Szukaj informacji związanych z kompresją, takich jak Content-Encoding: gzip, oraz nagłówków określających czas przechowywania zasobu.

Drugim narzędziem jest Google PageSpeed Insights. Wykonaj test przed zmianą i po niej, ale traktuj wynik jako wskazówkę, a nie jedyny miernik poprawy. Na ocenę wpływają także obrazy, skrypty, hosting i sposób generowania strony przez WordPress.

Najbezpieczniejszy schemat to backup, jeden logiczny blok zmian, test strony i dopiero potem dalsza optymalizacja. Kompresja GZIP zmniejsza ilość przesyłanych danych, natomiast cache przeglądarki ogranicza ponowne pobieranie plików statycznych. Obie funkcje dotyczą konfiguracji serwera Apache i mogą wymagać włączenia modułów przez operatora hostingu.

Redakcja wpinternals.pl

WordPressa znamy od kuchni – budujemy na nim strony, migrujemy serwisy i optymalizujemy ich wydajność. Piszemy o wtyczkach, motywach, hostingu i bezpieczeństwie tak, by poradzili sobie także początkujący. Dbamy o to, by Twoja strona była szybka, stabilna i bezpieczna.

Może Cię również zainteresować

Potrzebujesz więcej informacji?