Har du bemærket, at din WordPress-hjemmeside bliver langsommere, jo mere indhold du tilføjer til den? Hvis du har haft en WordPress i længere tid og har tilføjet og fjernet plugins eller skiftet tema kan der ligge en masse ubrugelig data i din database.
En af grundene kan være autoload-funktionen, der henter data fra wp_options-tabellen i databasen. Hvis autoload er sat til “true” for en masse data i denne tabel, kan det have en negativ indvirkning på din hjemmesides ydeevne.
I denne artikel vil vi undersøge, hvordan autoload-funktionen fungerer, og hvorfor det er vigtigt at overveje dens anvendelse, når du optimerer din WordPress-hjemmeside. Vi vil også se på, hvordan du kan identificere og reducere autoload-data for at forbedre din hjemmesides hastighed og brugeroplevelse.
Når autoload-funktionen er aktiveret i WordPress, henter systemet automatisk data fra wp_options-tabellen i databasen og indlæser det i hukommelsen hver gang en side eller indlæg indlæses. Hvis autoload er sat til “true” for en stor mængde data i denne tabel, kan det føre til unødvendig belastning af serveren og dermed nedsat ydeevne.
Denne ulempe er især udtalt, hvis du bruger en del af de tusindvis af plugins, der er tilgængelige til WordPress, og som ofte gemmer deres data i wp_options-tabellen. For eksempel kan en enkelt plugin tilføje flere rækker af autoload-data, hvilket resulterer i en langsom sideindlæsningstid, især når du har mange plugins installeret.
Det er derfor vigtigt at overveje, om autoload-funktionen er nødvendig for alle de data, der gemmes i wp_options-tabellen, og om du kan reducere eller begrænse antallet af autoloadede data for at forbedre din hjemmesides hastighed og ydeevne.
Hvorfor er det et problem?
Hvorfor det kan give mening for et plugin eller tema at sætte autoload=true, afhænger af, hvor ofte og hvornår dataen i wp_options-tabellen bliver brugt. Hvis dataen er nødvendig for at udføre en vigtig funktion, der ofte bruges på din hjemmeside, kan det give mening at autoloade den for at undgå forsinkelser i datahentningen.
For eksempel kan et plugin til e-handel have brug for at gemme information om produkter, kategorier, priser og andre oplysninger i wp_options-tabellen for at kunne vise dem på din hjemmeside. Hvis autoload-attributten er sat til “false”, kan det føre til en langsom sideindlæsning, når en besøgende søger efter et produkt eller kategori, da dataen først skal indlæses i hukommelsen. I dette tilfælde kan det give mening at sætte autoload=true for de nødvendige data.
I de fleste tilfælde er der tale om en programmør, der ikke er klar over, at autoload=true kan skabe problemer. Dette skyldes ofte en kombination af begrænset viden om databaser og mangel på opmærksomhed på optimering af ydeevnen i deres WordPress-kode.
Standard funktionalitet i WordPress når man bruger add_option() eller update_option() er at sætte autoload til true. Dette skyldes, at WordPress antager, at de fleste options vil blive brugt regelmæssigt og derfor bør indlæses automatisk for at forbedre ydeevnen. Men hvis programmøren ikke specifikt fortæller WordPress, at en værdi ikke skal autoloades, så kan dette skabe et problem.
Hvordan kan jeg identificere autoload options
Når du vil identificere, hvilke data der autoloades fra wp_options-tabellen, kan du bruge et plugin som Query Monitor eller New Relic. Disse plugins giver dig mulighed for at analysere alle databaseforespørgsler og identificere, hvilke data der autoloades og hvor meget hukommelse de fylder.
Her er et eksempel på en SQL-query, der henter data fra wp_options-tabellen og beregner, hvor meget data der autoloades:
SELECT COUNT(*) AS `total_autoload_options`, SUM(LENGTH(`option_value`)) AS `total_autoload_size_bytes`, ROUND(SUM(LENGTH(`option_value`))/1024, 2) AS `total_autoload_size_kb`, ROUND(SUM(LENGTH(`option_value`))/(1024*1024), 2) AS `total_autoload_size_mb` FROM `wp_options` WHERE `autoload` = 'yes';
Denne query tæller antallet af rækker i wp_options-tabellen, hvor autoload-attributten er sat til “yes” og beregner også størrelsen på disse rækker i bytes, kilobytes og megabytes.
Når du kører denne query, vil du få et resultat, der viser antallet af autoloadede options, størrelsen på disse options i bytes, kilobytes og megabytes.
Dette kan hjælpe dig med at identificere, hvor meget plads dine autoloadede data optager i din database og dermed beslutte, hvilke data der skal fjernes eller optimeres for at forbedre din WordPress-hjemmesides hastighed og ydeevne.
Her er et eksempel hvor der kun indlæses 0.5mb, og det kan betragtes som en god størrelse. Der er ikke nogen fast regel, men alt over 1mb bør der kigges på med det samme.
I det næste eksempel indlæses der 1.5mb hver gang.
Bemærk også i de to eksempler at det er stort set det samme antal options der indlæses, men der er en markant forskel i hvor meget data der indlæses rent faktisk fylder.
Her er nogle eksempler på kendte options med autoload=true, der fylder meget, samt plugins, der er kendt for at være tunge:
- WPML (WordPress Multilingual Plugin): Dette plugin er kendt for at være meget tungt og kan medføre en betydelig belastning af din WordPress-database. WPML autoloadede options fylder typisk meget i wp_options-tabellen.
- WooCommerce: Som en af de mest populære e-handelsløsninger til WordPress, autoloadede options fylder også meget i wp_options-tabellen, hvilket kan resultere i langsom sideindlæsning og nedsat ydeevne, især hvis der er mange produkter og kategorier.
- Yoast SEO: Yoast SEO-pluginnet er et af de mest populære SEO-plugins til WordPress. Men det autoloadede options fylder også meget i wp_options-tabellen og kan medføre forsinkelser i sideindlæsning, især hvis der er mange indlæg og sider.
- NextGEN Gallery: NextGEN Gallery-pluginnet er en populær løsning til at oprette og administrere fotogallerier på din WordPress-hjemmeside. Men de autoloadede options fylder også meget i wp_options-tabellen og kan påvirke sidehastigheden.
- Revolution Slider: Revolution Slider-pluginnet er en populær løsning til at oprette bannere og diasshow på din WordPress-hjemmeside. Men de autoloadede options fylder også meget i wp_options-tabellen og kan påvirke sidehastigheden.
Det er vigtigt at huske på, at selvom disse plugins kan være tunge, kan de stadig bruges på din WordPress-hjemmeside, hvis de er konfigureret korrekt og optimeret til ydeevne.
Autoloaded data kan være noget der kræver en oprydning på din hjemmeside, og kan være en stor hjælp til at forbedre hastigheden og det er noget som et cache plugin ikke kan afhjælpe.
Advanced Database Cleaner til WordPress
Meow Apps's Advanced Database Cleaner er et WordPress-plugin, der hjælper med at rense din WordPress-database for unødvendige data, hvilket kan forbedre hastigheden og ydeevnen på din hjemmeside.
Pluginnet giver dig mulighed for at slette forskellige typer data fra din database, inklusive autoloadede options, revisions, spam-kommentarer og trashed-indlæg. Det giver også mulighed for at slette data fra andre tredjeparts-plugins og temaer, som du ikke længere bruger.
Der er en gratis version af pluginnet du kan prøve af, men det er et godt plugin. Den lave pris er både værd for de ekstra features du får, men du støtter også udvikleren.
Advanced Database Cleaner har en intuitiv brugergrænseflade, der gør det nemt at vælge de data, du vil slette, og giver dig også mulighed for at tage backup af din database, før du sletter noget.
Når du har identificeret de autoloadede data, kan du begynde at optimere ved at ændre autoload-attributten til “false” for de data, der ikke er nødvendige at indlæse på hver sideindlæsning. Dette kan gøres manuelt ved at redigere wp_options-tabellen direkte eller ved hjælp af et plugin som WP Optimize eller WP-CLI.
Når det kommer til at optimere en WordPress hjemmeside, kan det være svært at vurdere, hvor meget en option vil påvirke ydeevnen, hvis den ikke autoloades. På den ene side kan en option indeholde en stor mængde data, der vil tage tid at indlæse, hvilket kan føre til en forringelse af sideindlæsningstiden. På den anden side kan det også ske, at en option indeholder en lille mængde data, der er specifik for en enkelt side, og som ikke vil have nogen signifikant påvirkning på ydeevnen, hvis den ikke autoloades.
Det er ikke farligt at sætte autoload=no – du ødelægger ikke din hjemmeside.
Når man deaktiverer autoload for en option i WordPress, betyder det ikke, at dataene i optionen ikke længere er tilgængelige. Det betyder simpelthen, at de ikke vil blive indlæst automatisk, når WordPress indlæser sin standarddata og -indstillinger.
Hvis en plugin eller et tema har brug for en bestemt option, der ikke er autoloadet, bliver disse data stadig indlæst, dog ved at udføre et separat databasekald, der specifikt spørger efter den pågældende option. Dette betyder dog, at det kan føre til en lille forsinkelse i sideindlæsningstiden. Dette skal ses i forhold til resten af hjemmesiden.
Ikke desto mindre kan det ekstra databasekald være det værd i forhold til den samlede ydeevne på hjemmesiden. Hvis optionen kun er relevant for en bestemt del af hjemmesiden, og ikke er nødvendig for at generere alle sider på hjemmesiden, kan det være mere effektivt at undgå autoload. På denne måde undgår man at indlæse unødvendig data på hver side, samtidig med at man sikrer, at de relevante data stadig er tilgængelige, når de er nødvendige.
Det er også vigtigt at bemærke, at WordPress og dets plugins og temaer allerede udfører mange databasekald for at hente den nødvendige data, der skal bruges til at generere en side, så et ekstra database kald her og der kan være det værd i forhold til at overall reducere mængden af data.
Er der nogen måde at automatisere oprydning af WordPress Options-tabellen?
Ja, der er forskellige måder at automatisere oprydning af WordPress Options-tabellen på. En af de mest almindelige metoder er at bruge plugins, der kan hjælpe med at rydde op i tabellen på en regelmæssig basis.
Et af de mest populære plugins til dette formål er WP-Optimize. Dette plugin fungerer ikke kun som en databaseoptimeringsløsning, men det kan også slette gamle revisions, spam kommentarer og post revisions, der ligger i din database. Derudover kan det også rydde op i wp_options tabellen.
Når du har installeret og aktiveret WP-Optimize, kan du nemt rydde op i wp_options tabellen ved at vælge “Options” i plugin menuen og klikke på “Clean Options”. Herefter vil pluginnet scanne din WordPress installation efter for ubrugte eller forældede options og give dig mulighed for at slette dem.
En anden mulighed er at bruge et andet plugin kaldet Advanced Database Cleaner. Dette plugin giver dig mere kontrol over de tabeller, der ryddes op i, og giver dig mulighed for at vælge specifikke tabeller eller indholdstyper, der skal renses. Du kan også planlægge en regelmæssig oprydning af tabellerne ved hjælp af pluginets tidsplanfunktion. Det er en simpel indstilling du kan slå til i et ganske brugervenligt interface.
Som alt andet, er alt arbejde med MySQL noget du skal være påpasselig med, og hvis du ikke føler dig hjemme eller er usikker kan du let komme til at lave ulykker. Sørg for at have taget en backup.
Ved at reducere autoload-dataene på din WordPress-hjemmeside, vil du kunne forbedre sideindlæsningstiden, reducere serverbelastningen og skabe en bedre brugeroplevelse for dine besøgende.