Ga naar inhoud
WordPress Database Optimalisatie: Hoe je je Database kunt Schoonmaken en Versnellen

WordPress Database Optimalisatie: Hoe je je Database kunt Schoonmaken en Versnellen

Erik KellerErik KellerBijgewerkt op: 15 min leestijd564 weergaven

Elke pagina-lading, formulierindiening, plugin-operatie en gebruikerssessie in WordPress omvat databasequery's. In de loop van de tijd accumuleert de database overhead: oude postrevisies, verlopen transiënten, weesmetadata, spamreacties en ongebruikte tabellen van gedeactiveerde plugins. Deze bloat vertraagt query's, vergroot back-upgroottes en degradeert de algehele siteprestaties. Deze gids behandelt hoe je databasebloat kunt identificeren, het veilig kunt opruimen en kunt voorkomen dat het terugkomt.

Wat WordPress in de Database Opslaat

Begrijpen wat er in je database leeft, helpt je identificeren wat veilig kan worden verwijderd. Een standaard WordPress-installatie gebruikt 12 kern tabellen, en plugins voegen hun eigen tabellen toe indien nodig.

Tabel Opslaat Veelvoorkomende Bloat Bron
wp_posts Berichten, pagina's, revisies, bijlagen, aangepaste berichttypen Postrevisies, auto-drafts
wp_postmeta Metadata voor berichten (aangepaste velden, plugin-gegevens) Weesmeta van verwijderde berichten
wp_options Site-instellingen, plugin-instellingen, transiënten Verlopen transiënten, oude plugin-instellingen
wp_comments Reacties en trackbacks Spamreacties, verwijderde reacties
wp_commentmeta Metadata voor reacties Akismet-metadata voor verwijderde reacties
wp_usermeta Gebruikersmetadata Sessie-tokens, plugin-gebruikersgegevens
wp_termmeta Metadata voor categorieën en tags Weestermmetadata

Veelvoorkomende Bronnen van Database Bloat

Postrevisies

WordPress slaat een revisie op elke keer dat je op "Concept Opslaan" of "Bijwerken" klikt op een bericht of pagina. Een bericht dat 50 keer is bewerkt, heeft 50 revisies opgeslagen in de wp_posts-tabel, elk met zijn eigen set postmeta-invoeren. Op een site met honderden berichten kunnen revisies duizenden onnodige database-rijen vertegenwoordigen.

Transiënten

Transiënten zijn tijdelijke gegevens die in de wp_options-tabel door de WordPress-kern en plugins worden opgeslagen. Ze hebben vervaltijden, maar WordPress verwijdert verlopen transiënten niet automatisch. Ze accumuleren in de loop van de tijd en kunnen de opties-tabel aanzienlijk laten groeien, vooral op sites met veel plugins.

Weesgegevens

Wanneer je een bericht verwijdert, kan de metadata (wp_postmeta-invoeren) niet worden verwijderd. Evenzo kan het verwijderen van reacties, gebruikers of termen weesmetadata-rijen achterlaten. Gedeactiveerde en verwijderde plugins laten vaak hun databasetabellen achter, wat ruimte verbruikt en je database rommelig maakt.

Spam en Verwijderde Inhoud

Spamreacties, verwijderde berichten en verwijderde reacties blijven in de database totdat ze handmatig worden geleegd. Sites met Akismet of andere spamfilters kunnen duizenden spamreacties accumuleren die periodiek moeten worden opgeruimd.

Auto-Drafts

WordPress maakt auto-draft berichten aan wanneer je op "Nieuwe Toevoegen" in de berichteditor klikt, zelfs als je nooit publiceert. Deze accumuleren in de loop van de tijd en dienen geen doel nadat de bewerkingssessie is beëindigd.

Handmatige Database Opruiming via SQL

Voor degenen die zich comfortabel voelen met SQL, kun je direct opruimen met phpMyAdmin of een databaseclient. Maak altijd een back-up van je database voordat je opruimquery's uitvoert.

Verwijder Postrevisies

-- Verwijder alle postrevisies
DELETE FROM wp_posts WHERE post_type = 'revision';

-- Verwijder weespostmeta (metadata voor verwijderde berichten)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
W

Opruimen van Transients

-- Verwijder verlopen transients
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

-- Verwijder de transientgegevens voor verlopen transients
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';

Verwijder Spam en Verwijderde Reacties

-- Verwijder spamreacties
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- Verwijder verwijderde reacties
DELETE FROM wp_comments WHERE comment_approved = 'trash';

-- Verwijder weescommentaarmetadata
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;

Plugin-gebaseerde Database Opruiming

Als je de voorkeur geeft aan een GUI-gebaseerde benadering, zijn er verschillende plugins die database-optimalisatie met planningsmogelijkheden afhandelen:

WP-Optimize

WP-Optimize is een gratis plugin die revisies, concepten, spam, transients en weesgegevens opruimt. Het optimaliseert ook databasetabellen en ondersteunt geplande opruimingen. De Pro-versie voegt multisite-ondersteuning en geavanceerde planning toe.

WP Rocket Database Optimalisatie

WP Rocket bevat een Database-tabblad dat revisies, auto-drafts, verwijderde berichten, spamreacties, transients en tabeloptimalisatie afhandelt. Aangezien WP Rocket voornamelijk een caching-plugin is, krijg je database-opruiming samen met prestatieoptimalisatie in één tool.

Geavanceerde Database Cleaner

Deze plugin gaat dieper door tabellen te detecteren die zijn achtergelaten door gedeactiveerde plugins en wees cron-evenementen. Het categoriseert tabellen als WordPress-kern, plugin-gecreëerd of onbekend, waardoor je kunt identificeren welke tabellen veilig kunnen worden verwijderd.

Plugin Gratis Versie Geplande Opruiming Tabeldetectie
WP-Optimize Ja Ja Basis
WP Rocket Nee (alleen Premium) Ja Nee
Geavanceerde Database Cleaner Ja Alleen Pro Ja (gedetailleerd)

wp-config.php Optimalisaties

Voorkom database-uitbreiding aan de bron door deze constanten toe te voegen aan je wp-config.php-bestand:

Beperk Postrevisies

// Houd alleen 5 revisies per post (aanbevolen)
define( 'WP_POST_REVISIONS', 5 );

// Schakel revisies volledig uit (niet aanbevolen voor de meeste sites)
define( 'WP_POST_REVISIONS', false );

Het instellen van revisies op 5 biedt voldoende geschiedenis om van fouten te herstellen, terwijl onbeperkte revisiegroei wordt voorkomen. Voor inhoudsrijke sites met frequente bewerkingen is 10 revisies een redelijke alternatieve optie.

Auto-Leeg Prullenbak

// Leeg prullenbak elke 7 dagen (standaard is 30)
define( 'EMPTY_TRASH_DAYS', 7 );

// Schakel prullenbak uit (items worden onmiddellijk verwijderd - gebruik met voorzichtigheid)
define( 'EMPTY_TRASH_DAYS', 0 );

Autosave Interval

// Verhoog autosave interval naar 5 minuten (standaard is 60 seconden)
define( 'AUTOSAVE_INTERVAL', 300 );

Optimaliseren van Databasetabellen

Na het verwijderen van rijen, voer een OPTIMIZE-operatie uit om gefragmenteerde ruimte terug te winnen:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;

Plan dit maandelijks of na grote opruimoperaties. De meeste opruimplugins bevatten tabeloptimalisatie in hun geplande taken.

Automatische Opschoning Inplannen

Stel geautomatiseerde schema's in: wekelijkse opschoning van transiënten en spam, maandelijkse verwijdering van revisies en optimalisatie van tabellen, en kwartaalcontroles van verlaten plugin-tabellen. WP-Optimize en WP Rocket ondersteunen beide geplande opschoning. Configureer ze tijdens daluren.

Databasegrootte Monitoren

Volg de grootte van je database om bloat vroegtijdig op te sporen. Voer deze query uit om de grootte van individuele tabellen te zien:

SELECT table_name AS 'Tabel',
       ROUND(data_length / 1024 / 1024, 2) AS 'Gegevens (MB)',
       table_rows AS 'Rijen'
FROM information_schema.tables
WHERE table_schema = 'jouw_database_naam'
ORDER BY (data_length + index_length) DESC
LIMIT 20;

Als wp_options meer dan 5 MB overschrijdt of wp_postmeta groter wordt dan 100 MB, is het tijd voor een opschoning. Deze tabellen worden vaak opgevraagd, dus hun grootte beïnvloedt rechtstreeks de laadtijden van pagina's.

Voor een uitgebreide aanpak van prestatieoptimalisatie die database-optimalisatie omvat naast caching, beeldoptimalisatie en serverconfiguratie, lees onze WordPress snelheid optimalisatiegids. Voor voortdurende databasegezondheid als onderdeel van je onderhoudsroutine, zie onze WordPress onderhoudsgids.

Voor meer details, raadpleeg de officiële documentatie: WordPress Database API.

Veelgestelde Vragen

Is het veilig om postrevisies uit de database te verwijderen?

Ja, het verwijderen van postrevisies is veilig en heeft geen invloed op je gepubliceerde inhoud. Revisies zijn historische momentopnamen van conceptwijzigingen. Zodra je inhoud is afgerond, dienen revisies voor de meeste sites geen doel meer. Maak echter altijd een back-up van je database voordat je een opschoning uitvoert.

Zal database-optimalisatie mijn sitesnelheid merkbaar verbeteren?

De verbetering hangt af van hoe bloat je database is. Sites met 50.000+ verlaten rijen of een wp_options-tabel die meer dan 10 MB overschrijdt, zullen merkbare verbeteringen zien in laadtijden van pagina's en de responsiviteit van het beheerdersdashboard. Kleinere sites kunnen marginale verbeteringen zien. Database-optimalisatie werkt samen met caching en andere prestatiemaatregelen voor cumulatieve verbetering.

Hoe vaak moet ik mijn WordPress-database optimaliseren?

Voor actieve sites met regelmatige inhoudsupdates is maandelijkse optimalisatie een goede basislijn. Sites met veel verkeer en frequente opmerkingen, WooCommerce-transacties of formulierindieningen kunnen profiteren van wekelijkse opschoning van transiënten en spam met maandelijkse tabeloptimalisatie.

Kunnen database-opruimplugins mijn site breken?

Betrouwbare plugins zoals WP-Optimize en WP Rocket zijn ontworpen om veilig te zijn. Ze richten zich op bekende bloatcategorieën (revisies, transiënten, spam) en raken essentiële gegevens niet aan. Het risico neemt toe wanneer je handmatig plugin-specifieke tabellen verwijdert. Als je niet zeker weet of een tabel nodig is, laat deze dan staan en onderzoek eerst het doel ervan.

Wat is het verschil tussen OPTIMIZE TABLE en het verwijderen van rijen?

Het verwijderen van rijen verwijdert gegevens uit de tabel. OPTIMIZE TABLE reorganiseert de fysieke opslag van de tabel nadat rijen zijn verwijderd, waardoor schijfruimte wordt herwonnen en het gegevensbestand wordt gedefragmenteerd. Zie het als het verwijderen van bestanden (rijen verwijderen) versus het defragmenteren van je harde schijf (de tabel optimaliseren).

Moet ik InnoDB of MyISAM gebruiken voor WordPress-tabellen?

WordPress gebruikt standaard InnoDB sinds versie 5.5, en het is de aanbevolen opslagengine. InnoDB ondersteunt rij-niveau vergrendeling (beter voor gelijktijdige gebruikers), transacties en crashherstel. MyISAM is sneller voor leesintensievere bewerkingen, maar mist deze betrouwbaarheidseigenschappen. Als je MyISAM-tabellen in je database vindt, wordt over het algemeen aanbevolen om ze naar InnoDB te converteren.

Hoe identificeer ik tabellen die door gedeactiveerde plugins zijn achtergelaten?

De Advanced Database Cleaner-plugin kan niet-kern tabellen detecteren en categoriseren. Alternatief kun je de SQL-query SHOW TABLES uitvoeren en de tabelnamen vergelijken met de WordPress-kern tabellen en je momenteel actieve plugins. Tabellen met voorvoegsels die overeenkomen met gedeactiveerde plugins zijn kandidaten voor verwijdering.

Voegt WooCommerce aanzienlijke databasebloat toe?

Ja. WooCommerce slaat bestelgegevens, productmetadata, klantensessies en transiënten op die aanzienlijk groeien op actieve winkels. Gebruik WooCommerce > Status > Hulpmiddelen om regelmatig verlopen transiënten en sessies te wissen.

Optimaliseer Prestaties vanuit Elke Hoek

WP Rocket behandelt caching, database-opruiming en prestatieoptimalisatie in één plugin, zodat je je site soepel kunt laten draaien.

Ontdek WP Rocket →

Veelgestelde vragen

Hoe vaak moet ik mijn WordPress-database optimaliseren?
Voor de meeste sites is maandelijkse optimalisatie voldoende. Sites met veel verkeer, zoals actieve WooCommerce-winkels of forums, moeten wekelijks optimaliseren. Geautomatiseerde tools zoals WP-Optimize kunnen dit op een schema uitvoeren.
Is het veilig om oude postrevisies uit de database te verwijderen?
Ja, het verwijderen van oude postrevisies is veilig en wordt vaak aanbevolen. WordPress slaat standaard onbeperkte revisies op, wat duizenden rijen kan toevoegen. Je kunt revisies beperken door de constante define REVISIONS toe te voegen aan wp-config.php.
Zal database-optimalisatie de snelheid van mijn site verbeteren?
Database-optimalisatie vermindert doorgaans de uitvoeringstijd van query's, wat de serverreactietijd (TTFB) verbetert. De impact is het meest merkbaar op dynamische pagina's met complexe query's, zoals WooCommerce-productpagina's of zoekresultaten.
Moet ik de database optimaliseren voor of na een backup?
Maak altijd een volledige databaseback-up voordat je enige optimalisatie uitvoert. Dit zorgt ervoor dat je je gegevens kunt herstellen als er iets misgaat tijdens het schoonmaakproces.
Wat zijn weesmetadata-rijen en kan ik ze veilig verwijderen?
Weesmetadata zijn rijen in meta-tabellen die verwijzen naar berichten, gebruikers of opmerkingen die niet meer bestaan. Ze zijn veilig te verwijderen en stapelen zich vaak op door verwijderde plugins of inhoud. Tools zoals WP-Optimize kunnen deze vermeldingen identificeren en schoonmaken.

Dit bericht delen

Over de Auteur

Erik Keller
Erik Keller

WordPress-expert

Senior WordPress-specialist met uitgebreide ervaring in de ontwikkeling van thema's, plugins en WooCommerce. Gepassioneerd om bedrijven te helpen slagen met WordPress-oplossingen.

WordPressWooCommerceThema-ontwikkelingPlugin-ontwikkelingPrestatieoptimalisatie

Blijf op de Hoogte

Ontvang de nieuwste WordPress-tips en tutorials in uw inbox.