Zdědili jste WordPress, který běží pět let bez zásahu? Galerie pluginů z 2019, PHP 7.2, výchozí admin user a backup jednou za rok? To není výjimka — je to typický scénář, se kterým přicházejí firmy, když jim někdo kdysi „postavil web". Tady je checklist kroků, jak takovou instalaci dostanete na standard 2026 bez přepsání od nuly.

První krok: úplný audit

Před jakýmkoli zásahem děláme inventuru. Jaké pluginy jsou aktivní? Jaká je verze WordPressu? Jaké PHP běží na serveru? Existují zálohy? Je k dispozici staging? Bez auditu nemáte podklady k rozhodnutí, co je třeba udělat jako první.

Audit typicky odhalí 3–5 kritických nálezů, 10–15 vážných a desítky kosmetických problémů.

PHP a WordPress core update

Nejlevnější a nejefektivnější krok. PHP 7.4 a starší verze nedostávají bezpečnostní aktualizace. Jádro WordPressu má bezpečnostní záplaty v každé menší verzi. Aktualizace na aktuální PHP 8.2+ a WordPress 6.x řeší velkou část známých zranitelností okamžitě.

Pozor — některé staré pluginy nefungují s novějším PHP. Aktualizaci vždy testujte na staging prostředí, ne přímo na produkci.

Plugin a theme audit — co skutečně potřebujete

Běžná instalace má 30+ pluginů, z nichž se reálně používá 10. Nepoužívané pluginy jsou útočná plocha — odstraňte je. U zbývajících kontrolujeme:

  • Poslední aktualizace — neaktualizované 2+ roky jsou varovný signál
  • Známé CVE — WPScan nebo databáze zranitelností
  • Komerční plugin s aktivní licencí? Pokud ne, přejděte na alternativu
  • Vlastní pluginy — jsou vůbec potřeba? Často nahraditelné jednoduchým kódem ve functions.php

wp-config.php — security keys, debug, editace souborů

Tohle jsou jednoduché, ale důležité úpravy:

// nové security keys (https://api.wordpress.org/secret-key/1.1/salt/)
define('AUTH_KEY',         '...');

// vypnout debug v produkci
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);

// zákaz editace přes admin (nejčastější cesta eskalace práv)
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);

// force HTTPS
define('FORCE_SSL_ADMIN', true);

Práva souborů a vlastnictví

Standardní práva pro WordPress: adresáře 755, soubory 644, wp-config.php 600. Soubory by měly patřit deploy uživateli, ne webserver uživateli — webserver má jen právo číst (kromě wp-content/uploads/).

Bezpečnostní hlavičky — CSP, HSTS, X-Frame-Options

Konfigurace v .htaccess:

Header always set Strict-Transport-Security "max-age=31536000"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"

CSP je pro WordPress složitější (nemá rád inline JS), ale i základní verze je lepší než žádná.

Ochrana proti brute force a 2FA

WordPress login (/wp-login.php) je nejčastější cíl útoků. Minimálně doporučujeme:

  • Limit Login Attempts Reloaded — blokuje po 5 špatných pokusech
  • WP 2FA — TOTP přes Google Authenticator pro admin účty
  • Přesun přihlašovací URL — z /wp-admin na vlastní cestu (přes WPS Hide Login)
  • Přísná hesla — minimálně 16 znaků, nikdy slovníková

Strategie záloh, která opravdu funguje

„Mám hosting, ten zálohuje" často znamená nic. Skutečná strategie záloh má tři úrovně:

  1. Denní automatické zálohy databáze + uploads na externí úložiště (S3, Backblaze)
  2. Týdenní kompletní kopie včetně souborů
  3. Měsíční archivní snapshoty držené 12 měsíců

A — klíčové — jednou za kvartál otestovat obnovu. Záloha, kterou nikdo nikdy nepoužil, je skoro určitě nefunkční.

Webový aplikační firewall

Cloudflare (jejich bezplatný plán už dost pomůže) nebo Wordfence Premium chytí 90 % běžných útoků dřív, než se dostanou k WordPressu. Pro kritické weby doporučujeme komerční Sucuri nebo Cloudflare Pro.

Pravidelný monitoring

Bez monitoringu se o útoku nedozvíte. Minimum:

  • UptimeRobot — upozornění při výpadku
  • Wordfence scan — týdenní kontrola integrity
  • Pravidelná kontrola Search Console — Google upozorní na napadený web

Závěr

WordPress hardening není raketová věda, ale vyžaduje systematický přístup. 5 let neudržovaná instalace se za 2–3 dny práce umí dostat na úroveň, která zvládne útoky i bez přepsání webu. Pokud máte starou WordPress instalaci a chcete vědět, na čem je, nabízíme audit.