Błąd „Nie powiodła się aktualizacja. Odpowiedź nie jest prawidłową odpowiedzią JSON” oznacza, że WordPress nie dostaje poprawnej odpowiedzi z REST API, którego używa edytor blokowy (Gutenberg) do zapisu i aktualizacji treści. Aby go naprawić, sprawdź krok po kroku adresy URL, kondycję REST API, wtyczki, motyw, zaporę (CDN/firewall), plik .htaccess, cache oraz logi błędów PHP.
Na czym polega błąd „odpowiedź nie jest prawidłową odpowiedzią JSON” w WordPress?
- Na czym polega błąd „odpowiedź nie jest prawidłową odpowiedzią JSON” w WordPress?
- Zanim zaczniesz – kopia zapasowa i podstawowa diagnostyka
- Sprawdzenie adresów URL witryny (Adres WordPressa i Adres witryny)
- Kondycja witryny i REST API – oficjalne narzędzie WordPressa
- Wyłączenie wszystkich wtyczek – test konfliktu
- Motyw (szablon) – test z motywem domyślnym
- Zapora, CDN i usługi bezpieczeństwa (np. Cloudflare)
- Cache przeglądarki i cache po stronie serwera
- Stałe linki i plik .htaccess
- Plik .maintenance i niedokończona aktualizacja
- Włączenie trybu debugowania i analiza logów błędów
- Zwiększenie limitu pamięci PHP i timeoutu
- Tymczasowe obejście – edytor klasyczny
- Ręczna aktualizacja WordPressa (gdy problem wynika z nieudanej aktualizacji)
- Co zrobić, gdy strona całkowicie nie działa po aktualizacji?
- Dobre praktyki na przyszłość – jak unikać błędu JSON przy aktualizacjach
- Podsumowanie praktycznych kroków (checklista)
W edytorze blokowym WordPressa podczas aktualizacji lub publikacji wpisu pojawia się komunikat:
Nie powiodła się aktualizacja. Odpowiedź nie jest prawidłową odpowiedzią JSON.
Technicznie oznacza to, że edytor próbuje wysłać żądanie do REST API WordPressa, ale odpowiedź z serwera:
- nie jest poprawnym JSON-em (np. zamiast struktury danych pojawia się HTML lub komunikat błędu),
- jest przerwana,
- nie dociera w ogóle (blokuje ją zapora, wtyczka bezpieczeństwa, błędne przekierowanie itp.).
Najczęstsze źródła problemu:
- nieprawidłowe adresy URL witryny (Adres WordPressa / Adres witryny),
- błędy w pliku .htaccess lub konfiguracji stałych linków,
- konflikt wtyczek lub motywu z REST API,
- zapora (np. firewall, CDN typu Cloudflare) blokująca żądania REST,
- tryb utrzymania (
.maintenance) po nieudanej aktualizacji, - błędy PHP (fatale, ostrzeżenia) wysyłane w odpowiedzi zamiast JSON,
- zbyt mała pamięć PHP lub timeout przy zapisie.
Zanim zaczniesz – kopia zapasowa i podstawowa diagnostyka
Wykonaj kopię zapasową
Przed zmianami zrób pełny backup plików i bazy danych (katalog wp-content, plik wp-config.php oraz kopia bazy przez hosting lub wtyczkę). Dzięki temu w razie pogorszenia sytuacji szybko przywrócisz stronę.
Sprawdź, czy błąd występuje zawsze
Przetestuj następujące scenariusze, aby zawęzić źródło problemu:
- czy problem pojawia się przy każdym wpisie/stronie,
- czy dotyczy tylko określonego typu treści (np. produktów WooCommerce),
- czy błąd występuje zarówno przy „Aktualizuj”, jak i przy „Opublikuj”.
Sprawdzenie adresów URL witryny (Adres WordPressa i Adres witryny)
Nieprawidłowe adresy URL (np. literówki, brak https lub dodatkowy slash) bardzo często psują działanie REST API.
Gdzie sprawdzić adresy?
W panelu WordPress przejdź do Ustawienia → Ogólne i sprawdź pola: Adres WordPressa (URL) oraz Adres witryny (URL).
Oba adresy:
- powinny być identyczne (poza rzadkimi zaawansowanymi konfiguracjami),
- powinny wskazywać właściwą domenę,
- powinny mieć poprawny protokół (
http://lubhttps://).
Co poprawić?
Zwróć uwagę na kluczowe detale:
- brak zbędnych ukośników na końcu adresu,
- zgodność z certyfikatem – jeśli masz SSL, adres musi być https,
- brak literówek, np.
mydomena.plzamiastmydomna.pl.
Po zapisaniu zmian wyloguj się i zaloguj ponownie, a następnie spróbuj zaktualizować wpis jeszcze raz.
Kondycja witryny i REST API – oficjalne narzędzie WordPressa
WordPress ma wbudowane narzędzie Kondycja witryny, które wykrywa problemy z REST API. W panelu przejdź do Narzędzia → Kondycja witryny, aby sprawdzić wskazówki.
Sprawdzenie REST API
Jeśli w sekcji Stan widzisz komunikat w stylu „W REST API wykryto nieoczekiwany wynik” lub „REST API nie odpowiada”, oznacza to zaburzenie komunikacji, której używa edytor blokowy.
W takim przypadku zanotuj treść komunikatu i sprawdź, czy narzędzie wskazuje konkretną wtyczkę, ustawienie lub błąd serwera.
Wyłączenie wszystkich wtyczek – test konfliktu
Konflikt wtyczek to jedna z najczęstszych przyczyn błędu JSON w WordPress.
Wyłączenie wszystkich wtyczek z poziomu panelu
W panelu:
- przejdź do Wtyczki → Zainstalowane wtyczki,
- zaznacz wszystkie wtyczki,
- wybierz z listy rozwijanej Akcja zbiorcza → Dezaktywuj,
- kliknij Zastosuj.
Następnie przejdź do edytora wpisu i spróbuj zaktualizować lub opublikować treść.
Jeżeli błąd zniknie, przyczyną jest jedna z wtyczek.
Ustalenie winnej wtyczki
Aktywuj wtyczki po kolei i po każdej aktywacji testuj edytor:
- włącz pierwszą wtyczkę → przetestuj edytor,
- jeśli wszystko działa, włącz następną,
- kontynuuj, aż błąd pojawi się znowu.
Wtyczka aktywowana tuż przed powrotem błędu jest najprawdopodobniej źródłem problemu. Możesz ją wyłączyć na stałe, spróbować zaktualizować do nowszej wersji lub zastąpić inną wtyczką o podobnej funkcjonalności. Warto też skontaktować się z autorem wtyczki i zgłosić błąd, aby twórcy mogli dostosować ją do wymagań REST API.
Motyw (szablon) – test z motywem domyślnym
Jeśli wyłączenie wtyczek nie pomogło, sprawdź motyw. W panelu przejdź do Wygląd → Motywy i aktywuj motyw domyślny WordPress (np. Twenty Twenty-One lub nowszy), po czym przetestuj aktualizację wpisu.
Jeśli błąd znika, obecnie używany motyw jest niekompatybilny z edytorem blokowym lub generuje błędy w odpowiedzi REST API.
Dalsze kroki:
- aktualizacja motywu,
- kontakt z twórcą motywu,
- rozważenie zmiany motywu na lepiej wspierający edytor blokowy.
Zapora, CDN i usługi bezpieczeństwa (np. Cloudflare)
Usługi bezpieczeństwa, CDN (np. Cloudflare) i firewalle potrafią blokować lub filtrować żądania REST API, co kończy się błędem JSON.
Sprawdź ustawienia firewalla i CDN
Jeśli używasz:
- zewnętrznego firewalla,
- Web Application Firewall (WAF),
- CDN (Cloudflare, inne),
sprawdź, czy żądania typu POST do /wp-json/ nie są blokowane oraz czy nie działają reguły bezpieczeństwa ograniczające nietypowe zapytania.
W praktyce:
- tymczasowo wyłącz firewall/CDN,
- przetestuj aktualizację wpisu,
- jeśli problem znika – odpowiednio dostosuj reguły bezpieczeństwa zamiast pozostawiać usługę wyłączoną.
Cache przeglądarki i cache po stronie serwera
Zdarza się, że błąd JSON jest efektem starej wersji skryptów w przeglądarce lub zbyt agresywnego cache’owania zaplecza przez wtyczki/serwer.
Cache przeglądarki
Spróbuj następujących kroków diagnostycznych:
- otwórz stronę w trybie prywatnym/incognito,
- wyczyść cache przeglądarki,
- przetestuj aktualizację wpisu.
Cache po stronie WordPressa/serwera
Jeśli korzystasz z wtyczek cache lub cache aplikacyjnego na hostingu, wyczyść cache wtyczek oraz cache w panelu hostingu (jeśli dostępny), a następnie ponownie sprawdź edytor wpisu.
Stałe linki i plik .htaccess
Nieprawidłowe reguły w pliku .htaccess lub zła konfiguracja stałych linków potrafią zaburzyć działanie REST API i generować błędy JSON.
Reset stałych linków
W panelu przejdź do Ustawienia → Bezpośrednie odnośniki i bez zmiany ustawień kliknij Zapisz zmiany. WordPress odświeży konfigurację stałych linków i zaktualizuje wpis w .htaccess (jeśli serwer na to pozwala).
Ręczna edycja .htaccess
Jeżeli masz dostęp do plików, połącz się z serwerem przez FTP lub Menedżer plików w panelu hostingu, przejdź do katalogu głównego WordPressa (tam, gdzie znajduje się wp-config.php) i znajdź plik .htaccess.
Możesz:
- zapisać jego kopię na komputerze,
- przywrócić domyślne reguły WordPressa (wygenerowane przy zapisie stałych linków),
- usunąć lub skomentować podejrzane własne reguły, które mogą blokować REST API.
Po zmianach odśwież stronę i przetestuj aktualizację wpisu.
Plik .maintenance i niedokończona aktualizacja
Jeżeli błąd JSON pojawił się w trakcie lub po aktualizacji WordPressa, wtyczki albo motywu, strona mogła pozostać w trybie utrzymania (maintenance).
Usunięcie pliku .maintenance
Aby przywrócić normalne działanie, połącz się z serwerem przez FTP/Menedżer plików, przejdź do katalogu głównego instalacji WordPressa (tam, gdzie wp-config.php), znajdź plik .maintenance, usuń go i odśwież stronę.
Pozostawiony plik .maintenance może powodować częściowe niedziałanie funkcji i – w połączeniu z błędami aktualizacji – prowadzić do problemów z REST API i JSON.
Włączenie trybu debugowania i analiza logów błędów
Gdy poprzednie kroki nie pomagają, włącz tryb debugowania WordPressa, aby zobaczyć dokładne błędy PHP, które mogą psuć odpowiedź JSON.
Włączenie debugowania w wp-config.php
W pliku wp-config.php dodaj (lub zmodyfikuj) następujące linie:
// Włącz tryb debugowania WordPressa
define( 'WP_DEBUG', true );
// Zapisuj błędy do pliku logu
define( 'WP_DEBUG_LOG', true );
// Opcjonalnie: nie pokazuj błędów na ekranie (bezpieczeństwo)
define( 'WP_DEBUG_DISPLAY', false );
Po zapisaniu pliku spróbuj ponownie zaktualizować wpis (aby „wywołać” błąd). WordPress zapisze zdarzenia w pliku /wp-content/debug.log.
Odczyt pliku debug.log
Aby odczytać log:
- połącz się z serwerem FTP,
- przejdź do katalogu
/wp-content/, - pobierz plik
debug.logna komputer.
Otwórz plik w edytorze tekstu i przeanalizuj wpisy pojawiające się w momencie próby aktualizacji. Zwróć uwagę na błędy typu:
Fatal error,Warning,Notice,- odniesienia do konkretnych wtyczek lub motywu.
Na podstawie tych informacji zidentyfikujesz konkretną funkcję lub wtyczkę powodującą problem i przekażesz precyzyjne dane zespołowi supportu hostingu lub autorowi wtyczki.
Zwiększenie limitu pamięci PHP i timeoutu
Niektóre błędy JSON są skutkiem zbyt niskiej pamięci PHP lub zbyt krótkiego czasu wykonywania skryptu.
Podniesienie limitu pamięci PHP
Limit pamięci można ustawić w:
wp-config.php,- pliku
php.ini, - panelu hostingu (jeśli dostawca to udostępnia).
Przykładowa deklaracja w wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
Wyższy limit pomaga przy ciężkich wtyczkach (np. builderach stron) i może zapobiec przerwaniu działania skryptu, które skutkuje błędem JSON.
Zwiększenie timeoutów
W konfiguracji serwera lub w pliku php.ini zwiększ parametr max_execution_time (np. z 30 do 120 sekund) oraz inne limity czasu, jeśli to konieczne. Większy timeout zmniejsza ryzyko przerwania komunikacji REST API podczas zapisu treści.
Tymczasowe obejście – edytor klasyczny
Jeżeli musisz natychmiast opublikować treść, a problem z Gutenbergiem trwa, skorzystaj z Edytora klasycznego jako obejścia.
Instalacja edytora klasycznego
W panelu:
- przejdź do Wtyczki → Dodaj nową,
- wyszukaj wtyczkę Classic Editor,
- zainstaluj i aktywuj.
Po aktywacji nowe i istniejące wpisy będą otwierać się w tradycyjnym edytorze, a proces publikacji nie korzysta z REST API w taki sposób jak Gutenberg, więc błąd JSON często znika. To rozwiązanie traktuj jako tymczasowe – równolegle napraw właściwą przyczynę.
Ręczna aktualizacja WordPressa (gdy problem wynika z nieudanej aktualizacji)
Jeśli błąd pojawił się po nieudanej automatycznej aktualizacji WordPressa, rozważ ręczną aktualizację.
Ogólny schemat ręcznej aktualizacji
Postępuj według sprawdzonej procedury:
- pobierz najnowszą paczkę WordPressa (zip) na komputer,
- rozpakuj ją lokalnie,
- usuń lokalnie katalog
wp-content, aby nie nadpisywać Twoich motywów i wtyczek, - połącz się z serwerem przez FTP,
- wgraj nowe pliki WordPressa nadpisując stare (z wyjątkiem
wp-content), - upewnij się, że plik
.maintenancejest usunięty, - zaloguj się do panelu i przejdź przez ewentualny ekran aktualizacji bazy danych.
Taka procedura naprawia uszkodzone pliki rdzenia WordPressa i często rozwiązuje problemy z REST API po nieudanej aktualizacji.
Co zrobić, gdy strona całkowicie nie działa po aktualizacji?
Zdarza się, że po aktualizacji:
- strona przestaje się ładować,
- pojawia się „błąd krytyczny”,
- panel administratora jest niedostępny.
W takim przypadku:
- wyłącz wtyczki przez zmianę nazwę katalogu
plugins(np. naplugins_old), aby wymusić ich dezaktywację po stronie serwera, - przywróć backup,
- skorzystaj z wtyczek do cofania wersji (np. WP Rollback) dla konkretnych wtyczek,
- w razie potrzeby zwróć się do wsparcia technicznego hostingu lub firmy obsługującej stronę.
Nie ignoruj błędów aktualizacji – z pozoru drobny problem edytora może przerodzić się w poważną awarię.
Dobre praktyki na przyszłość – jak unikać błędu JSON przy aktualizacjach
Bezpieczna procedura aktualizacji
Specjaliści rekomendują:
- testy na kopii – utrzymuj środowisko staging, gdzie sprawdzasz aktualizacje przed wdrożeniem na produkcję;
- aktualizacje w czasie niższego ruchu – aby ewentualne błędy mniej dotknęły użytkowników;
- wykonywanie backupów przed każdą większą aktualizacją (WordPress, motyw, kluczowe wtyczki);
- czytanie logów zmian (changelogów) wtyczek/motywów, zwłaszcza jeśli modyfikują API lub bezpieczeństwo;
- unikanie nadmiernej liczby wtyczek – im więcej rozszerzeń, tym większe ryzyko konfliktów.
Monitoring błędów i kondycji witryny
Regularne korzystanie z:
- Narzędzia → Kondycja witryny,
- logów błędów PHP (
debug.log, logi serwera), - zewnętrznych narzędzi monitorujących dostępność strony,
pozwala szybko wychwycić:
- problemy z REST API,
- konflikty wtyczek,
- spadek wydajności, który później manifestuje się m.in. błędami JSON.
Świadomy dobór motywów i wtyczek
Dla stron nastawionych na ruch z internetu ważne jest:
- korzystanie z popularnych, utrzymywanych motywów i wtyczek,
- unikanie porzuconych projektów (brak aktualizacji od lat),
- sprawdzanie opinii i raportów błędów dotyczących kompatybilności z edytorem blokowym i REST API.
Podsumowanie praktycznych kroków (checklista)
- Sprawdź adresy URL (Adres WordPressa, Adres witryny) w Ustawienia → Ogólne.
- Wejdź w Narzędzia → Kondycja witryny i sprawdź status REST API.
- Wyłącz wszystkie wtyczki, przetestuj edytor, potem włączaj je pojedynczo.
- Zmień motyw na domyślny WordPressa i sprawdź, czy błąd znika.
- Sprawdź konfigurację firewalla/CDN – czy nie blokuje żądań REST API.
- Wyczyść cache przeglądarki i cache po stronie WordPressa/serwera.
- Zapisz ponownie stałe linki (Ustawienia → Bezpośrednie odnośniki) oraz sprawdź plik
.htaccess. - Usuń plik
.maintenance, jeśli pozostał po nieudanej aktualizacji. - Włącz debugowanie (
WP_DEBUG,WP_DEBUG_LOG) i przeanalizujdebug.log. - Zwiększ limit pamięci PHP (
WP_MEMORY_LIMIT) i ewentualne timeouty. - W razie potrzeby skorzystaj tymczasowo z Classic Editor, aby móc publikować treści.
- Jeśli problem zaczął się po uszkodzonej aktualizacji – rozważ ręczną aktualizację lub rollback WordPressa.