Jak zwiększyć limit uploadu plików w WordPress — 5 sprawdzonych metod

WordPress nie pozwala wrzucić pliku większego niż 2 MB? Pokazuję 5 metod zwiększenia limitu uploadu — przez php.ini, .htaccess, wp-config.php, functions.php i panel hostingu — z objaśnieniem, kiedy która działa.

Próbujesz wrzucić plik multimedialny do WordPressa i dostajesz komunikat „Przesyłany plik przekracza wartość upload_max_filesize”? To jeden z najbardziej irytujących limitów, na który trafia każdy administrator WordPressa. Domyślna wartość to zwykle 2 MB — co ledwie starczy na jedno nieskompresowane zdjęcie z telefonu, nie mówiąc o PDF-ach, filmach, plikach WooCommerce czy importach wtyczek.

Rozwiązanie polega na zmianie jednego ustawienia PHP: upload_max_filesize (i towarzyszącego mu post_max_size). Problem w tym, że sposób zmiany zależy od serwera, na którym stoi Twoja strona. Poniżej pokazuję 5 metod — od najprostszej (panel hostingu) po najdokładniejszą (php.ini) — z objaśnieniem, kiedy która działa.

Jaki limit uploadu masz teraz?

Najszybszy sposób sprawdzenia: zaloguj się do wp-admin i przejdź do Media → Dodaj nowy. Pod przyciskiem „Wybierz pliki” zobaczysz informację „Maksymalny rozmiar przesyłanego pliku: X MB”. To jest Twój aktualny limit.

Dla technicznego podejścia: możesz też sprawdzić przez PHP. Utwórz plik phpinfo.php w katalogu głównym WP z zawartością <?php phpinfo(); ?>, otwórz go w przeglądarce i szukaj parametrów upload_max_filesize i post_max_size. Pamiętaj usunąć plik po teście.

Trzy parametry, które musisz znać

Zanim zaczniesz zmieniać wartości, rozumiej co kontrolujesz:

  • upload_max_filesize — maksymalny rozmiar pojedynczego przesyłanego pliku. To główny limit, który widzisz w panelu WP.
  • post_max_size — maksymalny rozmiar całego żądania POST (dane formularza + wszystkie pliki). Musi być równy lub większy niż upload_max_filesize. Jeśli ustawisz upload na 64 MB, a post_max_size zostawisz na 8 MB, limit nie zadziała.
  • memory_limit — maksymalna ilość pamięci RAM dostępna dla jednego procesu PHP. Przetwarzanie dużego pliku (tworzenie miniatur, konwersja) wymaga pamięci, więc warto mieć ją ustawioną na conajmniej 256 MB.

Zasada kciuka: memory_limit > post_max_size > upload_max_filesize.

Metoda 1. Panel hostingu (najprostsza, zalecana)

Większość polskich hostingów (home.pl, nazwa.pl, cyber_Folks, zenbox, mydevil.net) pozwala zmienić parametry PHP bezpośrednio w panelu — bez dotykania plików konfiguracyjnych.

Szukaj w panelu sekcji o nazwie „PHP” / „Wersja PHP” / „Konfiguracja PHP” / „php.ini”. Zobaczysz tam listę parametrów z możliwością edycji wartości. Zmień:

  • upload_max_filesize64M
  • post_max_size64M
  • memory_limit256M
  • max_execution_time300 (sekundy — żeby duży plik zdążył się wgrać)

Zapisz i odczekaj 30 sekund. Wejdź do Media → Dodaj nowy — powinieneś widzieć nowy limit. Jeżeli hosting Ci nie pozwala zmienić tych wartości (zamknięty formularz), przejdź do kolejnych metod lub poproś support hostingu.

Metoda 2. Plik php.ini

Plik php.ini to główna konfiguracja PHP. Jeżeli Twój hosting pozwala na własny plik php.ini w katalogu WordPressa (a większość współdzielonych pozwala), to najskuteczniejsza metoda.

Utwórz plik php.ini w katalogu głównym WordPressa (obok wp-config.php) z zawartością:

upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300

Na niektórych hostingach plik ten musi nazywać się .user.ini (z kropką na początku). Jeżeli php.ini nie zadziałał — spróbuj zmienić nazwę. Zmiany wchodzą w życie natychmiast lub po 5 minutach (zależy od cache’a serwera).

Metoda 3. Plik .htaccess

Działa na serwerach Apache (zdecydowana większość polskich hostingów). Otwórz .htaccess w katalogu głównym WordPressa i na samym początku (przed blokiem # BEGIN WordPress) dodaj:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300

Zapisz plik. Jeżeli po tej zmianie strona pokazuje błąd 500 (Internal Server Error), oznacza to, że Twój hosting nie pozwala na dyrektywy php_value w .htaccess — w takiej sytuacji po prostu usuń dodane linie i wróć do metody 1 lub 2.

Metoda 4. Plik wp-config.php

WordPress pozwala ustawić jeden z parametrów (limit pamięci) bezpośrednio w wp-config.php. Na początku pliku (po <?php) dodaj:

@ini_set( 'upload_max_filesize' , '64M' );
@ini_set( 'post_max_size', '64M' );
@ini_set( 'memory_limit', '256M' );
@ini_set( 'max_execution_time', '300' );
@ini_set( 'max_input_time', '300' );

Uwaga: ta metoda działa tylko na niektórych konfiguracjach serwera. Na wielu hostingach z PHP-FPM, ini_set nie może nadpisać upload_max_filesize ani post_max_size (bo są to dyrektywy PHP_INI_PERDIR, a nie PHP_INI_ALL). W takim przypadku musisz użyć metody 1, 2 lub 3. Mimo to warto spróbować — zajmuje 30 sekund.

Dodatkowo WordPress ma własną stałą do limitu pamięci:

define( 'WP_MEMORY_LIMIT', '256M' );

To jednak wpływa tylko na pamięć, nie na upload. Wstaw ją przed linijką /* That's all, stop editing! */.

Metoda 5. Plik functions.php motywu

Działa tylko na serwerach, które akceptują ini_set — czyli nie wszędzie. Otwórz plik wp-content/themes/twoj-motyw/functions.php i dodaj na końcu (przed zamykającym ?>, jeśli istnieje):

@ini_set( 'upload_max_filesize', '64M' );
@ini_set( 'post_max_size', '64M' );
@ini_set( 'memory_limit', '256M' );

Wadą tej metody jest to, że ustawienia znikną przy zmianie motywu. Lepszym rozwiązaniem jest wpięcie tego w wtyczkę Must-Use: utwórz plik wp-content/mu-plugins/upload-limit.php z zawartością:

<?php
@ini_set( 'upload_max_filesize', '64M' );
@ini_set( 'post_max_size', '64M' );
@ini_set( 'memory_limit', '256M' );

Pliki w mu-plugins są ładowane automatycznie, niezależnie od aktywnego motywu — nie da się ich wyłączyć z poziomu panelu.

Którą metodę wybrać?

Metoda Skuteczność Łatwość Kiedy używać
Panel hostingu ★★★★★ ★★★★★ Zawsze jako pierwsza opcja
php.ini / .user.ini ★★★★★ ★★★★ Gdy panel nie ma opcji PHP
.htaccess ★★★★ ★★★ Apache (nie Nginx!)
wp-config.php ★★★ ★★★★ Szybki test, nie działa wszędzie
functions.php / mu-plugins ★★★ ★★★ Ostatnia deska ratunku

Co zrobić, gdy żadna metoda nie działa?

Jeżeli przejdziesz przez wszystkie 5 metod i limit wciąż się nie zmienia, problem leży po stronie hostingu:

  • Hosting twardogłowo blokuje nadpisywanie parametrów PHP — spotykanego na najtańszych planach współdzielonych. Jedyne wyjście: napisz do supportu i poproś o zmianę limitu po ich stronie. Większość hostingów robi to bezpłatnie.
  • Nginx bez obsługi .htaccess — pamiętaj, że metoda 3 nie działa na Nginx. Użyj php.ini / .user.ini lub poproś hosting o konfigurację po stronie serwera.
  • Reverse proxy (Cloudflare, LiteSpeed Enterprise) — Cloudflare w darmowym planie blokuje uploady większe niż 100 MB. LiteSpeed Enterprise może mieć własne limity. Sprawdź ustawienia CDN.

Alternatywa: upload dużych plików przez FTP

Jeżeli potrzebujesz wrzucić jednorazowo bardzo duży plik (np. 500 MB wideo), zamiast walczyć z limitem uploadu, wgraj plik bezpośrednio przez FTP do wp-content/uploads/YYYY/MM/. Plik pojawi się na serwerze, ale WordPress nie będzie o nim wiedział. Żeby dodać go do Biblioteki mediów, zainstaluj wtyczkę Media from FTP lub Add From Server — skanuje foldery uploads i rejestruje pliki w bazie WordPressa.

Najczęściej zadawane pytania

Dlaczego WordPress ma domyślnie tak niski limit?

To nie WordPress ustala limit — robi to konfiguracja PHP na serwerze. Domyślna wartość upload_max_filesize w PHP to 2 MB (odziedziczona z czasów, gdy 2 MB to był duży plik). Hostingi często zostawiają domyślne ustawienia, bo niższy limit zmniejsza zużycie zasobów serwera.

Jaki limit ustawić?

Zależy od Twoich potrzeb. Orientacyjne wartości:

  • Blog ze zdjęciami: 32–64 MB wystarcza
  • Sklep z galeriami produktów: 64 MB
  • Strona z wideo: 256–512 MB
  • Import dużych baz (WooCommerce, WPML, migracja): 256 MB+

Nie ustawiaj 1 GB „na zapas” — zbyt wysoki limit bez odpowiedniego max_execution_time i memory_limit spowoduje, że duże pliki zaczną się wgrywać, ale nie skończą (timeout PHP przerwie upload w połowie).

Czy zwiększenie limitu wpływa na bezpieczeństwo?

Bezpośrednio nie — ale pośrednio tak. Im wyższy limit, tym większy plik może wrzucić potencjalny atakujący (np. shell PHP ukryty jako obrazek). WordPress filtruje typy plików, ale dodatkowa warstwa ochrony to wtyczka bezpieczeństwa (Wordfence, Sucuri) blokująca wgrywanie podejrzanych rozszerzeń. Ustawiaj limit na realnie potrzebny poziom, nie na maksimum.

Podsumowanie

Zwiększenie limitu uploadu w WordPressie to operacja na 5 minut, ale metoda zależy od serwera. Zacznij od panelu hostingu — tam jest najpewniej. Jeżeli nie ma takiej opcji, sięgnij po php.ini lub .user.ini. A jeżeli nic nie pomaga — skontaktuj się z supportem hostingu i poproś o zmianę parametrów po ich stronie. To jedna z tych rzeczy, którą ustawiasz raz i zapominasz o niej na lata.

Picture of Tomasz Zieliński
Tomasz Zieliński

Tomasz zajmuje się tematyką SEO, sztucznej inteligencji i automatyzacji pracy w marketingu internetowym. W swoich artykułach analizuje zmiany w algorytmach wyszukiwarek, rozwój narzędzi AI oraz nowe sposoby tworzenia i optymalizacji treści. Interesuje go przede wszystkim to, jak technologia wpływa na codzienną pracę specjalistów SEO, marketerów i twórców internetowych.

Facebook
Twitter
LinkedIn
Pinterest

Najnowsze Wpisy

Śledź nas