Bijna alle WordPress-websites die ik heb gezien, hadden opgeblazen databases. Ik denk dat dit vrij normaal is. Niemand is als expert geboren in het bouwen van superefficiënte en geoptimaliseerde sites.
Toen ik WordPress begon te gebruiken, veranderde ik elke maand van thema en testte ik veel plug-ins. Ik las altijd die artikelen over de “top 21 must-have plug-ins”, en ik ging ze gewoon allemaal installeren. Een paar weken later deïnstalleren.
Dit is hoe je leert. Je probeert, je test, je ontdekt wat je nodig hebt, wat voor jou werkt.
Maar jaren later zit je met een WordPress-database vol oude, nutteloze dingen. Dat komt omdat de database van uw website niet alleen uw inhoud bevat, maar ook alle thema's en plug-ininstellingen.
Waarom is het essentieel om een schone database te hebben?
We hadden één klant, een foodblog met ~10.000 pageviews/dag, die last had van trage laadtijden, 13-15 seconden. De oplossing die het hostingbedrijf bood, was om te upgraden naar een VPS vanuit het gedeelde abonnement waar ze gebruik van maakte.
Onze oplossing was anders.
We ontdekten dat WordPress 300 MB verbruikte om een pagina te genereren. Een typisch WordPress-exemplaar zou 30-40 MB moeten verbruiken, zodat u een idee krijgt van hoe erg het was. Geen wonder dat het 15 seconden duurde om de bronnen die aan haar hostingaccount waren toegewezen te laden en te benutten.
We ontdekten meer dan 25.000 database-items in de wp_options-tabel met autoload ingesteld op yes. “Autoload: ja” betekent dat wanneer WordPress aan het initialiseren is, het deze opties uit de database leest. Dat alleen al duurde ongeveer 11 seconden.
We hebben die oude, nutteloze opties verwijderd en nu verbruikt WordPress 50 MB en laadt het in 2-3 seconden. We hebben ook afbeeldingen geoptimaliseerd, haar overgezet naar Genesis Framework, enkele slechte plug-ins vervangen door betere en andere kleine aanpassingen.
Ze hoefde niet te upgraden naar een VPS; Ze bleef nog acht tot negen maanden bij een gedeeld abonnement toen haar verkeer ~60.000 paginaweergaven per dag bereikte en het tijd werd om af te stappen van gedeelde hosting .
Concluderend heeft het hebben van een schone WordPress-database haar geholpen geld te besparen op hosting. En het kan jou ook helpen. Laten we dus eens kijken wat u kunt doen om uw WordPress-database te optimaliseren.
Maak eerst een back-up
Zorg ervoor dat u een back-up van uw database maakt voordat u iets gaat doen. Ik gebruik UpdraftPlus met Amazon S3, maar er zijn veel back-upplug-ins/oplossingen voor WordPress, zoals:
U kunt uw database ook exporteren vanuit phpMyAdmin; uw hostingprovider moet toegang bieden tot deze databasebeheertool (of een vergelijkbare tool).
Basisopruiming
Een van de belangrijkste dingen die u kunt doen is het verwijderen van ongebruikte plug-ins en thema's, het verwijderen van spamreacties, het verwijderen van in de prullenbak geplaatste reacties, in de prullenbak geplaatste berichten en in de prullenbak geplaatste pagina's.
Verwijder ongebruikte plug-ins en thema's
Dit helpt ook vanuit veiligheidsoogpunt. Ik raad aan dat u geen PHP-scripts (plug-ins, thema's, andere PHP-bestanden) op uw server bewaart die u niet gebruikt.
Om ongebruikte plug-ins te verwijderen, logt u in op wp-admin en gaat u naar Plug-ins > Geïnstalleerde plug-ins. Klik op Inactief om inactieve plug-ins te zien en deze te verwijderen.
Om ongebruikte thema's te verwijderen, gaat u naar Weergave > Thema's. Klik op elk thema dat u wilt verwijderen en klik vervolgens op Verwijderen in de rechter benedenhoek.
Ik raad u aan alleen uw actieve thema en één standaardthema te behouden (als u incompatibiliteiten moet testen). Ik gebruik Genesis Framework. Dus ik behoud Genesis (bovenliggend thema), het Genesis-kindthema (actief thema) en één WordPress-standaardthema (voor testdoeleinden).
Leeg de spamreacties
Log in op wp-admin en ga naar Opmerkingen. Klik op Spam om de spamreacties te zien en gebruik de knop Spam leegmaken om ze te verwijderen.
Maak de prullenbak leeg
Terwijl u zich nog in het gedeelte Opmerkingen bevindt, klikt u op Prullenbak om de in de prullenbak geplaatste opmerkingen te zien en gebruikt u de knop Prullenbak legen om ze te verwijderen.
Ga naar Berichten > Alle berichten, klik op Prullenbak om de berichten in de prullenbak te zien. Gebruik de knop Prullenbak legen om ze te verwijderen.
Ga naar Pagina's > Alle pagina's, klik op Prullenbak om de weggegooide pagina's te bekijken en gebruik de knop Prullenbak legen om ze te verwijderen.
Als je aangepaste berichttypen hebt weggegooid, kun je deze op dezelfde manier verwijderen. Als u categorieën of tags heeft die u niet gebruikt, kunt u deze ook verwijderen.
Dit kun je ook doen met de WP Sweep plugin, zoals hieronder uitgelegd.
Gebruik een plug-in om de WordPress-database op te schonen
Het gemakkelijkste wat je kunt doen, vooral voor niet-technische mensen, is een WordPress-plug-in gebruiken om de database op te schonen.
De meest populaire plug-ins voor database-optimalisatie zijn:
We raden WP-Sweep aan omdat het zoveel mogelijk de juiste WordPress-verwijderfuncties gebruikt in plaats van directe MySQL-query's te verwijderen. De WP-Optimize-plug-in maakt gebruik van directe verwijdering van SQL-query's waardoor verweesde gegevens achter kunnen blijven.
Installeer en activeer de WP Sweep-plug-in en ga vervolgens naar Extra> Sweep. Je ziet verschillende secties met een veegknop ernaast. Klik op de knop om de rommel op te ruimen.
Deze plug-in helpt u bij het verwijderen van:
- Revisies
- Automatische concepten
- Verwijderde, niet-goedgekeurde en gespamde reacties
- Verweesde en gedupliceerde post-meta
- Verweesde en dubbele commentaar-meta
- Verweesde en dubbele gebruikersmeta
- Weestermijnrelaties
- Ongebruikte termen
- Tijdelijke opties.
De plug-in kan ook tabellen optimaliseren, en dat is eenvoudiger dan via phpMyAdmin. U kunt dit periodiek doen, waarbij u databasetabellen optimaliseert, misschien eens in de paar maanden.
Geavanceerde opruiming
Soms, als je gedeelde hosting gebruikt, kan WP Sweep vastlopen vanwege PHP-beperkingen. Het gebeurt meestal wanneer er een groot aantal database-items moet worden verwijderd, zoals het verwijderen van transiënten.
Als u de plug-in niet kunt gebruiken om uw database op te schonen, moet u de opschoning uitvoeren door query's rechtstreeks in uw database uit te voeren. De query om transiënten te verwijderen is bijvoorbeeld:
VERWIJDER UIT `wp_options` WAAR `option_name` LIKE ('%\_transient\_%');
Opmerking: zorg ervoor dat u het standaardvoorvoegsel (wp_) wijzigt in het voorvoegsel dat uw database gebruikt.
U kunt deze query uitvoeren in phpMyAdmin (een tool die toegankelijk is via cPanel) of met een databasebeheertool zoals Sequel Pro (Mac) of MySQL Workbench (Windows, Linux, Mac).
Ik gebruik Sequel Pro en geef de voorkeur aan phpMyAdmin omdat het sneller en stabieler is. phpMyAdmin kan soms crashen (shared hosting, PHP-beperkingen). Ik heb MySQL Workbench nog nooit gebruikt om te vergelijken.
Vergeet niet eerst een backup te maken van uw database
Een geweldige tutorial over het uitvoeren van queries in phpMyAdmin is deze op wpmudev.com .
Uit mijn ervaring is een van de belangrijkste problemen met de WordPress-database een groot aantal database-items in de wp_options-tabel met autoload: ja.
Je kunt deze vinden en verwijderen met een plug-in – Clean Options – of rechtstreeks in de wp_options-tabel met behulp van phpMyAdmin of Sequel Pro.
Hier is een goede tutorial over het gebruik van de plug-in Clean Options, maar het opschonen van die opties is een vervelende taak, en hoe je het ook doet, er is helaas geen gemakkelijke manier.
Omdat de plug-in u de “ mogelijk verweesde opties” laat zien, moet u oppassen dat u niet iets verwijdert dat u niet zou moeten verwijderen, waardoor uw site kapot gaat.
Wat u moet doen, is de opties identificeren die nutteloos zijn, zoals bij oude plug-ins die u niet meer heeft. U moet weten welk voorvoegsel elke plug-in heeft; bijvoorbeeld als je veel opties ziet met het voorvoegsel “wcj_” dat afkomstig is van de Booster voor WooCommerce- plug-in. Als u Booster niet meer gebruikt, kunt u deze veilig verwijderen.
Ik gebruik de Clean Options-plug-in niet, ik werk graag rechtstreeks aan de database met Sequel Pro, en ik benader dit zoals ik in 1998 deed toen ik Tomb Raider speelde, waarbij ik het spel na elke sprong opsloeg.
Ik maak een back-up van de tabel, zoek naar opties, verwijder opties, controleer op fouten, maak opnieuw een back-up en herhaal.
Nu heb je een schone WordPress-database. Houd het schoon met behulp van de volgende best practices.
Best practices om uw WordPress-database schoon te houden
In willekeurige volgorde.
1. Voorkom dat de revisies zich opstapelen en beperk het aantal revisies dat in de database is opgeslagen, bijvoorbeeld 3. Voeg de volgende code toe aan het wp-config.php-bestand.
definieer('WP_POST_REVISIONS', 3);
2. Leeg de prullenbak regelmatig of stel in dat deze na enkele dagen automatisch wordt geleegd, bijvoorbeeld na 5 dagen. Voeg de volgende code toe aan het wp-config.php-bestand.
definieer('EMPTY_TRASH_DAYS', 5);
3. Leeg spam regelmatig.
4. Laat reacties niet ongeautoriseerd achter: keur ze goed, spam ze of verwijder ze.
5. Gebruik de WP Sweep-plug-in om tabellen te optimaliseren en transiënten periodiek te controleren (en indien nodig op te ruimen).
6. Pas op voor plug-ins die veel gegevens opslaan:
- statistische plug-ins
- beveiligingsplug-ins
- anti-spam plug-ins
- gerelateerde berichten plug-ins
- plug-ins voor het bijhouden van links
Ik zeg niet dat je geen van de bovenstaande plug-ins moet gebruiken, maar gebruik plug-ins die deze functionaliteiten bieden en gegevens extern opslaan, niet in je WordPress-database. Als je dit kunt vermijden, gebruik dan geen plug-ins die bloat toevoegen, maar houd de WordPress-database zo schoon mogelijk.
7. Als u een plug-in verwijdert waarvan u zeker weet dat u deze niet langer wilt gebruiken, reinig deze dan na die plug-in.
De meeste plug-ins ruimen zichzelf niet op. U moet dus de databasetabellen verwijderen die de plug-in heeft toegevoegd en de plug-inopties verwijderen uit de tabel wp_options.
Dit is de afsluiting van onze 4e stap in de zoektocht naar een snellere en schaalbare WordPress-website.
Laat een reactie achter