Denva / Články / Web nefunguje po aktualizaci WordPress: co dělat krok za krokem
WordPress

Web nefunguje po aktualizaci WordPress: co dělat krok za krokem

· 10 min čtení
Web nefunguje po aktualizaci WordPress: co dělat krok za krokem

WordPress po aktualizaci nefunguje? Většina výpadků má jednu ze čtyř příčin: zaseknutý maintenance mode, plugin-konflikt, nekompatibilní téma nebo nedostatek PHP paměti. První krok je vždy stejný - zkontrolujte e-mail administrátora webu. Od verze WordPress 5.2 systém automaticky detekuje fatální PHP chyby a ihned odesílá e-mail s recovery odkazem. Ve většině případů se na web dostanete zpět bez přístupu přes FTP nebo bez zásahu do kódu, pokud postup dodržíte ve správném pořadí.

Proč web po aktualizaci WordPress přestane fungovat?

Nejčastější příčina je nekompatibilita pluginu nebo tématu s novou verzí WordPressu nebo PHP. Každá aktualizace mění části jádra - a plugin napsaný pro starší API nemusí s novým bez chyby fungovat. V praxi při správě webů narážíme opakovaně na stejné scénáře:

  • Plugin-konflikt - jeden z nainstalovaných pluginů není kompatibilní s novou verzí WP nebo s jiným pluginem po aktualizaci.
  • Nekompatibilní téma - téma používá zastaralé funkce, které nová verze WP odstranila nebo změnila.
  • Nedostatek PHP paměti - aktualizace navýšila paměťové nároky a server narazí na limit.
  • Přerušená aktualizace - aktualizace jádra se nedokončila (výpadek internetu, timeout), web zůstal v maintenance mode.
  • Aktualizace PHP na serveru - hosting změnil verzi PHP souběžně, některé pluginy s novou verzí nefungují.

Dobrá zpráva: každý z těchto problémů má osvědčený postup řešení. Podívejte se na tabulku příznaků, abyste věděli, kde začít.

Příznak na webuNejpravděpodobnější příčinaPrvní krok
„Briefly unavailable for scheduled maintenance" - stránka se nezobrazilaPřerušená aktualizace, zaseknutý .maintenance souborVymazat .maintenance soubor z kořene webu
„There has been a critical error on this website"Fatální PHP chyba - plugin nebo témaZkontrolovat e-mail admina, použít recovery odkaz
Bílá prázdná stránka (WSOD)PHP chyba bez recovery e-mailu, nebo PHP memory limitZapnout WP_DEBUG v wp-config.php
wp-admin funguje, front-end neProblém s tématem nebo page-builder pluginemPřepnout na výchozí téma (Twenty Twenty-Five)
Web funguje, wp-admin neBezpečnostní plugin, nebo 403 z firewalluPřejmenovat složku plugins/ přes FTP/správce souborů

První krok: recovery mode e-mail od WordPress

Od WordPressu 5.2 platí: pokud nastane fatální PHP chyba, systém ihned pošle e-mail na adresu administrátora s odkazem na recovery mode. Tento mechanismus je zabudován přímo do jádra - nevyžaduje žádný plugin ani speciální nastavení.

E-mail má předmět podobný: „Your Site is Experiencing a Technical Issue." Obsahuje:

  • Popis chyby a soubor, kde nastala (např. konkrétní plugin).
  • Odkaz na recovery mode - speciální URL, platný zpravidla jeden den.

Po kliknutí na odkaz se dostanete do wp-admin v recovery mode. WordPress v tomto mode zablokuje problematický plugin nebo téma jen pro vás, ostatní návštěvníci stránku stále vidí (případně s chybou, ale bez toho, abyste jim ublížili dalšími zásahy). Deaktivujte plugin, který e-mail uvádí jako zdroj chyby - web se obvykle ihned obnoví. Celý mechanismus je popsán v oficiální dokumentaci WordPress recovery mode.

Pokud e-mail nepřišel nebo jste ho nenašli, podívejte se do spamu. Pokud ani tam není, e-mailová adresa na stránce Nastavení → Obecné nemusí být správná - a to je signál, že je třeba zkontrolovat i nastavení e-mailů na webu. Více o komplexní správě WordPress webu najdete v komplexním průvodci správou WordPress webu.

E-mail od WordPress s recovery odkazem a recovery mode mechanismus od verze 5.2
Recovery mode e-mail obsahuje přímý odkaz na vstup do wp-admin bez aktivace problematického pluginu.

Web se zasekl v maintenance mode - jak to opravit za dvě minuty

Příznak je jasný: stránka zobrazuje hlášení „Briefly unavailable for scheduled maintenance. Check back in a minute." Pokud toto hlášení trvá déle než několik minut, aktualizace se přerušila a web zůstal zaseknutý.

Během každé aktualizace jádra, pluginu nebo tématu WordPress dočasně vytvoří soubor .maintenance v kořenovém adresáři webu. Po úspěšném dokončení aktualizace ho automaticky vymaže. Pokud se aktualizace přerušila - například výpadkem spojení, timeoutem na serveru, nebo souběžnou aktualizací více pluginů - soubor zůstane a web se nezotaví sám.

Postup: vymazání .maintenance souboru

  1. Přihlaste se do Správce souborů (File Manager) v cPanel vašeho hostingu, nebo se připojte přes FTP.
  2. Přejděte do kořenového adresáře WordPress (obvykle public_html/ nebo složka s názvem domény).
  3. Zobrazte skryté soubory (soubory začínající tečkou jsou výchozně skryté - v cPanel zvolte „Show hidden files").
  4. Najděte soubor .maintenance a vymažte ho.
  5. Načtěte web v prohlížeči - měl by fungovat okamžitě.

Pokud soubor vymažete, ale web dále zobrazuje chybu, aktualizace se skutečně nezdařila a příčina je jinde. Pokračujte následujícími kroky - problém může být v konfliktu pluginu.

„Critical error" nebo bílá obrazovka: jak zapnout debug mód

Pokud web zobrazuje „There has been a critical error" nebo prázdnou bílou stránku a recovery e-mail nepřišel, je třeba zjistit přesnou PHP chybu. WordPress má zabudovaný debug mód, který se aktivuje přidáním konstant do souboru wp-config.php.

Otevřete wp-config.php ve správci souborů nebo přes FTP a těsně před řádek /* That's all, stop editing! */ vložte:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Seznam všech dostupných debug konstant najdete v dokumentaci WordPress ladění.

Nastavení WP_DEBUG_DISPLAY false zajistí, že chyby se nezobrazují přímo na stránce pro návštěvníky - zapisují se jen do logovacího souboru wp-content/debug.log. Otevřete tento soubor a hledejte první řádek začínající Fatal error nebo PHP Fatal error. Ten řádek vám řekne přesně, který plugin nebo funkce způsobila problém.

Po diagnostice nezapomeňte debug mód vypnout - nastavte WP_DEBUG zpět na false nebo řádky vymažte. Ladění na produkci by mělo trvat jen nezbytnou dobu.

Speciální případ: PHP memory limit

Pokud debug.log obsahuje hlášení Allowed memory size of ... bytes exhausted, příčina není plugin-konflikt ale nedostatek PHP paměti. Řešení je navýšit limit přímo v wp-config.php vložením řádku define( 'WP_MEMORY_LIMIT', '256M' ); před závěrečný komentář. Pokud hostingový plán neumožňuje navýšit PHP paměť na alespoň 256 MB, problém se bude vracet po každé větší aktualizaci - to je signál, že web narostl a plán je poddimenzovaný.

Jak najít problematický plugin nebo téma: krok za krokem

Když debug.log ukáže jméno pluginu nebo víte, že příčina je v pluginu, ale nevíte ve kterém, postupujte systematicky. Cílem je izolovat viníka bez toho, abyste zbytečně zasahovali do databáze nebo nastavení.

Postup izolace problematického WordPress pluginu deaktivací a aktivací jednoho po druhém
Systematická deaktivace pluginů odhalí viníka bez rizika ztráty dat.

Když máte přístup do wp-admin

  1. Přejděte na Pluginy a deaktivujte všechny pluginy najednou (zaškrtněte všechny, Hromadná akce → Deaktivovat).
  2. Zkontrolujte, zda web funguje. Pokud ano, plugin-konflikt je potvrzen.
  3. Aktivujte pluginy jeden po jednom a po každé aktivaci zkontrolujte web.
  4. Když se chyba vrátí, právě aktivovaný plugin je viníkem.
  5. Nechte ho deaktivovaný, kontaktujte autora pluginu nebo hledejte alternativu.

Když nemáte přístup do wp-admin (jen FTP nebo správce souborů)

  1. Přes FTP nebo správce souborů přejděte do wp-content/.
  2. Přejmenujte složku plugins/ na plugins-off/. WordPress všechny pluginy automaticky deaktivuje.
  3. Zkontrolujte web. Pokud funguje, příčina je v některém pluginu.
  4. Přejmenujte složku zpět na plugins/.
  5. Nyní ve složce plugins/ přejmenujte jednotlivé podsložky pluginů (každý plugin má vlastní podsložku), dokud nenajdete viníka.

Pokud deaktivace všech pluginů nepomůže, problém může být v tématu. Přejmenujte složku aktivního tématu (např. themes/nazov-temy/ na themes/nazov-temy-off/) - WordPress automaticky aktivuje výchozí téma a web by měl fungovat. Pro větší přehled o bezpečném postupu aktualizací - včetně toho, jak používat staging prostředí - doporučujeme článek o aktualizacích WordPress bez rizika rozbití webu.

V praxi při spravovaných webech vidíme, že nejčastější viníci jsou bezpečnostní a SEO pluginy - mají tendenci reagovat na změny v jádru ostřeji než běžné funkční pluginy. Pokud nevíte, co jste naposledy aktualizovali, podívejte se v části Pluginy na sloupec „Poslední aktualizace" - pluginy aktualizované ve stejný den jsou prvními kandidáty na kontrolu.

Kdy sáhnout po záloze a jak postupovat

Záloha je poslední záchrana - a zároveň nejrychlejší způsob, pokud víte, že záloha existuje a je aktuální. Pokud je web komplexní s množstvím pluginů, vlastních úprav nebo WooCommerce objednávek a diagnostika trvá, někdy je rychlejší obnovit zálohu před aktualizací než hledat viníka.

V praxi to znamená mít zálohu ne starší než 24 hodin před každou velkou aktualizací. Podrobně jsme zálohovací strategii - včetně pravidla 3-2-1 a testování obnovy - popsali v článku o zálohovacích WordPress strategiích. Pokud záloha neexistuje a web nefunguje, můžete se dostat do situace, kdy bude potřebná ruční oprava databáze nebo kódu - což je práce pro odborníka.

Prevence: proč se to stává a jak tomu předcházet

Výpadek po aktualizaci není smůla - je to symptom toho, že web nemá nastavený bezpečný update-proces. V praxi při spravovaných webech vidíme, že weby bez testovacího (staging) prostředí mají výrazně vyšší výskyt problémů po aktualizacích než weby se správně nastaveným procesem.

Tři opatření, která problémy po aktualizacích téměř eliminují:

  1. Záloha před každou aktualizací. Databáze i soubory. Vždy před, ne po.
  2. Aktualizujte postupně, ne vše najednou. Jádro zvlášť, pluginy jeden po jednom - tak víte přesně, co způsobilo problém, pokud nastane.
  3. Staging prostředí pro důležitější weby. Aktualizaci nejdříve otestujete na kopii webu, pak přenesete na produkci. Pro weby s e-shopem nebo vlastními úpravami je to standard. Více o bezpečnostním nastavení WordPress webu najdete v 10-bodovém checklistu bezpečnosti WordPress.

Závěr: když si s opravou nevíte rady

Většina výpadků po aktualizaci WordPress se dá vyřešit vlastními silami - recovery e-mail, .maintenance soubor, plugin-deaktivace. Pokud se po projití všech kroků web neobnoví, problém může být hlubší: nekompatibilní vlastní kód, poškozená databáze nebo konflikt na úrovni serveru. V takovém případě má smysl svěřit opravu odborníkovi.

Pokud chcete mít jistotu, že aktualizace webu probíhají bez výpadků - i do budoucna - v rámci měsíční podpory a péče o web děláme zálohy před každou aktualizací, testujeme na stagingu a opravujeme případné konflikty dříve, než je uvidí návštěvníci. Nezávazná konzultace - rádi řekneme, zda váš web potřebuje takovou péči.

FAQ

Časté otázky.

Proč WordPress zobrazuje hlášení „There has been a critical error on this website“?

Toto hlášení WordPress zobrazí, když nastane fatální PHP chyba - nejčastěji způsobená nekompatibilním pluginem nebo tématem. Od verze 5.2 WordPress automaticky odesílá e-mail administrátorovi s recovery odkazem, přes který se dostanete do wp-admin a problematický plugin deaktivujete.

Jak se dostanu do wp-admin, když web po aktualizaci nefunguje?

Nejrychlejší cesta je recovery odkaz z e-mailu od WordPress. Pokud e-mail nepřišel, přihlaste se přes hosting do správce souborů a přejmenujte složku wp-content/plugins/ na plugins-off/ - WordPress deaktivuje všechny pluginy a wp-admin by měl být dostupný.

Jak dlouho trvá, než web opustí maintenance mode po aktualizaci?

Pokud se aktualizace podařila, trvá to několik sekund. Pokud web zůstane v maintenance mode déle, aktualizace se přerušila a .maintenance soubor v kořenovém adresáři se nevymazal automaticky - musíte ho vymazat ručně přes FTP nebo správce souborů.

Vyplatí se aktualizovat všechny pluginy najednou?

Ne. Když aktualizujete pluginy jeden po jednom a po každé aktualizaci otestujete web, při problému okamžitě víte, který plugin ho způsobil. Hromadná aktualizace je rychlejší, ale při výpadku musíte hledat viníka mezi všemi najednou aktualizovanými pluginy.

Co dělat, když záloha neexistuje a web nefunguje?

Postupujte diagnosticky: zapněte WP_DEBUG v wp-config.php, identifikujte chybový soubor v debug.log, deaktivujte problematický plugin přes FTP. Pokud se web neobnoví ani po deaktivaci všech pluginů a přepnutí tématu, příčina může být v poškozené databázi nebo vlastním kódu - v takovém případě doporučujeme odborníka.

Sdílet
Související služby

Potřebujete pomoct s webem nebo e-shopem?

Další články

Mohlo by vás zajímat.

Postavme něco společně

Nápad máte vy. Zbytek nechte na nás.

Řekněte nám, co potřebujete. Ozveme se do jednoho pracovního dne s upřímným pohledem, zda jsme ti praví, jaký vidíme rozsah a termín, a pošleme cenovou nabídku na míru.

Povinné je jen jméno, e-mail a zpráva. Pole s červenou tečkou jsou povinná.

S čím vám můžeme pomoci?
Připojte podklady (volitelné)
Nebo nám napište na hello@denva.studio · +421 902 074 830