Praktiska tips för designers och utvecklare om hur man driver hållbarhet på webben genom att tillämpa Green Code.
På Annevo prioriterar vi green code (hållbar kod) när vi utvecklar lösningar för våra kunder. Det handlar inte om att få utmärkelser eller erkännanden; utan om att ständigt arbeta för att omforma vårt synsätt på digital konsumtion. Här har vi samlat tips och processer som direkt kan tillämpas i arbetet som designer eller utvecklare, och som underlättar för att komma igång med hållbara metoder. De är skapade av den seniora fullstack-utvecklaren Filip Åstrand, som är expert inom green code och hållbarhet på webben.
Internet förbrukar ungefär lika mycket elektricitet varje år som hela Storbritannien, och användningen ökar ständigt. Som professionella utvecklare och designers bör vi ta ansvar för att minska energiförbrukningen på webben. Men vad är det egentligen som förbrukar all denna energi? Det handlar främst om fyra kategorier: CPU (huvudprocessorer), GPU (grafikprocessorer), nätverkskomponenter (Wi-Fi och mobil-radiokretsar) och skärmar. Ekvationen är enkel: högre prestanda innebär ofta lägre energieffektivitet, vilket leder till en hög energiförbrukning. En allmän effektiv strategi för att minska energiförbrukningen är att minimera tiden som tillbringas i högenergistadier.
Vissa lösningar kan framstå som enkla och snabba, men kan misslyckas på grund av dåliga processer. Andra kan vara mer utmanande att anamma och integrera i ditt projekt, vilket kräver ett visionärt tillvägagångssätt för att lyckas.
Bra design gör inte bara webbplatser lättare och roligare att använda, utan hjälper också användare att snabbare hitta vad de söker. Ett effektivt sätt att införliva hållbarhet tidigt i designprocessen är att överväga wireframing eller snabb prototypframställning med papper och penna, eller andra "offline" verktyg, vilket kan minska energiförbrukningen avsevärt.
För att förbättra din brainstorming, överväg perspektiv utöver det människocentrerade. Tänk ekologiskt också. Ta hänsyn till planetens behov och de ekologiska kostnaderna som är inblandade.
Gör dessutom det lättviktiga alternativet till din nya standard. Oavsett om det gäller nedladdning, streaming, sparande, utskrift eller åtkomst av resurser, välj alltid det mest lättviktiga alternativet som finns. Detta förbättrar inte bara effektiviteten utan minskar också det digitala fotavtrycket.
Alla vill producera webbplatser som är tilltalande, men är omfattande dekoration nödvändig? Att välja en avskalad design kan minska belastningen vid rendering. Använd dekorativa element sparsamt och överväg att ha valbara funktioner inaktiverade som standard för att förenkla användarupplevelsen.
Effektiv navigering är avgörande för att leda användare genom en webbplats. Det är viktigt att ha en välstrukturerad informationsarkitektur. Se till att dina länkar är korrekt markerade och inkludera en tillgänglig navigeringsmeny med sökfunktioner för att förbättra användbarheten. En tydlig sitemap hjälper inte bara användarna utan också sökmotorer att bättre indexera ditt innehåll. Se alltid till att nytt innehåll och nya tjänster visas tydligt.
När du hanterar användarinteraktion, kom ihåg att tiden är värdefull!
Presentera information endast när den är relevant och undvik att distrahera besökare eller förlänga deras besök i onödan. Tillåt att användbar information, såsom popup-fönster, initieras av användaren istället för per automatisk. Undvik oändlig scrollning och andra tekniker som är designade för att hålla användarnas uppmärksamhet längre än nödvändigt. Dessa strategier respekterar användarnas tid och bidrar till en mer effektiv och användarvänlig upplevelse.
Effektiv SEO gör det möjligt för användare att snabbt hitta vad de behöver, vilket minskar energiförbrukningen genom att minimera antalet sidbesök. Prioritera SEO från början för att öka innehållssynligheten. Att respektera användarens save-data-begäran och leverera resurser som minskar dataanvändningen kommer inte bara att respektera användarnas dataplaner utan också optimera applikationens övergripande effektivitet och hållbarhet.
Designsystem förhindrar behovet av att uppfinna befintliga verktyg på nytt och minskar bortkastad tid genom att främja konsekventa gränssnitt som följer webbstandarder, vilket i sin tur kräver mindre energi och resurser. Dessa system är vanligtvis mycket väl optimerade.
Att använda välkända designmönster hjälper besökare att enkelt identifiera och navigera i innehåll. Fokusera på att implementera ren design på välbekanta platser för att öka användarnas effektivitet och navigation. Detta tillvägagångssätt strömlinjeformar inte bara användarupplevelsen utan sparar också resurser genom att utnyttja vanliga mönster som användarna redan förstår.
Att minimera animationer är avgörande eftersom de kan vara processorintensiva och potentiellt minska tillgängligheten. Använd animationer sparsamt och låt besökare kontrollera animerat innehåll för att undvika att de blir överväldigade. För webbmaterial, erbjud alternativa format för media, bilder och dokument. Till exempel, tillhandahåll innehåll i HTML tillsammans med proprietära format som PDF och inkludera alternativ text för bilder och texttranskriptioner för ljud och video för att förbättra tillgängligheten.
Meddelanden bör användas med gott omdöme – skicka endast viktiga meddelanden och låt användaren kontrollera sina meddelande-inställningar och opt-out-alternativ. När du överväger bilder, bedöm om de tillför verkligt värde eller förmedlar viktig information. Överväg mindre bilder eller olika format som vektorgrafik eller CSS, och ge användare möjlighet att justera visningsstorlekar eller dölja bilder.
Ljud- och videoelement bör utvärderas noggrant. Inaktivera autoplay, minska deras längd och komprimera filer för att bibehålla kvalitet samtidigt som storleken minimeras. Videor förbrukar betydande processorkraft och användardata, så erbjud flera upplösningar och ställ in lägre som standard. Undvik att bädda in spelartillägg och tillhandahåll omfattande mediainformation, inklusive avaktiveringsalternativ.
Teckensnitt kan avsevärt påverka laddningstider, med varianter som väger upp till 250 kB. Välj moderna format som WOFF/WOFF2 som erbjuder bättre kompression än TTF/OFT/SVG. Överväg olika teckensnitt, använda variabla teckensnitt eller systemteckensnitt för att minimera laddningstider och förbättra användarupplevelsen.
Minifiering är avgörande för att optimera webbprestanda. Genom att ta bort onödiga blanksteg, som inte har något värde, kan du avsevärt minska filstorleken. Dessutom möjliggör "code splitting" modulering av koden så att den kan laddas vid behov, separat. Detta tillvägagångssätt säkerställer att användare bara laddar ner den kod de behöver när de behöver den.
Att respektera användarpreferenser förbättrar inte bara användarupplevelsen, utan minskar också utsläpp. Att använda CSS-förfrågningar om användarpreferenser kan göra stor skillnad. Till exempel, genom att använda prefers-color-scheme kan användare med OLED-skärmar dra nytta av mörkt läge, vilket är mer energieffektivt. På samma sätt hjälper användningen av prefers-reduced-motion till att minska belastningen på CPU/GPU genom att minimera animationer. Dessutom kan det att respektera klientens Save-Data-begäran avsevärt minska dataanvändningen, vilket optimerar applikationens övergripande effektivitet och hållbarhet.
Ungefär 65 % av internetanvändningen sker via mobila enheter, vilket understryker vikten av att anta en mobil-först-strategi vid apputveckling. Att börja med mobilversionen och sedan anpassa till större skärmar visar sig vara mer effektivt. Genom att använda progressiv förbättring och responsiv webbdesign kan du säkerställa att din lösning fungerar sömlöst på alla enheter. Denna strategi optimerar inte bara användarupplevelsen utan förbättrar också tillgängligheten, vilket gör din app universellt anpassningsbar.
För att förbättra webbprestanda är det viktigt att optimera och komprimera resurser. Cachning minskar avsevärt behovet av att ständigt ladda om resurser från servern. För innehållshanteringssystem (CMS) kan det vara mycket effektivt att aktivera server-side-cachning i realtid med hjälp av plugins. Dessutom hjälper användning av filtyps-cachning med HTTP-rubriker som expires, bfcache eller cache-control till att hantera cachad data effektivt. Progressiva webbapplikationer (PWA) erbjuder offline-stöd, vilket gör att de kan cache och leverera filer lokalt.
Komprimeringsalgoritmer, såsom Brotli eller GZIP, krymper filer som överförs över nätverket, vilket förbättrar laddningstider. Media bör komprimeras innan de laddas upp till en server eller CMS, och att använda de mest effektiva filformaten, som WebP istället för JPEG, optimerar prestandan ytterligare. Verktyg som TinyPNG och ShortPixel kan hjälpa till att komprimera bilder och säkerställa minimal filstorlek utan att offra kvalitet.
JavaScript kan leda till hög CPU-belastning under rendering, vilket ger ökad klimatpåverkan. För att motverka detta, ta bort oanvända paket från package.json och använd helst inbyggda API:er istället för open source-bibliotek. Undersök om fristående moduler kan användas istället för hela bibliotek och kontrollera alltid paketstorlekar med verktyg som Bundlephobia för att säkerställa effektivitet. Genom att effektivt hantera dina källor kan du minska miljöpåverkan av dina webbprojekt.
För utvecklare som fokuserar på hållbarhet är valet av rätt hosting-leverantör avgörande. Välj de som maximerar användningen av utrustning, återvinner effektivt och använder förnybar energi, och kompenserar utsläpp med Renewable Energy Credits (RECs). Övervaka hosting-effektivitet med indikatorer som PUE, WUE och CUE.
Strömlinjeforma din utvecklingsmiljö genom att avveckla onödiga uppsättningar och använda den senaste serverteknologin. Minimera serverbelastningen med klient- och servercachning, skicka data endast när det behövs och implementera asynkron bearbetning. Använd hållbara CDNs och servrar geografiskt nära dina användare för bättre prestanda.
Välj on-demand molnlösningar som AWS Lambdas, Azure Functions eller Google Cloud Functions för att minska konstant serveranvändning. Använd autoskalning för att matcha resursanvändningen med faktisk efterfrågan och rensa regelbundet upp datalagring för att undvika slöseri. Ta bort överflödig data, sätt utgångsdatum för lagring, optimera logghantering och komprimera nedladdningsbara filer för att förbättra prestanda och hållbarhet.
För att förbättra energieffektiviteten på webbsidor är det avgörande att hantera resursanvändningen baserat på användarinteraktionsnivåer. Energi ska aktivt användas endast när användaren interagerar med sidan. När interaktionen upphör, återställ snabbt sidan till ett viloläge för att spara energi. När sidan är aktiv men inte interageras med, minimera energiförbrukningen genom att ta bort timers och undvika kontinuerliga animationer.
Använd CSS för animationer och WebSockets för att upprätthålla nätverksanslutningar utan frekvent polling. Säkerställ noll CPU-användning när sidan är inaktiv, till exempel när användare byter flikar, minimerar webbläsarfönstret eller sidan inte är i fokus. I WebKit-baserade webbläsare stoppas RequestAnimationFrame, CSS- och SVG-animationer pausas och timers stryps när en flik eller ett fönster tappar fokus. På macOS, använd funktioner som App Nap för att ytterligare minska energiförbrukningen.
Använd Page Visibility API för att hantera energiförbrukningen baserat på sidans synlighet. Minska bakgrundsaktiviteter och hantera suddighets-händelser för att minimera väckningar och CPU-användning när sidan inte är i fokus.
Genom att följa dessa strategier kan utvecklare skapa mer energieffektiva webbplatser som reagerar intelligent på användarinteraktioner och systemkontexter, vilket minskar den totala energiförbrukningen för deras webbapplikationer.
För att optimera webbprestanda och energianvändning, se till att bilder laddas korrekt med CSS eller HTML för att undvika extra layoutarbete. Accelerated Mobile Pages (AMP) minskar sidladdningstiden på mobila enheter och prioriteras i Googles mobilsökresultat.
Att minska JavaScript kan avsevärt förbättra sidladdningstider, så övervaka skriptprestanda med verktyg som Safaris CPU-tidslinje och var uppmärksam på tredjepartsbibliotek. Rendering, som påverkas starkt av skript och CSS-animationer, kan belasta både CPU och GPU, så använd visualiseringsverktyg för att hantera vad som renderas och minimera påverkande animationer.
För mobila enheter är effektiv nätverksanvändning avgörande på grund av batteriförbrukningen från trådlös anslutning. Optimera detta genom att använda webbläsarcachning, gruppera nätverksförfrågningar och övervaka med verktyg som Safaris Network Request Timeline. Dessutom kan blockering av onödig bottrafik spara bandbredd och processresurser, vilket förbättrar webbplatsens prestanda och användarupplevelse.
Sammanfattningsvis är det avgörande att anta hållbara metoder inom webbdesign och utveckling för att minska det digitala fotavtrycket. Genom att omfamna green code, optimera resurser och beakta den ekologiska påverkan kan vi skapa mer effektiva och miljövänliga digitala projekt.
Låt oss göra medvetna val i våra designprocesser, prioritera lättviktiga alternativ, strömlinjeforma användarupplevelser och hantera beroenden klokt för att bygga en grönare web för framtiden.
behöver du mer?