Przejdź do treści

Limity przesyłania obrazów w WordPress

Większość porad zaleca edycję pliku php.ini. Na hostingu współdzielonym często jest to niemożliwe. Kompresja obrazu przed przesłaniem działa wszędzie.

Skompresuj obraz poniżej limitu zamiast go zwiększać, ponieważ mniejszy plik rozwiązuje problem z błędem przesyłania i szybkością strony za jednym zamachem. WordPress dziedziczy swój limit z PHP, zazwyczaj wynosi on 2 MB lub 8 MB w zależności od hostingu, a na hostingu zarządzanym lub współdzielonym często nie można go zmienić.

Prawie każdy artykuł na ten temat zaleca edycję php.ini, .htaccess lub wp-config.php. Instrukcje te zakładają dostęp do serwera, którego większość właścicieli stron nie posiada, a nawet jeśli taki dostęp istnieje, warto zadać sobie pytanie, czy zwiększanie limitu jest właściwym krokiem.

Skąd bierze się ten limit

Limit jest określany przez 3 wartości PHP, a najmniejsza z nich decyduje o ostatecznym ograniczeniu. WordPress wyświetla wynikową wartość pod oknem przesyłania plików, dlatego liczba ta często różni się od tej, którą reklamuje firma hostingowa.

  • upload_max_filesize kontroluje maksymalny rozmiar pojedynczego pliku, jaki zaakceptuje PHP.
  • post_max_size kontroluje całkowity rozmiar przesyłanych danych, więc musi być większy niż rozmiar pliku.
  • memory_limit kontroluje, ile pamięci może zużyć operacja zmiany rozmiaru podczas generowania miniatur.
  • max_execution_time również może powodować błędy, ponieważ przetwarzanie dużego obrazu może przekroczyć limit czasu przed zakończeniem operacji.

Trzecia wartość powoduje najbardziej dezorientujące błędy. Plik, który zostanie pomyślnie przesłany, może nadal powodować błąd podczas generowania miniatur przez WordPress, co skutkuje uszkodzonym obrazem w bibliotece mediów zamiast błędu przesyłania.

Dlaczego kompresja jest lepsza niż zwiększanie limitu

Zdjęcie o rozmiarze 6 MB na stronie internetowej stanowi problem bez względu na to, czy serwer je akceptuje, czy nie. Zwiększenie limitu usuwa jedynie komunikat o błędzie, pozostawiając problem nadmiernej wagi pliku.

WordPress generuje kilka rozmiarów miniatur z każdego przesłanego pliku, więc ciężki oryginał mnoży się w ciężkie pliki pochodne i zapełnia przestrzeń dyskową w całej bibliotece mediów. Kompresja do kilkuset kilobajtów przed przesłaniem naprawia błąd, zmniejsza generowane miniatury, skraca czas tworzenia kopii zapasowych i nie wymaga żadnego dostępu do serwera.

Jak zmieścić się w limicie

Aby pomyślnie przesłać plik bez modyfikowania ustawień serwera, wykonaj te 5 kroków.

  1. Sprawdź limit wyświetlany pod oknem przesyłania w WordPressie, który pokazuje rzeczywistą wartość dla Twojego hostingu.
  2. Zmień rozmiar obrazu do szerokości, w jakiej będzie wyświetlany, podwojonej dla ekranów o wysokiej gęstości pikseli, ponieważ zdjęcie o szerokości 4000 pikseli w kolumnie o szerokości 800 pikseli marnuje większość danych.
  3. Konwertuj do formatu WebP w przypadku zdjęć i grafik, które będą wyświetlane wyłącznie na stronie.
  4. Skompresuj plik do docelowego rozmiaru od 200 KB do 400 KB, co jest odpowiednie dla prawie każdego obrazu w artykule.
  5. Prześlij plik, a następnie sprawdź, czy obraz wyświetla się poprawnie w pełnej szerokości zarówno na komputerach, jak i na urządzeniach mobilnych.

Działanie w tej kolejności zazwyczaj pozwala uzyskać plik o 90 procent mniejszy niż oryginał z aparatu, bez widocznej różnicy na ekranie. Rozwiązanie błędu przesyłania staje się efektem ubocznym, a nie głównym celem.

Zalecane rozmiary dla treści w WordPress

Dopasuj szerokość obrazu do najszerszego obszaru, jaki kiedykolwiek zajmie w Twoim motywie, a następnie podwój ją dla ekranów o wysokiej gęstości pikseli. Większość obszarów roboczych jest znacznie węższa, niż sądzą właściciele stron.

Zastosowanie obrazuSzerokość wyświetlaniaSzerokość przesyłaniaRozmiar docelowy
Obrazek w artykule700 px1400 px150 KB do 250 KB
Obraz wyróżniający na pełną szerokość1200 px2400 px300 KB do 500 KB
Baner główny (Hero)1920 px1920 px300 KB do 400 KB
Miniatura lub karta400 px800 px50 KB to 100 KB
Zdjęcie autora lub profilowe150 px300 pxPoniżej 30 KB

Kiedy zwiększenie limitu jest właściwym rozwiązaniem

Zwiększ limit, gdy przesyłasz naprawdę duże pliki, które muszą zachować swój rozmiar, takie jak zdjęcia w rozdzielczości do druku, wideo lub paczki z motywami. Takie przypadki się zdarzają, ale nie są one codziennością.

Fotograf udostępniający galerie w wysokiej rozdzielczości, sklep importujący dużą wtyczkę lub strona udostępniająca dokumenty PDF do pobrania – wszyscy oni potrzebują większego limitu. Bloger, którego zdjęcie z wakacji będzie wyświetlane w szerokości 700 pikseli, tego nie potrzebuje. Przed zmianą ustawień serwera zapytaj, do czego ma służyć dany plik, ponieważ odpowiedź zazwyczaj wskazuje na kompresję.

Jak zwiększyć limit, jeśli musisz

Najpierw zapytaj swojego hostingu, ponieważ większość dostawców usług zarządzanych zmienia tę wartość na życzenie w kilka minut. Zgłoszenie do pomocy technicznej rozwiązuje ten problem szybciej niż pliki konfiguracyjne na każdym planie hostingowym, który ogranicza dostęp do plików.

  • Zarządzany hosting WordPress zazwyczaj udostępnia to ustawienie w panelu kontrolnym lub dostosowuje je na życzenie.
  • Hosting z cPanel często zawiera Edytor MultiPHP INI, w którym można bezpośrednio ustawić te 3 wartości.
  • Wirtualne serwery prywatne (VPS) pozwalają na edycję php.ini, po czym należy zrestartować usługę PHP.
  • Edycja pliku .htaccess działa na niektórych konfiguracjach Apache, a na innych powoduje błąd serwera, dlatego zawsze zachowaj kopię zapasową.
  • Wtyczki, które obiecują zwiększyć limit nie mogą przekroczyć tego, na co pozwala serwer, bez względu na to, co znajduje się w ich opisie.

Błąd HTTP, który nie dotyczy rozmiaru

Ogólny błąd HTTP podczas przesyłania zazwyczaj oznacza, że zabrakło pamięci lub czasu wykonywania podczas generowania miniatur przez WordPress, a nie że plik został odrzucony z powodu rozmiaru. To rozróżnienie jest istotne, ponieważ kompresja obrazu rozwiązuje obie te przyczyny.

Duże wymiary, a nie duży rozmiar pliku, generują zużycie pamięci, ponieważ serwer musi utrzymać każdy piksel w pamięci podczas zmiany rozmiaru. Obraz o wymiarach 6000 na 4000 pikseli wymaga znacznie więcej pamięci, niż sugeruje jego rozmiar pliku. Zmniejszenie wymiarów przed przesłaniem eliminuje ten błąd, nawet jeśli plik mieścił się już poniżej limitu rozmiaru.

Rozmiary miniatur tworzone przez WordPress

WordPress generuje co najmniej 4 dodatkowe kopie każdego przesłanego pliku, a motywy i wtyczki często dodają kilka kolejnych. Jedno zdjęcie może zamienić się w 8 lub 10 plików na dysku, o czym właściciel strony może nawet nie wiedzieć.

Domyślne ustawienia to miniatura o wymiarach 150 pikseli kwadratowych, średni rozmiar przy 300 pikselach, średnio-duży przy 768 pikselach i duży przy 1024 pikselach, obok skalowanej wersji, którą WordPress tworzy dla bardzo dużych plików. Kreatory stron i wtyczki do galerii rejestrują dodatkowo własne rozmiary. Przesłanie mniejszego oryginału oznacza, że każdy wygenerowany plik pochodny również jest mniejszy, dlatego kompresja przed przesłaniem przynosi korzyści w całej bibliotece.

Obsługa WebP w WordPress

WordPress akceptuje przesyłanie plików WebP od wersji 5.8, a każda współczesna przeglądarka wyświetla ten format. Przesyłanie plików WebP bezpośrednio pozwala uniknąć instalowania wtyczek do konwersji, które wiele stron wdraża w tym samym celu.

Należy jednak pamiętać o dwóch kwestiach. Niektóre starsze motywy i kreatory stron zakładają użycie formatów JPG lub PNG i mogą nie generować poprawnie miniatur WebP, dlatego przed konwersją całej biblioteki warto sprawdzić to na testowym pliku. Obrazy przeznaczone do pobrania przez odwiedzających, takie jak materiały prasowe czy przewodniki do druku, powinny pozostać w formacie JPG, ponieważ WebP wciąż bywa kłopotliwy poza przeglądarkami.

Sprawdzanie wagi obrazu na działającej stronie

Otwórz narzędzia deweloperskie klawiszem F12, przejdź do zakładki Sieć (Network), przefiltruj wyniki według obrazów i odśwież stronę. Panel wyświetli listę wszystkich obrazów wraz z ich rzeczywistym rozmiarem transferu, posortowaną od największego.

Ten widok pozwala precyzyjnie zdiagnozować sytuację bez zgadywania. Szukaj pojedynczych obrazów o rozmiarze powyżej 500 KB oraz stron, na których łączny rozmiar obrazów przekracza 2 MB. Największy plik to prawie zawsze ten, który warto naprawić w pierwszej kolejności – zazwyczaj jest to obraz nagłówka lub pierwsze zdjęcie w artykule. Naprawienie 2 lub 3 obrazów często eliminuje większość nadmiernej wagi strony.

Naprawa biblioteki mediów, która jest już przeciążona

Skompresuj istniejącą bibliotekę, a nie tylko nowo przesyłane pliki, ponieważ na działającej już stronie to stare wpisy generują większość wagi. Blog działający od 5 lat może zawierać tysiące nieskompresowanych obrazów.

Pobierz folder z przesłanymi plikami (uploads), przetwórz go zbiorczo i zastąp pliki, zachowując te same nazwy, aby istniejące wpisy nadal działały poprawnie. Ponowne wygenerowanie miniatur po tej operacji odbuduje mniejsze rozmiary pochodne z mniejszych oryginałów. Przed zastąpieniem czegokolwiek wykonaj kopię zapasową, ponieważ jest to jedno z niewielu zadań związanych z obrazami, które nadpisuje pliki na serwerze.

Przetwarzanie całego folderu uploads

Przeciągnij folder jako archiwum ZIP, a każdy obsługiwany obraz wewnątrz zostanie wyodrębniony, przeskalowany i skompresowany w jednym przebiegu. W jednej partii można przetworzyć do 500 plików, co pozwala obsłużyć większość małych i średnich stron w kilku rundach.

Wszystko odbywa się w Twojej przeglądarce przy użyciu Twojego procesora, dzięki czemu strony klientów, nieopublikowane szkice i prywatne galerie nigdy nie trafiają na zewnętrzny serwer. Ma to kluczowe znaczenie dla agencji pracujących na podstawie umów, gdzie przesłanie biblioteki mediów klienta do nieznanej usługi kompresji stanowiłoby naruszenie warunków umowy, nawet jeśli nic złego by się nie stało.

Powrót do bloga