Zdjęcie jest, ale nie da się go pokazać
Plik leży na dysku, a baza na niego wskazuje. Ma zero bajtów, jest ucięty albo w formacie, którego przeglądarka nie wyświetli — a dziura wygląda jak brak pliku.
Objaw
Biblioteka mediów pokazuje załącznik. Plik istnieje pod ścieżką, której WordPress się spodziewa. Każde sprawdzenie spójności, które pyta tylko „czy plik tam jest?”, przechodzi. A karta produktu i tak pokazuje zepsuty obrazek albo pustą ramkę wielkości zdjęcia.
Powody są trzy i z panelu wyglądają identycznie: plik ma zero bajtów albo jest ucięty, bo wysyłka
się przerwała; jest w formacie, którego przeglądarka nie zdekoduje — TIFF, JPEG w CMYK-u, HEIC prosto
z telefonu; albo rozmiary pośrednie nigdy nie powstały, więc motyw prosi o product-thumbnail
i nie dostaje nic.
Ile to kosztuje
Dokładnie tyle, ile brak zdjęcia, z jednym dodatkiem: przeżywa te sprawdzenia, które normalnie byś zrobił.
- Karta produktu ma dziurę w miejscu informacji, która przesądza o zakupie. Klient, który nie widzi przedmiotu, nie kupuje przedmiotu.
- Zwykle przychodzi paczkami. Przerwana wysyłka masowa, migracja, która skopiowała pliki, ale nie rozmiary pośrednie, albo obieg ze zdjęciami z telefonu, który od miesiąca produkuje HEIC — każde z tego dotyka od razu dziesiątek produktów.
- Z panelu nikt tego nie widzi. Miniatura w bibliotece jest często generowana z innego rozmiaru albo z pamięci podręcznej, więc siatka wygląda dobrze, a sklep nie.
Jak to sprawdzić samodzielnie
Pliki zerowe i nieczytelne, wprost z powłoki:
find wp-content/uploads -type f \( -name '*.jpg' -o -name '*.png' -o -name '*.webp' \) -size -1k
Wszystko, co się wypisze, jest za małe, żeby być obrazkiem. Dla plików dostatecznie dużych, ale
mimo to zepsutych, identify z ImageMagicka przechodzi po każdym i głośno wywala się na złych:
find wp-content/uploads -name '*.jpg' -exec identify -quiet {} + 2>&1 | grep -i error
Brakujące rozmiary pośrednie to z kolei pytanie do bazy — załączniki, których
_wp_attachment_metadata nie zawiera tablicy sizes, nigdy nie przeszły przez przetwarzanie mediów.
Jak naprawić
- Wgraj oryginały ponownie przy plikach zerowych i uciętych. Nie ma czego naprawiać — tych danych po prostu nie ma.
- Przekonwertuj nieobsługiwane formaty do JPEG albo WebP przed wysyłką. HEIC i TIFF w CMYK-u trafiają do sklepów najczęściej i żaden z nich nie jest formatem przeglądarki.
- Przegeneruj rozmiary pośrednie tam, gdzie oryginał jest cały:
wp media regenerate --only-missing --yes
- Napraw źródło paczki. Jeśli zrobiła to migracja albo obieg ze zdjęciami z telefonu, następna paczka będzie wyglądać tak samo.
Kiedy to fałszywy alarm
- Zdjęcia serwowane z CDN-u albo przez wtyczkę odciążającą, gdzie lokalny plik jest świadomie zerową zaślepką, a prawdziwy leży w magazynie obiektowym.
- Formaty, które Twoja konfiguracja konwertuje w locie — część hostingów i wtyczek transkoduje HEIC albo serwuje AVIF z zapasem, więc przeglądarka nigdy nie widzi oryginału.
- Załączniki, które nie są zdjęciami i nigdy nie miały być wyświetlane, na przykład instrukcja PDF podpięta do produktu.
Jak znajduje to Merchlint
Merchlint bierze każde zdjęcie podpięte do opublikowanego produktu, sprawdza, czy plik istnieje,
odczytuje jego rozmiar na dysku i czyta tyle nagłówka, żeby potwierdzić, że format zgadza się
z rozszerzeniem i że plik nie jest ucięty. Potem sprawdza w _wp_attachment_metadata te rozmiary
pośrednie, o które faktycznie prosi aktywny motyw.
Znane wtyczki odciążające są wykrywane najpierw, a ich zaślepki wykluczane — inaczej ta kontrola zgłosiłaby cały katalog stojący na CDN-ie jako zepsuty.
Pewność: F — fakt z systemu plików i z bazy. Bajty dają się odczytać jako obrazek albo nie dają.
Ta kontrola jest w dodatku Pro.
Coś się nie zgadza z tym, co widzisz w sklepie? Napisz — czytamy każdą wiadomość. contact@merchlint.com
Masz wynik z wtyczki i nie wiesz, od czego zacząć? Do 15 listopada 2026 przeglądamy eksporty z dziesięciu sklepów — darmowy audyt katalogu.