“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


“Want to say thanks?”

Vond je een post interessant? Heb ik je geholpen met het oplossen van een probleem? Waarom doneer je dan geen kopje koffie? 🙂

If I’ve helped you out and you want to thank me, why not buy me a coffee?

Bedankt voor je support. ♥


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

Jan Reilink

My name is Jan. I am not a hacker, coder, developer, programmer or guru. I am merely a system administrator, doing my daily thing at Vevida in the Netherlands. With over 15 years of experience, my specialties include Windows Server, IIS, Linux (CentOS, Debian), security, PHP, WordPress, websites & optimization. Want to support me and donate? Use this link: https://paypal.me/jreilink.

6 reacties

Google AdSense advertenties in WordPress met shortcodes - ITFAQ.nl · december 30, 2018 op 11:40

[…] de website snelheid van jouw blog is het vaak belangrijk de code in de footer te laden, evenals het niet vaker dan […]

Verwijder WordPress script- en style querystrings en versienummers - ITFAQ.nl · december 30, 2018 op 11:25

[…] static resources, is een veel gegeven en belangrijk advies voor website-optimalisatie, en dus ook WordPress optimalisatie. Maar wat wordt daar nou precies mee bedoeld? Simpel: een browser cachet geen bestanden als er een […]

MySQL-database optimaliseren - ITFAQ.nl · december 30, 2018 op 11:23

[…] In dit artikel, en latere artikelen, gaan we daarom nog verder in op MySQL-database optimalisatie. Zie bijvoorbeeld ook MySQL-database normaliseren. […]

WordPress optimaliseren voor mobiel - ITFAQ.nl · december 30, 2018 op 11:03

[…] eerste deel van deze serie ging in op WordPress optimaliseren. Belangrijk hierin was de MySQL database. Zo herinner je je wellicht het beperken van […]

PHP optimaliseren op Windows Server IIS - ITFAQ.nl · november 8, 2018 op 11:48

[…] In dit artikel laat ik IIS 6.0, en dus heel Windows Server 2003, buiten beschouwing. Ondanks dat bepaalde instellingen ook daarop van toepassing zijn, richten we ons op Windows Server 2008 R2 en hoger (IIS 7.5, 8.0, 8.5 en IIS 10). Als je het onderwerp PHP optimalisatie, en website optimalisatie in het algemeen, interessant vindt, lees dan ook zeker naar mijn WordPress optimaliseren-posts! […]

ITFAQ.nl op Windows Server 2016, IIS 10 met WordPress & HTTP/2 - ITFAQ.nl · augustus 30, 2018 op 09:22

[…] je nu zoekt naar manieren om jouw website te optimaliseren (WordPress bijvoorbeeld, of Joomla, Drupal), dan kom je steevast de volgende adviezen […]

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

13 queries, 0,210 seconds running PHP version 7.3.2