Jak optimalizovat databázi WordPressu

Databáze WordPressu je srdcem vašeho webu. Každý příspěvek, stránka, komentář, nastavení i záznam pluginu se ukládá do databáze MySQL nebo MariaDB. Časem se databáze zaplní zbytečnými daty, která web zpomalují. V tomto návodu vám ukážeme, jak databázi WordPressu vyčistit a optimalizovat pro maximální výkon.
Proč je optimalizace databáze důležitá?
Pokaždé, když návštěvník otevře stránku, WordPress posílá databázi dotazy, aby zobrazil obsah. Pokud databáze obsahuje tisíce zbytečných řádků, tyto dotazy trvají déle, což přímo ovlivňuje rychlost načítání. Pomalá databáze znamená pomalý web a pomalý web znamená méně návštěvníků a horší pozice v Googlu.
Typický web na WordPressu může po roce provozu nést desetitisíce zbytečných revizí příspěvků, tisíc transientů, stovky spamových komentářů a fragmentované tabulky. To vše zatěžuje databázi bez jakéhokoli užitku.
Revize příspěvků – tichý zabiják výkonu
WordPress automaticky uloží revizi pokaždé, když uložíte příspěvek nebo stránku. Pokud máte 100 příspěvků a každý jste uložili 20×, je to 2 000 řádků v databázi jen pro revize. Většinu těchto revizí už nikdy nebudete potřebovat.
Ruční mazání revizí: Můžete použít SQL dotaz přímo v phpMyAdminu. V cPanelu máte k phpMyAdminu přístup:
DELETE FROM wp_posts WHERE post_type = 'revision';
Doporučujeme však bezpečnější postup pomocí pluginu, protože ruční mazání může způsobit problémy, pokud přesně nevíte, co děláte.
Omezení budoucích revizí: Přidejte následující řádek do souboru wp-config.php:
define('WP_POST_REVISIONS', 3);
Tím se u každého příspěvku zachovají pouze poslední 3 revize. Můžete nastavit 0 a revize zcela vypnout, ale doporučujeme alespoň 2–3 pro případ nechtěných úprav.
Transienty – dočasná data, která zůstávají navždy
Transienty jsou dočasná data, která si WordPress a pluginy ukládají do databáze s datem platnosti. Problém je, že WordPress prošlé transienty nemaže automaticky – zůstávají v databázi a zabírají místo. Některé pluginy vytvářejí tisíce transientů, jejichž platnost nikdy nevyprší.
Transienty se ukládají do tabulky wp_options, jedné z nejdůležitějších a nejčastěji čtených tabulek. Více zbytečných řádků v tabulce wp_options znamená pomalejší načítání každé stránky.
K odstranění prošlých transientů můžete použít příkaz WP-CLI:
wp transient delete --expired
Nebo použijte plugin, který to v pravidelných intervalech provádí automaticky.
Spamové a smazané komentáře
Pokud provozujete blog s povolenými komentáři, spamové komentáře se hromadí neuvěřitelným tempem. Akismet a další antispamové pluginy spam blokují, ale smazané a spamové komentáře zůstávají v databázi ve složkách „Spam“ a „Koš“. WordPress automaticky maže komentáře v koši po 30 dnech, ale spamové komentáře nemaže nikdy, dokud to neuděláte ručně.
Pravidelně vyprazdňujte složky spamu a koše u komentářů. Pokud máte tisíce spamových komentářů, jejich mazání přes administraci WordPressu může být pomalé – použijte plugin nebo SQL dotaz:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Optimalizace tabulek
Když z tabulky MySQL smažete data, místo se neuvolní automaticky. Tabulka zůstane stejně velká, jen s „dírami“ tam, kde dříve byla smazaná data. Tomu se říká fragmentace. Příkaz OPTIMIZE TABLE tabulku defragmentuje a uvolní místo.
V phpMyAdminu vyberte všechny tabulky a z rozbalovací nabídky zvolte „Optimalizovat tabulku“. Nebo použijte SQL:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Doporučujeme to spouštět jednou měsíčně nebo použít plugin, který to zautomatizuje.
WP-Optimize – řešení vše v jednom
WP-Optimize je nejoblíbenější plugin pro optimalizaci databáze s více než 1 milionem aktivních instalací. Umožňuje vám:
Vyčistit databázi: Jedním kliknutím smazat revize, transienty, spamové komentáře, příspěvky v koši, pingbacky a trackbacky. Můžete zvolit, co smazat, a před smazáním si zobrazit náhled, kolik místa se uvolní.
Optimalizovat tabulky: Automaticky spustí OPTIMIZE TABLE na všech tabulkách WordPressu. Zobrazuje úroveň fragmentace každé tabulky.
Naplánovat automatické čištění: Nastavte si denní, týdenní nebo měsíční automatické čištění. Plugin pak bude zbytečná data mazat podle plánu.
Bezplatná verze pokrývá všechny základy. Prémiová verze přidává pokročilé funkce, jako je komprese obrázků a cachování stránek.
Advanced Database Cleaner – pro pokročilé uživatele
Advanced Database Cleaner je skvělý plugin, který jde o krok dál než WP-Optimize. Jeho klíčovou předností je detekce „osiřelých“ tabulek – tabulek, které v databázi zůstanou po odinstalování pluginu. Mnoho pluginů si při instalaci vytvoří vlastní tabulky, ale při odinstalaci je neodstraní.
Plugin zobrazuje seznam všech tabulek v databázi a označuje, které patří jádru WordPressu, které aktivním pluginům a které zůstaly bez vlastníka. Osiřelé tabulky můžete bezpečně smazat a uvolnit tak místo.
Detekuje také „osiřelé“ řádky v tabulce wp_options – nastavení pluginů, které už nejsou nainstalované. To je častou příčinou obrovské tabulky wp_options.
Tabulka wp_options – nejčastější příčina pomalosti
Tabulka wp_options je obzvlášť kritická, protože se načítá při každém požadavku. WordPress při každém načtení stránky nahraje do paměti všechny řádky, kde je pole autoload nastaveno na „yes“. Pokud máte stovky kilobajtů automaticky načítaných nastavení, přímo to zpomaluje každou stránku.
Velikost automaticky načítaných dat zkontrolujete SQL dotazem:
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';
Pokud je výsledek přes 1 MB, máte problém. Projděte největší automaticky načítaná nastavení a u těch, která nemusejí být načítána na každé stránce, autoload vypněte.
Záloha před optimalizací
Před jakoukoli optimalizací databáze si vytvořte zálohu. Je to nejdůležitější krok, který mnoho lidí přeskakuje. Pokud se během optimalizace něco pokazí, záloha vám umožní obnovit web do předchozího stavu během několika minut.
Použijte plugin jako UpdraftPlus pro automatické zálohování databáze nebo databázi exportujte přes phpMyAdmin. BeoHosting rovněž vytváří denní zálohy vašeho webu na všech hostingových tarifech, ale před většími změnami je vždy lepší mít i vlastní zálohu.
Doporučený plán údržby
Týdně: Smažte spamové komentáře a příspěvky v koši.
Měsíčně: Smažte revize (ponechte poslední 3), vyčistěte transienty, optimalizujte tabulky.
Čtvrtletně: Zkontrolujte osiřelé tabulky a nastavení, analyzujte velikost tabulky wp_options, prověřte výkon databáze.
Při pravidelné údržbě zůstane vaše databáze WordPressu rychlá a efektivní a web se bude načítat výrazně rychleji. Optimalizovaná databáze je jedním z nejsnazších způsobů, jak zdarma zlepšit výkon webu.
BeoHosting Team
10+ let zkušeností — Specialisté na webhosting a infrastrukturu
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Naposledy aktualizováno: