“Hoe kan ik WordPress optimaliseren?”, is een onderwerp waarover al veel (héél véél…) geschreven is. En toch hier een “WordPress optimalisatie” post… In een tijd waarin alles snel, sneller, snelst moet, is een snelle WordPress site een must. Omdat ik graag zaken anders doe, hier toch een nieuw WordPress optimalisatie post. De reden erachter is: je hebt niet overal een plugin voor nodig! Geïnteresseerd? Lees dan verder hoe ik WordPress optimaliseer.
Eenvoudig WordPress optimaliseren
Als je via Google zoekt naar WordPress optimalisatie manieren en technieken, dan kom je voornamelijk het advies tegen om de plugins W3 Total Cache of WP Super Cache te gebruiken. Ook al is dat soms goed advies, leuk is het niet. Heb je even wat tijd over, dan kun je zélf meer doen om WordPress te optimaliseren. Véél leuker!
Zoals je in het caching concepten in WordPress-artikel kunt lezen is het soms zelfs slecht advies om WP Total Cache / WP Super Cache of andere cacheplugin te gebruiken!
In deze serie van artikelen behandelen we de volgende onderdelen van WordPress optimalisatie: WordPress Core, WordPress database (MySQL), wp-config.php
instellingen, caching, .htaccess, plugins, thema’s, afbeeldingen, minificeren van javascript en stylesheets, en wat PHP.
Voor zoekmachine optimalisatie bij Google & Bing is een snelle WordPress website erg belangrijk! Het hele onderwerp van WordPress optimaliseren is hierom opgedeeld in meerdere delen en posts.
Je hebt echt niet overal plugins voor nodig! Soms installeren we wel tijdelijk een plugin om bepaalde informatie te verzamelen. Of we plaatsen een plugin en passen die aan voor nóg betere prestaties.
Deel 2 WordPress stylesheet URL aanpassen vind je inmiddels online. Wil je zelf een PHP website optimaliseren? Lees dan mijn blogpost optimaliseer PHP websites eens door.
WordPress database (MySQL)
MySQL is de database waarin WordPress alle informatie opslaat. In de loop der tijd installeer en verwijder je plugins en thema’s, maak en wijzig je posts en concepten en krijg je hopelijk veel reacties op jouw berichten. Al die informatie wordt opgeslagen in de MySQL-database, die behoorlijk uit zijn jasje kan groeien.
WordPress optimalisatie begint daarom met de MySQL-database; het is belangrijk om jouw MySQL-database klein – lean & mean – te houden. Je kunt je dus vast voorstellen dat MySQL-database optimalisatie belangrijk is voor een snelle WordPress website.
Voor sommige van de volgende acties heb je de beschikking nodig over jouw MySQL-databasegegevens. Heb je die even niet bij de hand? Geen nood, via FTP kun je het wp-config.php bestand downloaden. Hier staan ze in, en het wp-config.php
heb je straks ook nodig. Ook heb je toegang nodig tot jouw database, bijvoorbeeld via phpMyAdmin. Informeer daarvoor bij je hostingprovider.
WordPress berichtrevisies opruimen
Zoals gezegd, in de loopt der tijd zal je vele berichten op jouw blog plaatsen. Maar wist je dat iedere keer je een bericht opslaat, deze ook apart opgeslagen wordt als revisie? Zo kan het zijn dat één blogbericht wel tien keer in jouw database staat door de revisies. Doe dat keer 200 blogposts maakt dat een totaal van 2000 berichten! Zonde van de ruimte…
Is een bericht eenmaal gepubliceerd, dan moeten oude revisies verwijderd worden in de MySQL-database.
Het verwijderen van oude revisies is gelukkig vrij eenvoudig, en hoe vaker je dit doet hoe sneller het gaat (handigheid). Je logt in op jouw MySQL-database, via bijvoorbeeld phpMyAdmin, selecteert jouw database en voert het volgende SQL-statement uit via de SQL tab:
DELETE a, b, c
FROM `wp_posts` a
LEFT JOIN `wp_term_relationships` b on a.id = b.object_id
LEFT JOIN `wp_postmeta` c on a.id = c.post_id
LEFT JOIN `wp_term_taxonomy` d on b.term_taxonomy_id = d.term_taxonomy_id
WHERE a.post_type = "revision"
AND d.taxonomy != "link_category";
DELETE from `wp_posts` where post_type="revision";
Oei, dat ziet er ingewikkeld uit… Dat komt omdat WordPress verschillende soorten informatie, die bij een bericht hoort, in verschillende MySQL-tabellen opslaat. Die informatie moet met MySQL JOIN’s samengevoegd worden. In principe worden alle berichten van het type revision verwijderd, en alle bijbehorende meta, term en taxonomy informatie.
Je leest meer over MySQL JOIN’s in mijn MySQL database normaliseren post.
Vergeet niet om de tabelvoorvoegsel wp_
te veranderen naar jouw situatie.
WordPress wp_options tabel optimaliseren
De WordPress tabel wp_options
bevat heel veel informatie, onder andere informatie over zaken die automatisch geladen moet worden. De tabel wp_options
ontbeert één belangrijke index, op de kolom autoload
. Door een index te plaatsen op de kolom autoload
wordt informatie om automatisch te laden sneller gevonden, en dat willen we graag! Bij WordPress loopt hierover een verzoek waarin ik ook betrokken ben. Voor nu is het verzoek afgewezen door de ontwikkelaars, met de optie het later te heropenen.
Via het SQL tab in phpMyAdmin voer je het volgende SQL-statement uit:
ALTER TABLE `wp_options` ADD INDEX (`autoload`);
Ook hier moet je het tabelvoorvoegsel wp_
aanpassen naar jouw situatie.
WordPress MySQL-databasetabellen optimaliseren
Informatie in een database is dynamisch. Dat betekent, er wordt informatie toegevoegd, bijgewerkt (geüpdatet) en verwijderd. Zoals hierboven waar berichtrevisies verwijderd zijn. Het is belangrijk om ervoor te zorgen dat alle informatie netjes achterelkaar staat in een database, want bij het verwijderen van informatie raakt een database gefragmenteerd. De data raakt verspreid en er ontstaat loze ruimte.
In de phpMyAdmin-omgeving kun je, na het selecteren van jouw database, alle tabellen aanvinken (of kies voor de Selecteer alles link). Als je daarna in het dropdown-menu kiest voor Optimaliseer tabel, dan worden alle MySQL-databasetabellen geoptimaliseerd.
Dit optimaliseren houdt in dat alle data en informatie weer netjes achterelkaar wordt geplaatst. Je database is hierdoor kleiner en sneller!
Lees meer over MySQL-database optimalisatie. Wil jij ook geld verdienen met WordPress? Lees dan gauw deze tips!
WordPress wp-config.php instellingen
Het wp-config.php
bestand is waar één en ander geconfigureerd en ingesteld wordt, zoals de MySQL-databasegegevens. Maar ook kun je hier belangrijke instellingen maken voor een betere performance van jouw WordPress website.
Te vaak worden wp-config.php optimalisaties klakkeloos van een internetartikel overgenomen. Pas hier voor op, want vaak wordt WP_MEMORY_LIMIT fout ingesteld in wp-config.php, en hierdoor is het mogelijk dat er juist minder geheugen beschikbaar is voor jouw website.
WordPress berichtrevisies beperken
Hierboven heb je al gelezen hoe je WordPress berichtrevisies kunt verwijderen. In het wp-config.php
kun je ook instellen hoeveel revisies er maximaal opgeslagen mogen worden, bijvoorbeeld één of vijf. Dat is handig, want hoe minder revisies er opgeslagen worden, hoe minder ruimte die innemen in de database.
Om het aantal berichtrevisies te beperken, neem je hiervoor in wp-config.php
op:
define( 'WP_POST_REVISIONS', 5 );
om maximaal 5 revisies op te slaan. En je schakelt revisies geheel uit met:
define( 'WP_POST_REVISIONS', false );
Je verwijdert berichtrevisies (post revisions) eenvoudig, of limiteert het aantal revisies. Een Engelstalig artikel van mij is clean up WordPress post revisions.
Forceer het gebruik van InnoDB databasetabellen
Ik kan het niet vaak genoeg aangeven, maar het MyISAM opslagformaat voor MySQL-tabellen is verouderd. Je leest hier meer over op [1], [2], [3], maar ook [4]. Converteer daarom de MySQL tabellen van MyISAM naar InnoDB. Lees hier hoe:
Beveilig databaseverbindingen met SSL
Het is belangrijk dat je de verbinding die WordPress maakt met de MySQL-database beveiligt met SSL (TLS). Een groot deel van de mogelijkheid hiertoe ligt aan je hostingprovider, dus informeer daar op voor hand naar. Als je een SSL-beveiligde databaseverbinding kunt/mag maken vanuit WordPress, voeg dan toe aan je wp-config.php
-bestand:
define( 'MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL );
Hiermee is die verbinding direct versleuteld en beveiligd. Je vindt meer informatie hierover op de volgende pagina:
WordPress Debug
Verifieer in jouw wp-config.php
bestand dat WP_DEBUG
uitgeschakeld is:
define( 'WP_DEBUG', false );
Anders bestaat de mogelijkheid dat er onnodig veel meldingen en fouten getoond worden, die alleen voor ontwikkelaars van belang zijn. Het loggen van PHP- en WordPress fouten kost alleen maar kostbare CPU-tijd.
Zet debugging inn WordPress alleen aan als je het echt nodig hebt. Je leest hier hoe je dat doet:
WordPress back-ups, website- en MySQL-back-ups
WordPress backup
Het is belangrijk zorg te dragen voor goede back-ups voordat je bestanden wijzigt. Gaat er onverhoopt iets fout dan kun je altijd terugvallen op jouw back-ups, en dat geeft wel een veilig gevoel. Het bericht website back-up maken met Cobian Backup legt je eenvoudig uit hoe je met Cobian Backup een volledige website back-up maakt.
MySQL-database backup
Naast een website back-up moet je er natuurlijk ook voor zorgen dat je de MySQL-database regelmatig back-upt. Dit kan op jouw computer met MySQL Workbench of online via phpMyAdmin.
Conclusie WordPress optimaliseren
Het hele “WordPress optimaliseren“-onderwerp is breed, heel breed. En daarom is er al zoveel over geschreven. Maar omdat ik dingen graag anders doe – ook al vergt het soms meer kennis en tijd dan het installeren van een plugin – heb ik je hier op een paar punten gewezen waarmee je de snelheid van WordPress aanzienlijk kunt versnellen. En we hebben nog geen plugin aangeraakt!
In een volgend artikel gaan we weer iets verder met de eerder genoemde onderwerpen WordPress Core, plugins, thema’s, afbeeldingen, minificeren van javascript en stylesheets, en PHP. Waar nodig komen de WordPress MySQL-database en wp-config.php
instellingen ook weer aanbod.
Heb je ondertussen zelf een goede tip voor het versnellen van WordPress? Laat die dan als een reactie op deze blogpost achter. Misschien kan ik het in het volgende artikel verwerken.
Pingback: MySQL-database optimaliseren
Pingback: WordPress optimaliseren voor mobiel
Pingback: PHP optimaliseren op Windows Server IIS