“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 wat verder ga – en zaken graag anders doe, plaats ik dus 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!

In deze serie van artikelen behandelen we de volgende onderdelen van WordPress optimalisatie: WordPress core, WordPress database (MySQL), wp-config.php instellingen, 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 opgedeeld in meerdere delen en posts, more to come! (-:

Noot: je hebt echt niet overal plugins voor nodig! Soms installeren we wel een tijdelijke 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 op Saotn.org 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.

Note:
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.

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_ weer aanpassen naar jouw situatie.

WordPress 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 (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. Dat 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.

WordPress MySQL-database hostnaam

PHP maakt trage verbindingen naar een MySQL-database als dat transport over IPv6 gaat. Op Saotn.org heb ik hierover geschreven. Daarom is het belangrijk dat je ervoor zorgt dat de verbinding altijd via IPv4 wordt gemaakt tot dit probleem verholpen is. Met PHP doe je dit eenvoudig door de MySQL-hostnaam (mysql.example.com) te verpakken in de PHP-functie gethostbyname(). Die PHP-functie werkt namelijk alleen maar met IPv4.

In het wp-config.php bestand wijzig je de hostnaam van:

define('DB_HOST', 'mysql.example.com');

naar:

define( 'DB_HOST', gethostbyname( 'mysql.example.com' ) );

Uiteraard moet je hierbij mysql.example.com vervangen door jouw MySQL-hostnaam.

Update: tegenwoordig is IPv6 ondersteuning aanzienlijk verbeterd, zolang de databaseserver maar bereikbaar is op IPv6.

WordPress berichtrevisies beperken

Hierboven heb je al gelezen hoe je WordPress berichtrevisies kunt verwijderen. In het wp-config.php kun je 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 hiervoor in wp-config.php op:

define('WP_POST_REVISIONS', 5);

om maximaal 5 revisies op te slaan. Met

define('WP_POST_REVISIONS', false);

schakel je de revisies geheel uit.

Je verwijdert berichtrevisies (post revisions) eenvoudig, zoals uitgelegd staat in het artikel clean up WordPress post revisions.

Forceer het gebruik van MySQLi

De MySQLi-extensie is een Application Programmers Interface voor communicatie tussen PHP en MySQL. Zo is ext/mysql een oudere extensie voor deze PHP -> MySQL communicatie. Als jouw website gebruik maakt van PHP-versie 5.5 of hoger, en WordPress 3.9 of hoger, dan maakt jouw website automatisch gebruik van deze nieuwe – en betere – MySQLi-extensie.

Echter, veel websites gebruiken tegenwoordig nog PHP-versie 5.4 en dan wordt de oude ext/mysql extensie nog aangesproken. In het wp-config.php kun je een definitie opnemen die het gebruik van MySQLi te allen tijde forceert:

define( 'WP_USE_EXT_MYSQL', false );

Je leest meer over MySQLi in de blogpost ext/mysql converteren naar MySQLi.

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.

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 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 graag dingen 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.

WordPress website optimaliseren serie


MCSA Windows Server 2016

Bereid je met dit boek voor op je MCSA Windows Server 2016 examens 70-740, 70-741 en 70-743, nu via bol.com! Dit complete studieboek is het enige boek dat je nodig hebt voor jouw MCSA 2016 certificering. Met deze aankoop steun je ITFAQ.nl, waarvoor dank!

Je vindt misschien ook interessant: 70-744 Securing Windows Server 2016 | 70-740 Installation, Storage and Compute with Windows Server 2016 | 70-741 Networking with Windows Server 2016 with Practice Test | 70-743 Upgrading Your Skills to MCSA | Kaspersky Internet Security 2019 (3 gebruikers, 1 jaar) - via bol.com

Psst: steun ITFAQ.nl en doneer een kop koffie via paypal.me/jreilink.