Jak sprawdzić i zmniejszyć zużycie pamięci przez WordPressa

Obawiasz się, że Twój WordPress zużywa więcej pamięci niż powinien? A może wyświetlają się błędy o braku pamięci, przez co strona przestaje działać? Możesz w prosty sposób sprawdzić ilość pamięci wykorzystywanej przez WordPressa i postarać się zmniejszyć jej przydział.

Skrypty WordPressa są napisane w języku PHP i wykonywane po stronie serwera. Tak samo jak programy w Windowsie potrzebują pamięci RAM do wykonywania wszystkich operacji, tak również skrypty PHP na serwerze wymagają odpowiedniego przydziału pamięci do wykonania wszystkich poleceń.

Może się zdarzyć, że na twojej stronie zacznie pojawiać się komunikat na białym tle, informujący, że przekroczono dostępny limit pamięci Co w takiej sytuacji zrobić? Jak sprawdzić, ile pamięci RAM wykorzystuje WordPress? Czy jest jakiś sposób na to, aby zwiększyć limit pamięci, tak, aby skrypty wykonywały się poprawnie? I czy da się zrobić coś, aby to zużycie zmniejszyć?

Jak zwiększyć limit pamięci dla WordPressa, gdy wyświetla się błąd na białym tle?

Bardzo możliwe, że trafiłeś na ten artykuł, gdyż twój WordPress zaczął wyświetlać błędy na białym tle, informujące o przekroczeniu limitu pamięci. Przykładem takiego błędu jest poniższy komunikat:

„Fatal error: Allowed memory size of 67108864 bytes exhausted”

Jeśli tak się stało, to musisz przynajmniej tymczasowo zwiększyć limit pamięci dla WordPressa, aby go reanimować.  Najprostszym sposobem na zwiększenie limitu pamięci jest zalogowanie się na serwer FTP i dokonanie edycji pliku wp-config.php, który znajduje się w katalogu z twoją stroną.

Skopiuj plik wp-config.php na komputer, a następnie otwórz w Notatniku lub programie Notepad++. Jako że jest to plik PHP, to na samej górze znajdziesz otwierający dokument znacznik „<?php>”. Tuż pod nim dopisz poniższą linię:

define(‚WP_MEMORY_LIMIT’, ’96M’);

Powyższa linia sprawia, że limit pamięci zostanie ustawiony na 96 megabajtów. Możesz oczywiście tę liczbę zwiększyć lub zmniejszyć, wpisując np. 128M lub 256M. Polecamy skorzystanie z tej metody i stopniowe zwiększanie pamięci aż strona zacznie działać.

Alternatywnie, jeśli nie wiesz, jaką liczbę wpisać, to możesz użyć wartości ujemnej, tak, jak poniżej:

define(‚WP_MEMORY_LIMIT’, ’-1’);

Wartość „-1” sprawia, że całkowicie usuwamy limit pamięci przydzielonej dla WordPressa. Oznacza to, że WordPress może używać tyle pamięci, ile zechce. Na dłuższą metę nie powinieneś tego używać, gdyż w przypadku uszkodzonego, pamięciożernego WordPressa może to znacznie spowolnić twój serwer – jest to konfiguracja dobra tylko na potrzeby testów lub podczas rozwiązywania problemów.

Po edycji tego pliku zapisz go, a następnie wyślij na serwer zastępując stary plik. Teraz twój WordPress może wykorzystać więcej pamięci. Wszystkie podstrony powinny wyświetlać się bez pokazywania błędów o przekroczeniu limitu pamięci.

Jak sprawdzić, ile pamięci zużywa WordPress?

Zużycie pamięci możesz sprawdzić za pomocą odpowiedniej wtyczki, która monitoruje wykorzystanie pamięci i wyświetla statystyki w panelu administratora. Najprostszą i bardzo skuteczną wtyczką tego typu jest Server IP & Memory Usage Display.

Pobierz Server IP & Memory Usage Display

Wtyczkę możesz pobrać z powyższego linku lub możesz po prostu przejść do panelu WordPressa, wejść do działu z wtyczkami, wybrać opcję „Dodaj nową wtyczkę” i wyszukać Server IP & Memory Usage Display.

Po dodaniu i włączeniu wtyczki wyświetla ona w stopce panelu administracyjnego jedną linię z informacjami o zużyciu pamięci, o aktualnie ustawionym limicie pamięci, o adresie IP, a także o ustawionej wersji PHP.

Jeśli zbliżasz się nieuchronnie do limitu pamięci RAM, to liczba zużytej pamięci RAM wyświetli się kolorem czerwonym. Pomarańczowy kolor oznacza, że zużycie jest wysokie (powyżej 75% dostępnej pamięci), ale wciąż pozostał niewielki zapas. Gdy zużycie jest bardzo duże i wynosi np. ponad 100MB przy niewielkiej stronie z niewielką ilością wtyczek, to warto pomyśleć nad tym, w jaki sposób można zmniejszyć zużycie pamięci. Z pewnością wpłynie to pozytywnie na szybkość działania strony.

Jak zmniejszyć zużycie pamięci w WordPressie przez zmianę wersji interpretera PHP?

Jedną z najlepszych metod na zmniejszenie zużycia pamięci jest zmiana wersji PHP na serwerze na nowszą. Interpreter PHP występuje w wielu wersjach. Dziś go można spotkać w wersjach 5.3, 5.4, 5.5, 5.6, a także 7.0 i 7.1. W zależności od twojego hostingu, twój serwer może obsługiwać wszystkie te wersje lub tylko część z nich.

W LH.pl obsługujemy wersje 5.4, 5.5, 5.6 oraz 7.0. Twoja strona korzysta jednak tylko z jednej wersji – tej, która jest aktualnie ustawiona. Jeśli domyślnie masz ustawioną bardzo starą wersję PHP, to zmiana na nowszą spowoduje znacznie zmniejszenie użycia pamięci przez stronę.

Wersja interpretera PHP ma bardzo duży wpływ na szybkość działania strony i na zużycie pamięci RAM przez skrypty PHP. Im nowsza wersja tym mniejsze zużycie pamięci – pamiętaj jednak, aby starać się nie korzystać z PHP w wersji starszej niż 5.6, gdyż wystawia to twoją stronę na niebezpieczeństwo.

Wtyczka Server IP & Memory Usage pokazuje Ci, z jakiej wersji PHP twój WordPress aktualnie korzysta. Zalecamy zużycie wersji 5.6 lub nowszej (sam WordPress zaleca PHP 7.0 lub nowsze). W zależności od hostingu sposób zmiany PHP różni się od siebie. W LH.pl opcja ta jest dostępna poprzez modyfikację pliku .htaccess.

Wejdź na serwer FTP i ze swojego folderu z WordPressem skopiuj plik .htaccess na dysk komputera. Następnie otwórz go najlepiej za pomocą programu NotePad++. Musisz dopisać tutaj poniższy fragment, który definiuje, z jakiej wersji PHP chcesz korzystać.

<FilesMatch ".php">
SetHandler application/x-httpd-php56
</FilesMatch>

Powyższy fragment aktywuje wersję PHP 5.6 w twoim WordPressie. Jeśli chcesz używać wersji 7.0, to zamiast „x-httpd-php56” wpisz „x-httpd-php70”. Więcej informacji znajdziesz w pomocy LH.pl, gdzie opisaliśmy, jak zmienić wersję PHP na serwerze. Zapisz plik .htaccess i wyślij go na serwer, zastępując oryginalny.

Inne sposoby na zmniejszenie pamięciożerności WordPressa

Oprócz zmiany wersji PHP warto przejrzeć zainstalowane wtyczki i ograniczyć je tylko do tych, które potrzebujemy najbardziej. Wtyczki potrafią mocno wpływać na zużycie pamięci, zwłaszcza, gdy korzystamy ze starszych, które oficjalnie nie wspierają najnowszej wersji WordPressa. Jeśli nie możesz z jakiejś wtyczki zrezygnować, to zobacz, czy nie ma lżejszej alternatywy o podobnym działaniu.

Warto także upewnić się, że na stronie mamy włączoną pamięć podręczną (cache). Pozwala to uniknąć każdorazowego wykonywania skryptów PHP przy przeglądaniu strony. Możesz użyć np. wtyczki W3 Total Cache, która pozwala skonfigurować pamięć podręczną w WordPressie.

Niemałe znaczenie ma również twój motyw. Jeśli korzystasz z bardzo ciężkiego motywu, wyposażonego w ogrom funkcji, to logiczne jest, że będzie on powodował większe zużycie pamięci. Nie zawsze mamy możliwość zmiany motywu, zwłaszcza, gdy strona już od jakiegoś czasu działa (wtedy może się to wiązać z dodatkowymi kosztami dopasowywania nowego szablonu). Warto jednak ten punkt mieć na uwadze już na etapie projektowania strony i wybrać taki szablon, który nie obciąża strony.

Darmowy kurs WordPress
Poradnik WordPress
Artykuł odpowiedział na twoje pytanie? Udostępnij go dalej:
Obrazek domyślny
Błażej Starosta
Ma doświadczenie w tworzeniu oraz prowadzeniu stron WWW, od blogów aż po sklepy internetowe. Od lat uważnie śledzi rozwój WordPressa i jego wpływ na rynek twórców stron internetowych. Stara się być na bieżąco ze wszystkimi nowinkami technologicznymi i dzielić się swoją wiedzą.
Raport rynku WordPress