memory_limit WordPress zwiększenie to temat, do którego prędzej czy później wraca każdy, kto rozwija rozbudowaną stronę, sklep WooCommerce albo portal z wieloma wtyczkami. Gdy witryna zaczyna się krztusić przy generowaniu podglądu w edytorze, importowaniu produktów czy przetwarzaniu obrazów, najczęściej winny jest zbyt niski limit pamięci PHP. Dobra wiadomość: można to naprawić szybko i w kontrolowany sposób – a przy okazji uniknąć błędów, które sprawiają, że zmiana w ogóle nie działa.
Na czym polega limit pamięci w WordPress i PHP
Limit pamięci to maksymalna ilość RAM, jaką może zużyć pojedyncze wywołanie PHP – a więc w praktyce jeden request do Twojej strony. Jeśli Twój motyw, wtyczki lub procesy (np. generowanie miniatur, import CSV, backup) potrzebują więcej pamięci niż przewidziano w ustawieniach, PHP zatrzyma działanie skryptu i zwróci błąd.
W WordPress mamy dwa poziomy limitów:
– limit globalny ustawiany w PHP (dyrektywa memory_limit),
– limit z poziomu WordPress (WP_MEMORY_LIMIT oraz WP_MAX_MEMORY_LIMIT).
To, co faktycznie zadziała, zależy od środowiska serwera i priorytetów, o których piszę niżej.
Jak rozpoznać, że limit pamięci jest zbyt niski
Gdy pamięci brakuje, pojawiają się objawy, które łatwo przegapić lub pomylić z innymi problemami. Oto najczęstsze sygnały:
– Fatal error: Allowed memory size of X bytes exhausted – komunikat w logach lub na ekranie.
– Biały ekran śmierci (blank page) bez dodatkowych informacji.
– Nieudane importy, przerwane backupy, błędy podczas generowania miniatur.
– Edytor blokowy lub page builder (np. Elementor) ładuje się bardzo wolno albo wcale.
– Panel administratora zaczyna działać topornie po instalacji nowej, zasobożernej wtyczki.
Warto też systematycznie zaglądać do Narzędzia -> Stan witryny -> Informacje. Znajdziesz tam aktualny limit pamięci i inne parametry PHP.
WP_MEMORY_LIMIT vs PHP memory_limit – co ma pierwszeństwo
– WP_MEMORY_LIMIT – dotyczy frontu i standardowego admina. Domyślnie WordPress ustawia go zwykle na 40M/64M (różnie w zależności od wersji).
– WP_MAX_MEMORY_LIMIT – dotyczy zadań administracyjnych “cięższego kalibru” (np. importy, aktualizacje). Często ustawia się go wyżej niż WP_MEMORY_LIMIT.
– PHP memory_limit – globalny sufit narzucany przez serwer/hosting. WordPress nie podniesie limitu powyżej tego, co dopuszcza PHP.
To oznacza: możesz zdefiniować w wp-config.php nawet 1024M, ale jeśli serwerowy memory_limit to 256M, WordPress nie przejdzie tej granicy. Dlatego najpierw ustaw PHP, potem doprecyzuj WordPress.
Najczęstsze przypadki użycia i sensowne wartości
– Mały blog/strona wizytówka: 128M–256M.
– Sklep WooCommerce, buildery stron, wiele wtyczek: 256M–512M.
– Duże importy, zaawansowane integracje, multisite: 512M i więcej (o ile hosting pozwala).
Nie ustawiaj “nieskończoności”. Zbyt wysoki limit może maskować błędy i “połykać” RAM na serwerze, wpływając na stabilność.
memory_limit WordPress zwiększenie krok po kroku
Poniżej proces, który w praktyce działa na większości hostingów. Trzymaj się kolejności – to skraca drogę do sukcesu.
1. Sprawdź aktualne wartości i środowisko
– W WordPress: Narzędzia -> Stan witryny -> Informacje -> Serwer (zwróć uwagę na memory_limit i wersję PHP).
– Jeśli masz dostęp do WP-CLI: wp eval 'echo ini_get(„memory_limit”);’
– Zwróć uwagę, czy serwer to Apache z mod_php, czy PHP-FPM (częste na współdzielonych hostingach). Od tego zależy, gdzie zmieniać ustawienia.
2. Zwiększ limit na poziomie PHP (hosting/serwer)
Priorytet ma konfiguracja PHP. W zależności od hostingu masz kilka dróg:
– Panel hostingu (najprostsze): w sekcji PHP/ustawienia wybierz memory_limit i ustaw np. 512M.
– php.ini lub user.ini (na współdzielonych często działa .user.ini):
memory_limit = 512M
– .htaccess (tylko przy Apache z mod_php, nie zadziała przy PHP-FPM/NGINX):
php_value memory_limit 512M
Po zmianie warto wykonać restart PHP-FPM (na VPS) lub odczekać kilka minut, aż hosting przeładuje konfigurację. Na części paneli znajdziesz przycisk “Restart PHP”.
3. Ustal limity w WordPress (wp-config.php)
Zajrzyj do wp-config.php (plik w katalogu głównym WP) i dodaj wpisy nad linią “/ That’s all, stop editing! Happy publishing. /”:
define(’WP_MEMORY_LIMIT’, '256M’);
define(’WP_MAX_MEMORY_LIMIT’, '512M’);
Jeśli sklep/edytor wymagają więcej, podnieś odpowiednio wartości, ale pamiętaj o limicie PHP z kroku 2.
W multisite czasem trzeba ustawić tylko WP_MAX_MEMORY_LIMIT – to on ma zastosowanie do operacji admina sieci.
4. Zapisz, wyczyść cache i sprawdź efekty
– Wyczyść cache wtyczek (WP Rocket, W3TC itd.) i cache na poziomie serwera/CDN.
– Ponownie sprawdź w Narzędzia -> Stan witryny -> Informacje, czy wartości się zmieniły.
– Odwiedź stronę, która wcześniej powodowała błąd (import, edytor, generowanie miniatur).
5. Jeśli zmiana nie działa, sprawdź kolejność priorytetów
– Przy PHP-FPM ignorowane są dyrektywy w .htaccess (php_value). Użyj .user.ini lub panelu hostingu.
– Niektóre hostingi mają “twardy” sufit. Support musi podnieść limit po swojej stronie.
– Inne dyrektywy, np. w dodatkowych plikach .ini, mogą nadpisywać Twoje ustawienia. Zapytaj support o ścieżkę aktywnej konfiguracji (loaded php.ini, additional .ini files).
6. Rozważ limity dla CLI, jeśli używasz WP-CLI lub crona systemowego
Zadania uruchamiane z wiersza poleceń mogą mieć osobny memory_limit. Dodaj do komendy:
php -d memory_limit=1024M wp import …
albo ustaw osobny php.ini dla środowiska CLI.
Typowe pułapki, które blokują skuteczne zwiększenie
– Używanie .htaccess przy PHP-FPM – bez efektu, bo dyrektywy php_value są ignorowane.
– Edytowanie niewłaściwego php.ini – na serwerze bywa kilka plików, a aktywny jest inny.
– Dodawanie define() w wp-config.php poniżej linii “Stop editing” – WordPress ich nie wczyta.
– Wtyczki bezpieczeństwa nadpisujące ustawienia – rzadkie, ale możliwe.
– Cache opcache i brak restartu – zmiany w php.ini mogą “nie wejść” bez restartu FPM.
Kiedy zwiększać, a kiedy optymalizować
Zwiększenie limitu to szybka ulga, ale czasem maskuje problemy. Warto przejść checklistę optymalizacyjną:
– Usuń wtyczki duplikujące funkcje i te, których realnie nie używasz.
– Sprawdź wtyczki ciężkie pamięciowo: page buildery, analityka, backupy “on the fly”.
– Ogranicz liczbę rozmiarów obrazów generowanych przez motyw/wtyczki.
– Zmniejsz rozdzielczość źródłowych grafik. Przetwarzanie dużych plików (np. 8000 px) zużywa ogrom pamięci w GD/Imagick.
– Włącz i skonfiguruj Object Cache (Redis/Memcached) – zmniejszy koszty serializacji/deserializacji i część operacji w pamięci.
– Przejrzyj autoload w tabeli wp_options – rekordy o bardzo dużym autoload mogą obciążać każdy request.
– Skorzystaj z Query Monitor, żeby namierzyć gorące punkty (zapytania, hooki, użycie pamięci).
Bezpieczne wartości i dobre praktyki
– Zaczynaj od 256M, testuj, a potem podnoś do 512M, jeśli naprawdę potrzeba.
– Stosuj osobne limity: WP_MEMORY_LIMIT (front) niżej, WP_MAX_MEMORY_LIMIT (admin/ciężkie zadania) wyżej.
– Aktualizuj PHP do nowszej, wspieranej wersji. Nowsze wydania są szybsze i efektywniejsze pamięciowo.
– Monitoruj logi: wp-content/debug.log (po włączeniu WP_DEBUG_LOG) i logi PHP na serwerze.
– Na współdzielonym hostingu pamiętaj o sąsiadach. Agresywne limity mogą prowadzić do throttlingu.
Przykłady konfiguracji dla popularnych scenariuszy
– Sklep WooCommerce z builderem:
– PHP: memory_limit = 512M
– wp-config.php:
define(’WP_MEMORY_LIMIT’, '256M’);
define(’WP_MAX_MEMORY_LIMIT’, '512M’);
– Duże importy przez WP-CLI:
– Komenda:
php -d memory_limit=1024M wp import products.xml –authors=create
– Hosting z panelem:
– Ustaw w panelu 512M, a w wp-config.php tylko WP_MAX_MEMORY_LIMIT na 512M, zostawiając WP_MEMORY_LIMIT na 256M – front nie “połyka” za dużo RAM.
Rozwiązywanie problemów, gdy mimo wszystko pojawiają się błędy
– Nadal widzisz “Allowed memory size exhausted”:
– 1. Upewnij się, że memory_limit PHP faktycznie zmienił się (phpinfo lub WP-CLI).
– 2. Podnieś WP_MAX_MEMORY_LIMIT – być może problem dotyczy zadania admina.
– 3. Sprawdź w logach, który proces “puchnie” (często generowanie obrazów, raporty, eksporty).
– 4. Tymczasowo wyłącz ciężkie wtyczki i testuj metodą połowienia (halve and test).
– Błąd tylko przy obrazach:
– Zmień bibliotekę do przetwarzania (Imagick ↔ GD) lub ogranicz rozmiar wejściowy.
– W Imagick można ustawić limity zasobów w polityce, ale na współdzielonych to rzadko dostępne.
– Multisite:
– Zdefiniuj limity globalnie w wp-config.php i upewnij się, że sieć nie ma własnych restrykcji.
Pytania i odpowiedzi, które często się pojawiają
– Czy mogę ustawić 1024M i zapomnieć?
– Możesz, jeśli hosting pozwala, ale to nie zawsze mądre. Lepiej ustawić tyle, ile realnie potrzebujesz, i równolegle optymalizować.
– Czy ini_set(’memory_limit’, '512M’) w functions.php coś da?
– Czasem tak, ale WordPress i tak preferuje ustawienia z wp-config.php, a serwer może zignorować ini_set. Traktuj to jako ostateczność/test.
– Czy CDN lub cache rozwiąże problem pamięci?
– Zmniejszy liczbę requestów do PHP, ale dla ciężkich operacji backendowych (importy, cron, generowanie miniatur) limit pamięci nadal ma znaczenie.
– Czy debugowanie spowalnia i zwiększa zużycie pamięci?
– Włączenie WP_DEBUG i logowania może nieznacznie podnieść koszty, ale zyskasz jasny obraz problemu. Nie zostawiaj debugowania na produkcji na stałe.
Szybka checklista, zanim napiszesz do supportu
– 1. Sprawdź aktualne memory_limit (Stan witryny lub phpinfo/WP-CLI).
– 2. Ustaw memory_limit w panelu hostingu lub w .user.ini/php.ini.
– 3. Dodaj w wp-config.php: WP_MEMORY_LIMIT i WP_MAX_MEMORY_LIMIT.
– 4. Wyczyść cache (wtyczki/serwer/CDN) i zrestartuj PHP-FPM, jeśli możesz.
– 5. Zweryfikuj w Stanie witryny, czy wartości się zmieniły.
– 6. Przetestuj scenariusz, który wcześniej się sypał (import, edytor).
– 7. Jeśli dalej nic, skontaktuj się z hostingiem, podając dokładne wartości, które próbowałeś ustawić i logi z błędami.
Podsumowanie – rozsądek i metoda dają najlepszy efekt
Zwiększenie limitu pamięci to nie czarna magia. Klucz to:
– zacząć od poziomu PHP,
– dopiero potem doprecyzować wartości w WordPress,
– i na końcu upewnić się, że zmiany faktycznie obowiązują.
Jeśli Twoja witryna rośnie – masz więcej produktów, media są cięższe, a zestaw wtyczek rozbudowany – podniesienie limitu do 256M–512M jest dziś standardem. Równolegle inwestuj w optymalizację: porządki w wtyczkach, sensowne rozmiary grafik, pamięć podręczna obiektów i aktualne PHP. Dzięki temu “memory_limit WordPress zwiększenie” stanie się nie doraźną protezą, lecz elementem szerszej, zdrowej konfiguracji, która utrzyma stronę szybką i stabilną w dłuższej perspektywie.