Versnel WordPress caching en databaseoptimalisatie

Een van de meest populaire gesprekspunten in de WordPress-community is het versnellen van WordPress en het optimaliseren van webpagina's. Ik denk niet dat er een WordPress-blog is zonder het artikel 'X Tips om WordPress te versnellen'. Begrijp me niet verkeerd, het is een goede zaak. Maar we hebben betere artikelen over dit onderwerp nodig in plaats van saaie plugin-ritten.

Dit lijkt misschien weer een andere handleiding voor 'tips voor het versnellen van WordPress', maar in deze driedelige serie gaan we door elk aspect van het optimaliseren en versnellen van je WordPress-website..

Laten we beginnen met het meest populaire en waarschijnlijk het gemakkelijkste: caching.

Caching in WordPress

Ik denk dat het veilig is om te zeggen dat dit het populairste onderwerp is als het gaat om het versnellen van WordPress. Toegegeven, dit komt door de populaire en eenvoudig te gebruiken cache-plug-ins van WordPress, maar het is ook een van de fundamentele technieken om het laden van de database te verminderen en WordPress-websites te versnellen.

We gaan terug naar caching-plug-ins, maar laten we kijken naar de twee soorten caching: server-side caching en client-side caching.

Caching aan de clientzijde

Caching aan de clientzijde is het type caching dat de browsers van uw bezoekers doen. Dat betekent dat wanneer bezoekers naar uw website komen, hun browsers gegevens van bepaalde delen van uw pagina's zullen opslaan. Hoewel browsers sommige gegevens automatisch cachen (zoals het cachen van JavaScript- en CSS-bestanden), kunnen we wat meer afstemmen met behulp van .htaccess bestanden.

Door het .htaccess bestand, ik bedoel het toevoegen van de header "Expires" erin. U hebt misschien de term 'browsercaching gebruiken' gezien omdat deze vaak wordt gebruikt in tutorials voor 'website-optimalisatie', en dit is een criterium van hoge prioriteit in de Google PageSpeed-service.

Gelukkig hoeven we niet zelf met deze headers te komen - er is genoeg code beschikbaar om op internet te worden "geleend". Ik vind die in de HTML5 Boilerplate leuk, waar de headers worden verdeeld door categorieën van bestandstypen:

# ------------------------------------------------- ----------------------------- # | Verloopt headers | # ------------------------------------------------- ----------------------------- # Serveer middelen met veel-toekomstige verloopt headers. # BELANGRIJK: als u versiebeheer niet beheert met op bestandsnaam gebaseerde cache # -botsing, overweeg dan het verlagen van de cachetijden naar iets als een week.  VerlooptActive on ExpiresDefault "access plus 1 maand" # CSS ExpiresByType text / css "toegang plus 1 jaar" # Data uitwisseling VerlooptByType applicatie / json "toegang plus 0 seconden" ExpiresByType application / ld + json "toegang plus 0 seconden" ExpiresByType application / vnd .geo + json "toegang plus 0 seconden" ExpiresByType application / xml "access plus 0 seconds" ExpiresByType text / xml "access plus 0 seconds" # Favicon (kan niet worden hernoemd!) en cursor images ExpiresByType image / x-icon "access plus 1 week "# HTML componenten (HTCs) VerlopenByType tekst / x-component" toegang plus 1 maand "# HTML ExpiresByType text / html" toegang plus 0 seconden "# JavaScript ExpiresByType application / javascript" toegang plus 1 jaar "# Manifest files ExpiresByType application / manifest + json "access plus 1 jaar" ExpiresByType application / x-web-app-manifest + json "toegang plus 0 seconden" ExpiresByType text / cache-manifest "toegang plus 0 seconden" # Media ExpiresByType audio / ogg "toegang plus 1 maand "ExpiresByType image / gif" access plu s 1 maand "ExpiresByType image / jpeg" toegang plus 1 maand "ExpiresByType image / png" toegang plus 1 maand "ExpiresByType video / mp4" toegang plus 1 maand "ExpiresByType video / ogg" toegang plus 1 maand "ExpiresByType video / webm" toegang plus 1 maand "# Web feeds ExpiresByType application / atom + xml" access plus 1 uur "ExpiresByType application / rss + xml" access plus 1 uur "# Web fonts ExpiresByType application / font-woff" access plus 1 maand "ExpiresByType application / font -woff2 "toegang plus 1 maand" ExpiresByType application / vnd.ms-fontobject "toegang plus 1 maand" ExpiresByType application / x-font-ttf "toegang plus 1 maand" ExpiresByType font / opentype "toegang plus 1 maand" ExpiresByType image / svg + xml "toegang plus 1 maand"  

Plaats deze regels code in uw .htaccess bestand en je bent klaar om te gaan!

Server-side caching

Als het gaat om server-side caching in WordPress, kunnen we het hebben over vier belangrijke soorten caching: caching van pagina's, caching van databases, caching van objecten en caching van opcode (operatiecode). Sourav Kundu legt dit uit in zijn artikel bij WP Explorer, maar laten we samenvatten:

  1. Pagina Caching: In wezen voert WordPress uw pagina's uit door databases te doorzoeken en de resultaten te laden. Bij pagina-caching wordt elke pagina opgeslagen als HTML-bestanden in de lokale opslag van de server (harde schijf of RAM) en worden de HTML-bestanden gebruikt die overeenkomen met uw pagina's telkens wanneer uw bezoekers uw website bezoeken.
  2. Database Caching: Hoewel databases de "hersens" zijn van een WordPress-website waar alle gegevens worden opgeslagen, is het niet erg effectief wanneer WordPress dezelfde niet-veranderende query telkens opnieuw maakt op elke pagina en voor elke bezoeker. Databasecaching slaat de resultaten van deze query's op en levert deze weer, en ververst de resultaten wanneer een wijzigingsquery wordt gemaakt.
  3. Object Caching: Dit is een interne API van WordPress waarmee plug-ins gegevens van dure query's in het geheugen kunnen opslaan. Het is een beetje irrelevant voor onze serie - misschien gaan we dit in een aparte tutorial in de toekomst bekijken.
  4. Opcode Caching: Net zoals je bloem, water, eieren, suiker en zo nodig toevoegt, elke keer als je een cake bak, zijn de codes in je PHP-bestanden instructies om te "compileren" en je verzoeken te maken. Opcode caching is het soort caching dat de gecompileerde code opslaat, waardoor het proces aanzienlijk versnelt.

WordPress Plug-ins bij cachen

Onze belangrijkste hoofdstukken zijn de aspecten van het versnellen van WordPress, dus het kan een afwijkend onderwerp zijn om plug-ins te beoordelen. Toch is het een goed idee om in elk hoofdstuk enkele plug-ins te bespreken. Wat betreft caching, ik weet dat je de twee populairste plug-ins al kent:

  1. WP Super Cache: Dit is de meest populaire cacheplugin voor WordPress, met meer dan 6 miljoen downloads en een 4,2 sterren terwijl ik dit artikel schrijf. Simpel gezegd werkt WP Super Cache door het genereren van statische HTML-bestanden van uw pagina's en deze te vernieuwen met een interval dat u instelt (standaard een uur). Dit werkt als magisch uit de doos, zelfs in gedeelde hosts, maar is misschien niet genoeg voor websites met veel verkeer.
  2. W3 Total Cache: De W3 Total Cache is de op een na populairste plug-in met bijna 4 miljoen downloads en een 4,5-sterrenwaardering. Het is een plug-in die meer geschikt is voor websites met veel verkeer die lopen vanuit een VPS of een betere hostingomgeving. Met zijn uitgebreide reeks instellingen en ondersteuning voor krachtige cacheopties, is het misschien de beste oplossing voor u als u weet wat u doet. Als u echter niet bekend bent met het jargon in de instellingen, kunt u het net zo goed standaard gebruiken en geen opties wijzigen, anders breekt u mogelijk uw front-end.

Optimalisatie van de database in WordPress

Databases zijn het 'brein' van uw website: ze slaan de waardevolle gegevens op die u op uw pagina's laat zien. Statische HTML-websites slaan hun gegevens op in de pagina's, maar inhoudbeheersystemen moeten vertrouwen op databases (SQL, NoSQL, XML, JSON en dergelijke) om onze gegevens op te slaan. WordPress is niet anders: het gebruikt MySQL om de statische en dynamische inhoud samen met uw website-informatie, WordPress-instellingen, gebruikersgegevens enzovoort op te slaan..

Databases zijn een krachtige standaard om uw gegevens te behouden, dienen en wijzigen, maar als u ze verkeerd gebruikt en vergeet ze te onderhouden, kunnen ze dik en opgeblazen. En zoals elke andere software, heeft WordPress ook onderhoud nodig. WordPress bouwt niet te veel druk op in de database, maar dat betekent niet dat het uw website niet vertraagt.

U moet uw postrevisies, trashs van berichten, pagina's, opmerkingen, enz. En alle andere soorten "oude" gegevens in de gaten houden. En zo nu en dan moet u uw "database-overhead" controleren, die vaak wordt vergeleken met het defragmenteren van de harde schijf of het veranderen van de olie van uw auto.

Het is mogelijk om deze allemaal handmatig te onderhouden: u kunt uw prullenbak leegmaken, de functie "revisies" leegmaken, spamcommentaar verwijderen en de overhead van de database optimaliseren door u aan te melden bij phpMyAdmin, maar dat is geen geoptimaliseerde techniek voor database-optimalisatie. In plaats daarvan kunt u een WordPress-plug-in gebruiken om al het werk te doen.

Er zijn meer dan een paar plug-ins waarmee u uw database met één klik of zelfs automatisch kunt optimaliseren. Degene die ik het leukste vind, is WP-Optimize: Het ruimt uw database automatisch op en optimaliseert deze zonder enige moeite.

WP-Optimize vermeldt de belangrijkste functies als volgt:

  • Verwijdering van oude postrevisies
  • Verwijdering van oude niet-goedgekeurde en spam-opmerkingen
  • Verwijdering van verwijderde opmerkingen verwijderen
  • Verwijdering van Akismet-metadata uit opmerkingen
  • Verwijdering van andere oude metagegevens uit opmerkingen
  • Geschikt voor mobiele apparaten, nu kunt u uw site onderweg optimaliseren
  • Verwijdering van alle trackbacks en pingbacks
  • Automatisch opstellen van berichten
  • Verwijdering van tijdelijke opties
  • Verwijder de post prullenbak
  • Automatisch opschonen van alle geïntegreerde opties (gebruikt ook retentie indien ingeschakeld)
  • Mogelijkheid om geselecteerde aantal weken gegevens bij het opruimen te behouden
  • Optie om een ​​link toe te voegen of te verwijderen op de wp-beheerbalk.
  • Schakel wekelijkse planning van optimalisatie in / uit
  • Oorspronkelijke WordPress MySql-optimalisatie-opdrachten toepassen op uw databasetabellen zonder phpMyAdmin of een handmatige query.
  • Toon databasetabelstatistieken. Toont hoeveel ruimte kan worden geoptimaliseerd en hoeveel ruimte is gewist.
  • Alleen ingeschakeld voor beheerders.

Zorg ervoor dat u andere plug-ins voor database-optimalisatie raadpleegt, maar wees niet nalatig met het onderhouden van uw database.

Op naar deel 2

In het volgende deel van de serie zullen we kijken naar de aspecten van compressie en minificatie en CDN's gebruiken om je WordPress-website sneller te maken.

Wat denk je over het versnellen van WordPress? Deel uw mening hieronder in de commentarensectie. En als je het artikel leuk vond, vergeet dan niet om het te delen.