Gå til innholdet

Cookie-innstillinger

Velg hvilke typer cookies du tillater. Du kan når som helst endre valget via Cookie-innstillinger nederst på hver side. Personvernerklæring

Nødvendige

Alltid på

Trengs for å logge inn, beholde handlekurven og huske valgene dine. Disse er alltid på.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: økten din og at du forblir innlogget
  • weboke_basket: handlekurven din
  • wkBtwIncl: visning av priser med eller uten mva.
  • wok_cookies: cookievalget ditt, 12 måneder

Måler hvilken annonse som fører til et besøk eller en bestilling, slik at vi ikke betaler for annonser som ikke gir noe.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), opptil 90 dager
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: hvilken partner som henviste deg til oss (partnerprogram), 60 dager

4,6

Land og språk

Hvert land har sin egen nettside, med priser og mva. for det landet.

Vis

Bilder, PHP og andre hastighetsgevinster

Modul 6: Hastighet · Lesetid: 9 minutter

Læringsmål: Etter denne leksjonen kan du gjennomføre de største gjenværende hastighetsgevinstene og måle effekten av dem.

Nøkkelbegreper: bildeoptimalisering, WebP og AVIF, lazy loading, LCP-bildet, fetchpriority, PHP-versjon, rydde database (revisjoner, transients, autoload), WP-Cron, ekte cron, DISABLE_WP_CRON, eksterne skrifttyper, Heartbeat

Jobb i riktig rekkefølge

Etter en sidecache (leksjon 6.2) er dette gevinstene som gir mest, omtrent i rekkefølge etter innsats mot effekt:

  1. bilder i orden;
  2. en oppdatert PHP-versjon;
  3. færre eksterne elementer og tunge utvidelser;
  4. en ryddet database;
  5. planlagte oppgaver på en ekte cron.

Mål før og etter hvert steg (leksjon 6.1), ellers vet du ikke hva som hjalp. Og gjør én ting om gangen.

Bilder: den største gevinsten i nettleseren

På de fleste sider utgjør bilder den største delen av det en besøkende laster ned. Det du lærte i leksjon 4.4, lønner seg her:

  • Riktig størrelse: last ikke opp større enn nødvendig, og la WordPress tilby mindre formater via srcset.
  • Komprimering og format: WebP er vanligvis betydelig mindre enn JPEG ved samme kvalitet; AVIF er ofte enda mindre. En utvidelse kan konvertere eksisterende bilder og gi den mindre versjonen til nettlesere som støtter det. Kontroller om konverteringen skjer på din egen server eller hos en ekstern tjeneste.
  • Lazy loading, men ikke for alt. WordPress gir bilder automatisk loading="lazy", bortsett fra det første store bildet øverst. Det bildet er ofte LCP-elementet (leksjon 6.1): det største innholdet den besøkende ser først. Hvis det lastes lazy, venter nettleseren nettopp med det, og LCP-en din blir dårligere. WordPress gir derfor ofte LCP-kandidaten fetchpriority="high", slik at nettleseren henter det først.
<img src="hero-1536x864.webp" width="1536" height="864"
     fetchpriority="high" alt="Verksted med sykler på rad">
<img src="team-768x512.webp" width="768" height="512"
     loading="lazy" alt="Teamet foran butikken">

En fallgruve: noen temaer, sidebyggere og optimaliseringsutvidelser setter lazy loading også på det første bildet, eller laster det store bildet som bakgrunn via CSS (det oppdages senere). I PageSpeed Insights ser du under LCP-delen hvilket element det er, og om det lastes lazy.

PHP: gratis hastighet

Hver ny hovedversjon av PHP er raskere enn den forrige, og WordPress-nettsteder drar nytte av det direkte, uten å endre noe på nettstedet ditt. I tillegg slutter gamle versjoner å få sikkerhetsoppdateringer (leksjon 8.4). Hvis du bytter versjon, kontroller at utvidelsene og temaet ditt støtter den nye versjonen, og gjør det helst først i et testmiljø (staging).

Se også på dette i PHP-innstillingene:

  • OPcache: er slått på som standard hos de fleste webhotell. En konsekvens: en endret PHP-fil kan ta litt tid før PHP bruker den nye versjonen.
  • memory_limit: for lav gir feil ved tunge sider; svært høy gjør ikke nettstedet raskere.

Eksterne elementer og tunge utvidelser

Hvert element fra en annen part er en ekstra tilkobling og en ekstra ventetid: skrifttyper fra en ekstern tjeneste, en innebygd video, en chat-widget, målekoder, sosiale medier-knapper, et kart. Spørsmål per element:

  • Er det nødvendig? En video som nesten ingen spiller av, kan like gjerne være et bilde med en lenke.
  • Kan det være lokalt? Skrifttyper kan du som regel legge på din egen server (med en utvidelse eller via theme.json ved et blokktema). Det sparer en tilkobling og er bedre for personvernet (leksjon 9.3).
  • Kan det komme senere? En chat-widget eller video kan lastes først etter et klikk.

For utvidelser hjelper det å måle med X-Ray (ved webhotell med CloudLinux) eller med en utvidelse som Query Monitor (slå på midlertidig, kun synlig for administratorer). De viser hvilken utvidelse som koster mest databasespørringer eller tid.

Rydde i databasen

En database vokser med ting du ikke ser:

  • Revisjoner (leksjon 4.1): hver lagrede versjon av hver side. Begrens dem med WP_POST_REVISIONS og rydd opp gamle.
  • Spam- og papirkurv-kommentarer, og innlegg i papirkurven.
  • Transients: midlertidige data fra utvidelser i wp_options, som noen ganger ikke blir ryddet opp.
  • Autoload: innstillinger i wp_options med autoload på blir lastet i sin helhet ved hver forespørsel. Utvidelser du for lengst har fjernet, etterlater seg noen ganger store mengder data her. Nettstedshelse (leksjon 5.4) varsler hvis autoload-dataene er svært store.
  • Loggtabeller fra utvidelser (statistikk, sikkerhetslogger, e-postlogger) som aldri blir tømt.

Opprydding kan gjøres med en opprydningsutvidelse, med WP-CLI (wp transient delete --expired, wp post delete $(wp post list --post_type=revision --format=ids) --force), eller med optimaliseringsfunksjonen i phpMyAdmin for tabellene selv. Alltid en sikkerhetskopi først. Fjern ikke noe du ikke vet hva er.

Planlagte oppgaver: WP-Cron

WordPress har oppgaver som må kjøre på et tidspunkt: publisere et planlagt innlegg, sjekke etter oppdateringer, la en sikkerhetskopi-utvidelse jobbe. Dette kalles WP-Cron. Som standard kjører ikke WP-Cron på en klokke, men ved et besøk: ved hver sideforespørsel sjekker WordPress om en oppgave er klar. To ulemper:

  • Ved få besøkende kjører oppgaver for sent (et planlagt innlegg vises først ved første besøk etterpå).
  • Ved mange besøkende sjekkes det svært ofte, og en tung oppgave kan nettopp forsinke siden til en besøkende.

Bedre: slå av WP-Cron ved besøk og la en ekte cronjobb på serveren kjøre den hvert femte eller tiende minutt. I wp-config.php (over "det er nok, ikke rediger under dette"):

define( 'DISABLE_WP_CRON', true );

Og i cron-skjermen i kontrollpanelet ditt for hosting, en oppgave hvert 10. minutt:

*/10 * * * *  /usr/local/bin/php /home/gebruiker/domains/example.com/public_html/wp-cron.php >/dev/null 2>&1

Stien til PHP og til nettstedet ditt varierer fra webhotell til webhotell; se i veiledningen for kontrollpanelet ditt. Eller bruk WP-CLI: wp cron event run --due-now. Kontroller etterpå i Nettstedshelse at ingen planlagte oppgaver henger etter.

Heartbeat og administrasjonen

Kontrollpanelet i WordPress snakker, så lenge det er åpent, med serveren hvert 15. til 60. sekund (Heartbeat): for autolagring, for å melde at noen andre redigerer det samme innlegget, og for varsler. Lar du ti faner med administrasjonen stå åpne hele dagen, blir det tusenvis av forespørsler. Lukk faner du ikke bruker. Enkelte cache-utvidelser kan forsinke Heartbeat; å slå den helt av er ikke nødvendig og ødelegger autolagringen.

Oppsummering

  • Etter sidecachen: bilder, PHP-versjon, eksterne elementer og utvidelser, database, cron. Mål før og etter, ett steg om gangen.
  • Lazy loading for alt bortsett fra det store bildet øverst; det bør heller få fetchpriority="high".
  • En nyere PHP-versjon er gratis hastighet, forutsatt at utvidelsene dine følger med.
  • Rydd opp revisjoner, transients, spam og store autoload-data, alltid med en sikkerhetskopi.
  • Sett WP-Cron på en ekte cronjobb med DISABLE_WP_CRON og en oppgave i kontrollpanelet ditt.

Quiz

1. Hvorfor bør det store bildet øverst på siden ikke lastes lazy?



2. Planlagte innlegg dukker opp timer for sent på et rolig nettsted. Hva er årsaken og løsningen?



3. Hva er «autoload» i wp_options, og hvorfor kan det gjøre et nettsted tregere?



4. Hva er et godt argument for å legge skrifttyper på din egen server i stedet for hos en ekstern tjeneste?



Oppgave

Oppgave A6.3: Lazy loading og formater på forsiden din. Fyll inn adressen til nettstedet ditt. Programmet leser forsiden og ser på bildene: mangler det første store bildet loading="lazy" (og helst har fetchpriority="high"), har bildene lenger ned lazy loading, og hvor stor andel av bildene er WebP eller AVIF?

Oppgave A6.3: Lazy loading og bildeformater på forsiden


Det du fyller inn, og det vi finner, lagrer vi ikke. Nettleseren din husker svarene dine og om du har bestått oppgaven. Er du logget inn, lagrer vi kun at du har (nesten) bestått oppgaven i Mine kurs; der kan du også slette det.

Oppgave D6.3: Før og etter. Mål en side på nettstedet ditt tre ganger i PageSpeed Insights (mobil) og noter den midterste LCP-en, INP-en (eller labverdien Total Blocking Time hvis det ikke finnes felt-data), CLS og TTFB-en fra oppgave A6.1. Gjennomfør deretter én forbedring fra denne leksjonen (bilder, PHP-versjon, fjern et eksternt element, rydd database eller en ekte cron). Mål på nytt tre ganger og noter de nye verdiene. Beskriv hva du gjorde, og om forskjellen er større enn den vanlige svingningen mellom målinger.

Oppgave D6.3: Før og etter

Denne oppgaven gjør du selv; ingen kontrollerer den. Kryss av det du har gjort, og merk oppgaven som fullført.




Avkrysningene og notatene dine blir kun i denne nettleseren; vi sender dem ikke noe sted. Er du logget inn, lagrer vi kun i Mine kurs at du har gjort oppgaven.

Les mer

Disse artiklene beskriver stegene i kontrollpanelene til WebOké; i andre kontrollpaneler fungerer de på lignende måte.

Et øyeblikk …

Sett opp domenene dine

Ordne for hvert domene navnetjenerne, koblingen til hostingen din og hvem som blir innehaver.

Laster inn domenene dine…