Når det kommer til WordPress-websteder, kan ikke alle behandles ens, med hensyn til hvad der bedst virker. Et simpelt WordPress-websted på fem sider opfører sig helt anderledes end et stort WooCommerce-websted (hvilket kan være meget krævende). WordPress medlemskab og community sites er en anden type, der falder ind i det, vi undertiden kalder en “tricky” kategori. Hvis ikke det er konfigureret korrekt, vil du snart finde dig selv i et mareridt på 500 fejl, nedetid og langsomme sidebelastninger. Men det betyder ikke, at du ikke har muligheder. Du skal bare følge nogle bedste praksis.
I dag vil vi udforske nogle af de ting man skal- og ikke skal for WordPress medlemskabswebsteder og hvordan man optimerer dem bedst for at sikre optimal ydeevne, skalerbarhed og lang levetid. 🚀
- Eksempler på medlemskabswebsteder
- Hvorfor WordPress Medlemskabswebsteder er forskellige
- Hvad man skal gøre for WordPress Medlemskabswebsteder
- Hvad man ikke skal gøre for WordPress Medlemskabswebsteder
Eksempler på medlemskabswebsteder
Her er blot nogle få eksempler på nogle almindelige WordPress-medlemskab- og fællesskabssider:
- Et websted bygget op omkring et Learning Management System (LearnDash, Lifter LMS), som sælger digitale kurser til sine medlemmer. Disse bliver virkelig populære på det seneste og der er nogle gode LMS-plugins derude!
- Et forumbaseret (bbPress eller BuddyPress) WordPress-websted primært anvendt af medlemmer til at diskutere forskellige emner.
- Et medlemskabswebsted bygget på et af de mange populære all-in-one tredjeparts medlemskab plugins (MemberPress eller Ultimate Membership Pro).
- Et socialt netværksfokuseret community site (PeepSo).
- Nogle kan også omfatte e-handelsløsninger som WooCommerce og Easy Digital Downloads som medlemskabswebsteder, da mange af disse har brugerprofiler og fællesskabsfunktioner.
Hvorfor WordPress Medlemswebsteder er forskellige
Før vi hopper ind i gør og ikke gør, lad os dykke ind i nogle få grunde til, at WordPress-medlemskabswebsteder er forskellige fra din standardblog eller website for små virksomheder.
1. Uncacheable indhold
Først og fremmest indeholder medlemskabswebsteder meget Uncacheable indhold og sider, der løbende ændrer sig. Ting som login-siden for medlemmerne af fællesskabet (som kunne blive ramt konstant afhængigt af webstedets størrelse), checkoutsider for digitale varer eller kurser og diskussionsfora er almindelige syndere og smertepunkter, da disse ikke typisk kan cachelagres.
Men det slutter ikke der. På standard WordPress-websteder er WordPress dashboard heller ikke cachelagret for brugere der er “logget ind”. Det er fint, når du har nogle få forfattere og admins, men når du pludselig har tusindvis af medlemmer, der bruger instrumentbrættet, forårsager dette straks præstationsproblemer, da ingen af det kan tjene fra cachen på serveren. Det betyder, at du har brug for magt og arkitektur bag kulisserne for at sikkerhedskopiere det. Delt hosting-udbydere vil som regel bukke under for disse omstændigheder.
I MyKinsta-analyseværktøjet’, som vi leverer til hosting-kunder, kan du se, hvor meget cache der bliver omgået. Nedenfor er et eksempel på et websted, hvor et stort flertal af anmodningerne ikke tjener fra cache.
2. Et stort antal samtidige besøgende
Det andet problem som medlemskab websteder typisk har, er et stort antal samtidige besøgende og sessioner. På et informativt eller en virksomheds WordPress-websted, kan en besøgende forblive i fem eller 10 minutter, indtil de finder det, de har brug for (og dette er et højt antal, normalt er antallet af afvigelser meget højere). På medlemskabswebsteder har du det modsatte. Besøgende kommer typisk til stedet for at engagere sig i noget eller nogen. Hvis de går igennem et online kursus, er det ikke usædvanligt, at de bliver i timevis. Du kan se, hvor dette bærer hen. De samtidige besøgende, der er forbundet med din WordPress-vært, bliver hurtig mange.
For at gøre det værre, har du så mange samtidige besøgende på toppen af “uncacheable indhold” problemet.
3. Komplekse forespørgsler
For det tredje genererer medlemskabswebsteder normalt mere komplekse forespørgsler, som igen tilføjer yderligere ventetid ved hentning af oplysningerne fra MySQL-databasen. Meget af dette skyldes simpelthen alle de yderligere bevægelige dele og store mængder af datasider som disse har. Dette kan også skyldes websteder, der er stærkt afhængige af søgeforespørgsler til navigation eller bruger WP_Query.
For ikke at nævne, har du også store mængder af samtidige brugere, der løbende benytter databasen.
4. Gem en masse data
Det er ikke rigtig overraskende, men medlemskabswebsteder gemmer en masse data, og hvis det ikke lykkes ordentligt (som vi vil gå længere ind under), kan din diskplads hurtigt løbe væk fra dig. Dette også forbindelser i løbet af webstedets levetid. Videoer, kurser, medlemskab og profiloplysninger, diskussioner, digitale downloads osv. Disse er alle kun nogle få af de mange forskellige typer indhold, som hurtigt opbygges.
Ting man skal gøre for WordPress medlemskabswebsteder
Vi er vært for mange medlemskabswebsteder på Kinsta, og vores ingeniører interagerer løbende med disse webstedsejere. Selvom vi altid opfordrer brugere til at implementere bedste webpræstationspraksis, er disse typisk ikke nok, når det gælder disse typer af websteder. Så i dag vil vi vise dig et par måder, at tage et ekstra skridt, for at sikre dit medlemssted og dets besøgende har den bedste oplevelse som muligt.
1. Vælg en præstationsfokuseret WordPress-vært
Rådgivning til at vælge en bedre WordPress-vært kan virke som en brudt rekord på dette tidspunkt, men sandheden om det er, at mange præstationsproblemer med medlemskabswebsteder kan spores tilbage til dette som grundårsagen. Vi har gang på gang set at kunder overflytter til Kinsta fra andre udbydere, og ser straks drastiske forbedringer. Hele vores virksomhed, fra den infrastruktur, vi placerer bag dine websteder, til de ingeniører, vi ansætter, er præstationsorienterede. Dette har og vil aldrig ændre sig.
Quite impressed what @googlecloud and @kinsta can pull of for #WordPress hosting! #DevOps #Cloud #WPDev #webdevelopment pic.twitter.com/Cr7UMaHdpH
— Neuralab (@Neuralab) July 22, 2017
Hvordan Kinsta fremskynder medlemskabswebsteder
Kinsta var den første administrerede WordPress-vært til udelukkende at udnytte Google Cloud Platform. Vi tilbyder 20 forskellige datacentre rundt om i verden, hvilket betyder at du kan vælge den nærmeste til dine besøgende for at reducere latenstid og TTFB. Mens andre værter måske bruger Googles standard tier netværk (billigere og langsommere), bruger vi Googles premium tier netværk. Dette er designet til at minimere afstand og støj, hvilket resulterer i hurtigere sikrere globale transport af dine data.
For at gøre dit WordPress-sted mere sikkert bruger vi også Google Cloud’s firewall på virksomhedsniveau. I modsætning til andre hosts, der strengt bruger softwarebaserede firewalls på webserverniveau, sidder vores primære firewall ved Googles netværkskant uden for vores netværk af virtuelle maskiner. Dette giver os mulighed for at blokere kendt ondsindet trafik, før den går ind i vores netværk, og reducerer belastningen på vores belastningsbalancere og virtuelle maskiner .
Vores hosting platform falder ikke ind i nogen af de traditionelle hosting kategorier, og er meget forskellig fra traditionel delt, VPS eller dedikeret infrastruktur. Kinsta anvender LXD-administrerede værter og orkestreret LXC-softwarebeholdere til hvert websted. Hvad dette betyder er, at hvert WordPress-medlemswebsted er placeret i sin egen isolerede container, som har alle de nødvendige software ressourcer til at køre den (Linux, Nginx, PHP, MySQL). Ressourcerne er 100% private og deles ikke med andre eller endda dine egne websteder.
Hos Kinsta stiller vi Google Cloud’s C2-compute-optimized VM’er tilgængelige for alle vores kunder. C2-familien af maskiner er udstyret med de nyeste Intel Xeon skalerbare processorer, der er i stand til at arbejde med 3,8 GHz vedvarende all-core turbo. Med højtydende C2-maskiner, der driver dit WordPress-medlems-website kan hyppige ikke-cache-anmodninger og databaseforespørgsler være i stand til at udføre hurtigere, hvilket resulterer i en bedre oplevelse for dine besøgende.
Hvert medlems-websted kan også drage fordel af vores skalerbare infrastruktur til bedre at håndtere pludselige stigninger i trafik og belastning. Dette giver dig mulighed for at dyrke dit WordPress-medlemskabswebsted uden at skulle bekymre sig om de fælles begrænsninger og hårde begrænsninger, som andre hostingudbydere håndhæver.
Læs mere om, hvordan Kinsta er anderledes.
2. Udnyt PHP 8.1
Vi kan ikke understrege det nok, hvor vigtigt det er at bruge en af de nyeste versioner af PHP, helst PHP 8.1. For mange websteder kræver dette ikke noget arbejde og er et gratis og øjeblikkeligt løft til ydeevne!
PHP 7.4 understøttes ikke længere hos Kinsta. Bemærk venligst, at vi understøtter PHP-versioner 7.4, 8.0, 8.1, 8.2, 8.3 og 8.4.
Vi udgav vores PHP-præstationsbenchmarks, hvor vi testede PHP 7.2, 7.3, 7.4, 8.0 og 8.1. Som du kan se nedenfor, på et WooCommerce-websted, tager PHP 8.0 præmien for den hurtigste ydeevne! 🍰 Og 8.1 var endnu hurtigere.
Vi testede også Easy Digital Downloads, og igen overgik PHP 8.0 alt andet.
Hvis din nuværende WordPress-host ikke understøtter PHP 8.0 eller højere, er det måske på tide at lede efter en ny host. Kinsta tilbyder og understøtter PHP version 7.4, 8.0, 8.1, 8.2, 8.3 og 8.4. Du kan nemt skifte mellem dem i MyKinsta-dashboardet med et enkelt klik.
Hvis dit medlemswebsted har kompatibilitetsproblemer med den nyeste version af PHP, er det nok tid til at spørge plugin- eller temaudvikler, hvorfor de halter bagud eller hyre din egen WordPress-udvikler for at løse problemet. Du vil ikke sige nej til præstationsforbedringerne fra PHP 8 og højere.
3. Brug Objekt Caching
Caching gør websites hurtigere og reducerer belastningen på webserveren. Uanset om du bruger et cache-plugin eller en administreret vært som Kinsta, der har serverniveau (side) caching implementeret, er det noget, du allerede skal gøre. Men når det kommer til WordPress-medlemswebsteder, er dine almindelige caching-opsætninger normalt ikke nok, da de ikke altid udnytter det fuldt ud. Det er her, hvor objekt caching kommer til spil.
Objektcache gemmer resultaterne af databaseforespørgsler, så næste gang den pågældende bit af data er nødvendig, kan den leveres fra cache uden at spørge databasen. Dette fremskynder PHP-eksekveringstider og reducerer belastningen på din database. Dette bliver ekstremt vigtigt med medlemskabswebsteder! Med WordPress kan du implementere objekt caching på et par forskellige måder:
- En tredjeparts caching løsning som W3 Total Cache
- Redis (anbefales)
- memcached
Vi tilbyder Redis som et tilføjelsesprogram hos Kinsta, så du kan udnytte vedvarende objekt caching for dine medlemswebsteder. Den store nyhed er, når den er konfigureret, kan du stadig bruge indstillingen Clear Cache, der er tilføjet til dit websted admin-område ved Kinsta MU plugin. Denne knap rydder både vores sidecache og enhver genstands caching aktiv på webstedet.
I nogle tilfælde kan vi også cache en bestemt side eller URL for indloggede brugere. Du skal dog først chatte med vores supportteam om dette, da det er vigtigt, at du forstår alle forgreningerne for at muliggøre dette.
4. Forbedre din WordPress-søgning
Som et medlemssted vokser, vil du sikkert opdage, at standard WordPress-søgefunktionalitet ikke vil være nok. Websteder, der stærkt bruger WP_Query, bruger søgning som deres primære navigationsmåde, eller endda et websted med et stort antal indlæg kan muligvis løbe ind i præstationsproblemer, da søgeudviklingstider begynder at hobe op. Det er her, hvor en søgemaskine som Elasticsearch kan hjælpe.
Elasticsearch kan bruges til at fremskynde forespørgslen af WordPress-databasen. Dette gøres ved at opbygge et indeks for indholdet af dit websteds database og derefter bruge Elasticsearch til at søge indekset meget hurtigere end en MySQL-forespørgsel vil kunne udføre samme søgning.
Vi tilbyder Elasticsearch som et tilføjelsesprogram hos Kinsta. Vores ingeniører installerer det på samme server som dit PHP-miljø og MySQL-database, som hjælper med at nedsætte latens i modsætning til hosting i en separat instans eller ved hjælp af hostet Elasticsearch.
5. Opret en Light 404-side
Vi har set førstehånds, at medlemskabswebsteder typisk genererer mange 404 fejl. Dit websted genererer sandsynligvis mere end du tror! Vores MyKinsta-analyseværktøj kan hjælpe dig med at bestemme det nøjagtige beløb (som vist nedenfor).
Du kan også kontrollere 404 fejl i Google Search Console eller installere et tredjeparts plugin som omdirigering, som logger 404 fejl. Husk imidlertid, at plugins som disse også har indflydelse på ydeevnen. Det er meget bedre at stole på et serverniveau værktøj.
Årsagen til at disse fejl er dårlige er, at mange 404 sider er meget ressourceintensive. For et medlemskabswebsted vil du undgå en tung 404-side. Opret en simpel 404-skabelon, der undgår at spørge databasen om muligt, hvis det er muligt. Og selvfølgelig bruge lidt tid og reparer 404 fejlene, da dette ikke kun er ressourceintentivt, det er simpelthen dårligt for brugeroplevelsen.
Ud over at bruge en let 404-side er det også en god ide at tilføje en særlig side-cache-regel til 404 sider. Hvis du er en Kinsta-kunde, behøver du ikke bekymre dig om dette. Vores Nginx-konfiguration cacher 404 sider i 15 minutter. Hvis vi registrerer, at der er oprettet en ny side med den samme URL som en cache 404-side, renser vi cachen efter behov. Hvis dit WordPress-sted ikke har cacheable 404 sider, anbefaler vi, at du samarbejder med din host for at føje denne funktion til din webserver
6. Forøg PHP-arbejdere
PHP-arbejdere kan være et begreb, du aldrig har hørt om, men de er hvor mange værter, herunder Kinsta, der håndterer begrænsende anmodninger (i stedet for at begrænse dig ved CPU eller RAM, hvilket typisk er, hvad de fælles hosting-udbydere gør).
PHP-medarbejdere bestemmer, hvor mange samtidige anmodninger dit websted kan håndtere på et givet tidspunkt. For at sige det enkelt, håndteres hver ubearbejdet anmodning til dit websted af en PHP-medarbejder. Hvis du f.eks. Har 4 anmodninger, der kommer til dit websted på nøjagtig samme tid, og dit websted har 2 PHP-medarbejdere, bliver to af disse anmodninger behandlet, mens de to andre bliver nødt til at vente i køen, indtil de to første er færdige med forarbejdning.
Husk, vi diskuterede tidligere, at et af de største problemer med WordPress-medlemskabswebsteder er alle disse ubesvarede forespørgsler. Derfor bliver PHP-medarbejdere meget vigtige, da de skal arbejde for hver anmodning. Derfor vil disse websteder typisk kræve yderligere PHP-arbejdere for at sikre, at hver anmodning behandles uden forsinkelser og afsluttes med succes.
Hvad sker der, hvis du kontinuerligt maksimerer dine PHP-arbejdere? I grunden begynder køen at skubbe ældre forespørgsler, som kan resultere i 500 fejl på dit websted. Hver af Kinstas hostingplaner indeholder et foruddefineret antal PHP-medarbejdere. Hvis du har problemer med at estimere, hvad dit websted muligvis har brug for, vil denne vejledning være nyttig: PHP-medarbejderens anbefalinger til medlemskabswebsteder. Men du kan altid chatte med vores salgs- eller supportteam.
7. Udfør regelmæssig databasevedligeholdelse
Regelmæssig databasevedligeholdelse anbefales ikke kun til WordPress-medlemskabswebsteder, det er påkrævet! Hvis du ikke gør det, vil du sandsynligvis undre dig over, hvorfor dit websted er kommet til en gennemgang. Her er nogle anbefalinger:
Ryd op Autoloaded data
Autoloaded data er data, der er indlæst på hver side af dit WordPress-websted. Disse data gemmes i din i din wp_options
tabel. På store steder kan denne tabel hurtigt vokse uden kontrol. Tjek vores dybtgående vejledning om, hvordan du rydder op autoloaded data.
Ryd op transienter og CRON job
Ligesom med autoloaded data, skal du også regelmæssigt rydde op transienter. Når du arbejder korrekt, skal transienterne udløbe og fjerne sig selv, men det er ikke altid tilfældet. Hvis noget er fejlkonfigureret eller endda korrumperet, kan disse begynde at genopbygge.
For eksempel havde vi en klient, hvor noget gik galt med transienterne, der udløber, og det bragte hele webstedet til en gennemgang. Efter at have gravet ind i det opdagede vi, at webstedet havde 695.846 transiente poster (rækker) i databasen. Ved sletning af rækkerne (som indeholdt transienter, som allerede skulle være udløbet), genoprettede stedet straks (som vist nedenfor).
Du kan bruge det gratis Transients Manager-plugin til at se, søge, redigere og slette transienter på dit WordPress-websted. Hvis du er lidt mere tech-savvy, kan du også bruge WP-CLI-kommandoer til at fjerne transienter.
CRON-job (WP-Cron), der bruges til at planlægge gentagne opgaver til dit WordPress-websted, kan også have lignende problemer. Du kan bruge det gratis WP Control plugin til at kontrollere og sikre, at dine CRON-job ikke er ude af kontrol.
Skift Database Engine til InnoDB
Sidst men ikke mindst, skal du flytte din databasemotor til InnoDB, hvis du ikke allerede har det. Mange ældre websteder bruger stadig MyISAM-lagringsmotoren i deres database. Gennem de seneste år har InnoDB vist sig at fungere bedre og være mere pålidelige. En stor grund til at bruge InnoDB over MyISAM, er at du ikke vil løbe ind i problemer med fuld låsning på tabel-niveau. Dette gør det muligt for dine forespørgsler at blive behandlet hurtigere.
Se vores vejledning om, hvordan du konverterer din database (tabeller) fra MyISAM til InnoDB. Hvis du migrerer til Kinsta og har vores ingeniør team til at hjælpe dig, flytter vi automatisk din databasemotor til InnoDB.
8. Offload Data
Som vi tidligere nævnte, har medlemskabswebsteder simpelthen et ton af data! Videoer, PDF-filer, fotografier i fuld opløsning, dokumenter og lydfiler som har tendens til at være de største syndere. Derfor skal du måske finde ud af, hvordan du aflaster dette til en billigere lagringsløsning. Dette kan spare penge ved blot at skulle opgradere din hosting plan. Tjek de følgende artikler:
- Aflæsning af lagring af PDF, DOCX, MP4 og MP3
- Sådan aflæses store filer til Amazon S3
- Sådan aflastes medier til Google Cloud Storage
Hvad man ikke skal gøre for WordPress medlemswebsteder
Her er et par ting, du ikke bør gøre på dine WordPress-medlemskabswebsteder.
Hold dig væk fra post-tællere
Tilføj aldrig visning / post-tællere til dit websted, hvis du ikke behøver. For eksempel undgå ting som “792 indlæg” ud for en brugers avatar i forumindlæg eller “5,243 visninger”, når du noterer forumindlæg. Når du har en lang diskussion, vil disse tællere tage en enorm vejafgift på din database. Generelt minimér brugen af tællere og brug dem kun om nødvendigt.
Dette gælder også for sociale tællere. Bemærk, at vi bruger disse på Kinsta-bloggen, men ingen andre steder på vores hjemmeside. Men vores plugin har også indbygget caching, hvilket sikrer, at de ikke genererer forespørgsler på hver sidebelastning.
Undgå Page Builders
Page Builders er gode til mange mennesker, faktisk har vi endda en hel liste over dem, du kan bruge på dit websted. Men de fleste (ikke alle) af disse har præstationsimplikationer, da de genererer ekstra unødvendig kode for at få siden til at gengives på den måde, som brugeren stadig kan bygge den uden at vide, hvordan man kode. Hvis du selv kan kode, skal du kode dine sideskabeloner og altid gøre dem så lyse som muligt.
For eksempel er vores Kinsta-websted (som set nedenfor) i WordPress, men hele temaet er faktisk kodet af vores interne udvikler. Dette hjælper os med at reducere nogle af de opblæsninger, som store WordPress-temaer typisk har, men giver os mulighed for stadig at udnytte alle de fantastiske funktionaliteter. Igen er der tusindvis af talentfulde WordPress-udviklere og designere derude til din rådighed, hvis du har brug for hjælp.
Brug ikke for mange plugins
Vi ved, at du har hørt det her før. Sandheden er, at kvaliteten af et plugin-kode er vigtigere end det samlede antal plugins, du har installeret. Men med det sagt vil alle stadig have en “ydeevne koster“. 🐢 Hvis du ikke længere bruger funktioner fra plugins, skal du deaktivere og fjerne dem fra dit websted. Dette gør det ikke kun lettere at fejle tingene, men det vil sandsynligvis reducere antallet af forespørgsler på dit websted (både på backend og frontend).
Pas på med tredjepartsintegrationer
Der er mange tredjeparts CRM- og automationsplatforme derude, som du måske vil integrere med din WordPress-medlemskabswebsted. Vær dog forsigtig med disse, da nogle kan introducere yderligere ventetid og forsinkelser, mens de kommunikerer med deres API’er, tjenester osv. Du vil måske se på løsninger, der er bygget inde i WordPress, såsom disse CRM-løsninger.
For ikke at gøre det vanskeligere, men det modsatte kunne også være sandt. Hvis en tredjeparts CRM- eller automatiseringsplatform håndterer mange af sine egne opgaver, kan det faktisk hjælpe med at tage belastningen af din WordPress-vært. Den bedste måde at vide sikkert på er at teste forskellige løsninger.
Yderligere henstillinger
Og selvfølgelig kan vi ikke lade dig forlade uden at nævne nogle af de mere almindelige hastighedsoptimeringer, du allerede skal gøre:
- Komprimere dine billeder! På Kinsta ser vi typisk besparelser på 60-70% afhængigt af hvilke typer billeder og hvilken form for kompression du bruger. Vi anbefaler lossy kompression.
- Brug altid en CDN. Selv om vi har 20 datacentre til rådighed for at vælge imellem hos Kinsta, vil din server stadig være langt væk fra nogen. En CDN kan reparere dette ved at kopiere og levere dine aktiver (billeder, JS, CSS) fra POP’er over hele kloden. Vores Kinsta CDN er inkluderet for kunder.
- Tænk to gange, før du beslutter dig for at styre din egen VPS. At forsøge at være din egen systemadministrator for at spare 20 USD / måned er en dårlig idé.
Resumé
WordPress medlemskab og fællesskabssider er helt sikkert i deres egen kategori, når det kommer til optimering. De kræver normalt at man går en ekstra mil, hvis du vil se fremragende præstation. Men den store nyhed er, at mange af løsningerne derude kan gøre underværker. PHP 8.1, Elasticsearch og Redis Object Caching er alle nemme og effektive måder at se øjeblikkelige resultater på. Og selvfølgelig skal du have en præstations-fokuseret vært øverst på din liste. 😉
Kører du et WordPress-medlemskabssite? Vi vil gerne høre dine tanker eller om de kampe, du har stødt på undervejs.
Skriv et svar