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?

Treść

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:// lub https://).

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.pl zamiast mydomna.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.log na 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 .maintenance jest 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. na plugins_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)

  1. Sprawdź adresy URL (Adres WordPressa, Adres witryny) w Ustawienia → Ogólne.
  2. Wejdź w Narzędzia → Kondycja witryny i sprawdź status REST API.
  3. Wyłącz wszystkie wtyczki, przetestuj edytor, potem włączaj je pojedynczo.
  4. Zmień motyw na domyślny WordPressa i sprawdź, czy błąd znika.
  5. Sprawdź konfigurację firewalla/CDN – czy nie blokuje żądań REST API.
  6. Wyczyść cache przeglądarki i cache po stronie WordPressa/serwera.
  7. Zapisz ponownie stałe linki (Ustawienia → Bezpośrednie odnośniki) oraz sprawdź plik .htaccess.
  8. Usuń plik .maintenance, jeśli pozostał po nieudanej aktualizacji.
  9. Włącz debugowanie (WP_DEBUG, WP_DEBUG_LOG) i przeanalizuj debug.log.
  10. Zwiększ limit pamięci PHP (WP_MEMORY_LIMIT) i ewentualne timeouty.
  11. W razie potrzeby skorzystaj tymczasowo z Classic Editor, aby móc publikować treści.
  12. Jeśli problem zaczął się po uszkodzonej aktualizacji – rozważ ręczną aktualizację lub rollback WordPressa.