Přišel mi email od klientky:
Můj web přestal z ničeho nic fungovat, přestože mám zaplacenou doménu i webhosting. Po zadání se nyní zobrazuje úplně jiná, nerelevantní stránka.

Datum poslední změny: 9. 2. 2026
Ve WordPressu to může znamenat několik věcí - problém s hostingem, souborem htaccess nebo jiným přesměrováním, nějaká nekompatibilita pluginů nebo napadený web. U klientky bohužel to poslední.
Ta “jiná stránka” byla od hostingu, kam jí web přesměroval kvůli přetěžování serveru. Po přesměrování zpět mě uvítala prázdná bílá stránka. Do WP se v tu chvíli nedalo dostat.
Jako první jsem změnil hesla k FTP, databázi a stáhnul celý web k sobě.
Na webu jsem přehrál složky wp-admin a wp-includes čistým WP ve verzi 6.6.1, tedy klietky “aktuální” verzí WP. Nne nejaktuálnější, abych se vyhnul nekompatibiltám - v první řadě šlo web vyčistit a rozjet, poté aktualizovat.
Poznámka: přehrání složek wp-admin a wp-includes nemá na data na webu vliv - texty a nastvení jsou v databázi, obrázky a pluginy ve složce wp-content.
Po přehrátí WP se už šlo přihlásit → jednotlivým uživatelům ve WP jsem změnil hesla a administrátroská oprávnění jsem stáhnul na návštěvníky (páč pořád mohli požádat o resetování hesla). Pokud by je klientka neznala, plán byl je smazat. Což se následně stalo.
Vytvořil jsem nový účet pro klientku a její původní admin účet se jménem admin rovnou smazal (po převedení článků na nový účet klientky!).
Připojil jsem se na FTP a začal tam, kde začínám vždycky - ve wp-config.php. A hned v něm čekal na objevení podezřelý řádek:
define('WP_TEMP_DIR',dirname(__FILE__).'/wp-content/uploads');
Proč je to divný? WordPress má vlastní systém pro dočasné soubory. Když někdo předefinovává cestu do uploads, často to znamená, že tam chce něco schovávat.
Prohledal jsem uploads a smazal jeden nalezený php script. PHP skripty nemají v uploads co dělat. Nikdy. Uploads jsou pro obrázky, PDF atp. - ne pro spustitelný kód.
Nad hlavní instalací WordPressu byly nahrané další .htaccess soubory – další důkaz, že útočníci měli přístup k FTP.
Pokračoval jsem pluginy - i tady se zadařilo.
Ve wp-content/plugins/ jsem našel dva pluginy, které tam neměly co dělat:
wp-content/plugins/klqchah/wp-content/plugins/cqdpztr/Obě složky byly vytvořené 12. září 2025 - s největší pravděpodobností den, kdy došlo k infekci.
Ve wp-content/themes/ byla další sklizeň:
lwkybtxbsjzgeecong.php - PHP soubor přímo mezi tématy? To tam opravdu nepatří.Všechno jsem smazal.
Nainstaloval jsem Wordfence a spustil kompletní scan. Našel další infekci:
Web byl dlouho neaktualizovaný. Po vyčištění jsem vše aktualizoval na nejnovější verze.
Po 4 hodinách práce:
Tenhle příběh má jedno velké ponaučení: neaktualizovaný web je otevřená brána pro útočníky. A tenhle příběh není jediný - o jednom podobném už jsem dříve psal, několik podobných webů čistil.
Pokud nechceš řešit podobnou situaci, máš v podstatě dvě možnosti (respektive třetí je případ tohoto článku - otázka není jestli, ale kdy):
Přesně proto nabízím správu webu. Starám se o:
Když se někdo o web stará pravidelně, riziko hacknutí klesá blízko k nule. A když už se něco stane, řeším to - ne až když web "přestal z ničeho nic fungovat".
Slyším námitku: "Hele, když trvalo odvirovat web pět hodin práce... To stejně zaplatila za odvirování mnohem míň, než za několik let správy webu, ne?" Jo a ne. Připočítej do bilance ztrátu zakázek: I kdyby jí nefunkčním webem utekla jediná... Přitom nemusí jít zdaleka o nefunkční web, stačí nefunkční kontaktní formulář. Rázem přicházíš o tisíce.
Zajímá tě správa webu? Napiš mi a domluvíme se na variantě, která bude dávat smysl pro tvůj web a rozpočet.
Měsíční newsletter pro lidi, kteří chtějí, aby jejich WordPress spolehlivě fungoval.
Dozvíš se:
🔌 Tipy na užitečné pluginy a nástroje.
🆕 Novinky z WordPress světa.
💡 Praktické návody a rady.