memory_limit WordPress – jak skutecznie zwiększyć limit

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.

Łukasz Janeczko

Nazywam się Łukasz i stoję za DropDigital – ogarniam PrestaShop, WordPressa i własne moduły, które ułatwiają życie przedsiębiorcom. Prywatnie fan muzyki, Linuxa i motoryzacji, z zamiłowaniem do rozwiązywania problemów “po swojemu”.

Zostaw swój numer - oddzwonię

Cześć! Zadzwoń +48 572 651 439 lub napisz lub zostaw numer telefonu, a oddzwonię w ciągu 1h i porozmawiamy o ofercie.

Picture of Łukasz Janeczko

Łukasz Janeczko

Programista - DropDigital.pl