Tuning en tweaking. Ik denk dat ik de afgelopen jaren zeker dagen dan wel niet weken daarmee bezig ben geweest. Hoe haal je het maximale uit WordPress? Hoe kan je WordPress en Woocommerce websites nog sneller maken en daarmee beter laten ranking in Google? Snelheid is immers belangrijk. Het is dan ook niet gek dat daar veel focus op ligt en dat het een tijdrovende klus is, dat moet dan maar. Server migraties, geheugen allocaties, PHP-FPM en PHP-CGI tuning, Apache2 configuraties aanpassingen, NGINX tweaking, REDIS object caching en natuurlijk het optimaliseren van de my.cnf – het is allemaal gedaan. Maar recentelijk heb ik één tweak doorgevoerd en ik bibber nu nog over het resultaat daarvan. WordPress op steroïden, speed en dat pilletje uit limitless tegelijk.
WP-CRON
Een van onze websites heeft een database van 14 GB. Daar schrikken wij niet van. Na alle tweaks en optimalisaties te hebben gedaan merkte ik na het wisselen van een sitemap plugin (van de standaard Yoast sitemap naar Google XML Sitemap van Arne Brachhold) dat de wp_options tabel zich flink aan het vullen was met allemaal cronjobs. Toen ik de tabel nader ging inspecteren vond ik een gigantische hoeveelheid van oude cronjobs. Deze waren te herkennen aan option_name ‘cron’. Aangezien deze allemaal verlopen waren en geen waarde meer toevoegde heb ik ze verwijderd uit de database (wel eerst een backup gemaakt natuurlijk!).
Het resultaat
Bij het openen van een van de webpagina’s stond de pagina in no-time. Sneller had ik het nog niet gezien. Ook het administrator dashboard dat tot grote irritatie enorm traag was geworden, je weet wel, wanneer je inlogt via wp-admin, was razendsnel. Nergens, maar dan ook nergens had ik verwacht dat deze cronjobs zoveel impact konden hebben. Zeker als je website op wordpress of webshop op woocommerce al een tijdje draaien en je verschillende plugins hebt gebruikt en weggehaald kan dit ook bij jou de oorzaak zijn van het probleem.
En wat moeten wij niet nerds hiermee Sitezilla?
Om na te gaan of je zelf ook veel vervuiling hebt in de database kan je via phpMyAdmin het volgende commando uitvoeren (ervan uitgaande dat je tabel pre-fix wp is, maar dat heb je natuurlijk niet omdat je ook wel een beetje gevoelig bent voor security toch?) :
SELECT * FROM `wp_options` WHERE option_name = 'cron';
Als je hier heel veel resultaten op zien dan is deze vervuiling zeker de moeite waard om te verwijderen. Dit kan je met het handje doen door alles te selecteren en te deleten. Het kan ook op een andere manier door een aanpassing in je functions.php. Tevens zorgt deze ervoor dat de oplossing wat meer structureler van aard is. Voeg daarvoor de volgende code toe aan het functions.php bestand van je child thema :
if (isset($_GET['doing_wp_cron'])) {
remove_action('do_pings', 'do_all_pings');
wp_clear_scheduled_hook('do_pings');
}
Af en toe aan en uitzetten van dit stukje code is aanbevolen. Voor dat je dit soort zaken gaat proberen, wel even backuppen!
Alvast veel plezier met je wordpress op steroiden, pep en dat spul uit dat pilletje uit de film / serie limitless. Hulp nodig of durf je het niet aan? Je mag ons altijd bellen voor een consult, wij helpen je graag aan een loeisnelle wordpress website!