divmagic Make design
SimpleNowLiveFunMatterSimple
CSS-prestatieoptimalisatie: Waarom GitHub meer CSS levert (in plaats van minder) voor snellere laadtijden
Blogs›CSS›CSS-prestatieoptimalisatie: Waarom GitHub meer CSS levert (in plaats van minder) voor snellere laadtijden
CSS

CSS-prestatieoptimalisatie: Waarom GitHub meer CSS levert (in plaats van minder) voor snellere laadtijden

DivMagic
DivMagic TeamOctober 31, 2026
14 min read

CSS-prestatieoptimalisatie: Waarom GitHub meer CSS levert (niet minder) voor snellere laadtijden

Al meer dan tien jaar is het draaiboek voor frontend-prestaties opvallend consistent: minimaliseer je CSS, inline de kritieke pad, splits de rest en lever alles asynchroon. Het mantra van "lever minder code" is zo diep verankerd in ons collectieve ontwikkelaarsbewustzijn dat het in twijfel trekken bijna ketters aanvoelt.

Toen publiceerde het technische team van GitHub een bericht met de titel "Verbetering van siteprestaties door meer CSS te leveren", en de frontend-gemeenschap trok collectief een wenkbrauw op. Alleen de titel al leest als een tegenstrijdigheid. Meer CSS leveren om een site snellerte maken? Is dat niet achterstevoren?

Zoals blijkt, nee. De bevindingen van GitHub dagen de conventionele wijsheid uit die jarenlang de strategieën voor CSS-levering heeft bepaald. Hun gegevens tonen aan dat de traditionele aanpak van het inlinen van kritieke CSS en het codesplitsen van de rest, hoewel theoretisch verantwoord, in de praktijk vaak afnemende meeropbrengsten oplevert. In sommige gevallen schaadt het actief de prestaties .

In deze diepgaande analyse ontleden we de contra-intuïtieve ontdekking van GitHub, onderzoeken we de statistieken die verklaren waarom het leveren van meer CSS sneller kan zijn, en verkennen we wat dit betekent voor je eigen ontwikkelworkflow, inclusief hoe tools zoals DivMagic passen in een moderne, prestatiegerichte CSS-strategie.

Het traditionele draaiboek voor CSS-levering

Voordat we kunnen waarderen waarom de aanpak van GitHub revolutionair is, moeten we het raamwerk begrijpen dat het uitdaagt. De standaard CSS-optimalisatiestrategie die de meeste prestatiegidsen aanbevelen, ziet er ongeveer zo uit:

Stap 1: Inline kritieke CSS

Extraheer de CSS-regels die nodig zijn om de boven-de-vouw-inhoud weer te geven en inline ze direct in de <head> van je HTML. Dit elimineert het render-blokkerende verzoek voor het externe stylesheet tijdens de eerste weergave.

Stap 2: Laad het volledige stylesheet asynchroon

Laad het volledige CSS-bestand asynchroon met behulp van de preload of media attribuut-truc, zodat de browser onmiddellijk kan beginnen met renderen met de inline stijlen en het volledige stylesheet toepast zodra het aankomt.

Stap 3: Code-split CSS per route of component

In single-page applicaties serveer je alleen de CSS die nodig is voor de huidige weergave. Tools zoals PurgeCSS, CSS-modules en frameworkspecifieke code-splitsingshulpprogramma's maken deze granulaire aanpak mogelijk.

Op papier optimaliseert deze strategie elke byte. In de praktijk introduceert het echter een cascade van afwegingen die zelden worden besproken, en dat is precies waar het technische team van GitHub hun onderzoek begon.

De contra-intuïtieve ontdekking van GitHub

GitHub had, zoals de meeste grootschalige platforms, een geavanceerd CSS-leveringssysteem geïmplementeerd. Ze inlineden kritieke CSS, splitsten de rest in routespecifieke brokken en gebruikten moderne laadtechnieken om render-blokkerend gedrag te voorkomen. Toch vertelden hun real-user monitoring (RUM)-gegevens een verhaal dat in tegenspraak was met hun verwachtingen.

software developer, web developer, programmer, software engineer, technology, tech, web developer, programmer, programmer, software engineer, technology, technology, technology, tech, tech, tech, tech, tech

Herhaalde bezoeken, de norm voor een site zoals GitHub, waar ontwikkelaars tientallen keren per dag terugkeren, waren langzamer dan ze zouden moeten zijn. De inline kritieke CSS, uitgevoerd bij elke paginalading, voegde JavaScript-uitvoeringstijd toe. De routespecifieke brokken zorgden ervoor dat elke navigatie een nieuw CSS-verzoek activeerde. De complexiteit van het systeem voegde overhead toe zonder evenredig voordeel.

Hun oplossing was om het script om te draaien: serveer een enkel, groter CSS-bestand dat door de browser wordt gecached bij het eerste bezoek en wordt hergebruikt bij alle volgende navigaties. Geen inline kritieke CSS. Geen per-route splitsing. Geen asynchrone laadhacks. Gewoon één bestand, één verzoek, volledig gecached.

Het resultaat? Snellere paginaladingen voor de overgrote meerderheid van gebruikers, verminderde JavaScript-uitvoeringsoverhead en een aanzienlijk eenvoudigere codebase.

"Het snelste CSS-verzoek is het verzoek dat nooit plaatsvindt. Een enkel gecached stylesheet maakt elk herhaald bezoek bijna gratis."

Waarom "meer CSS" eigenlijk niet meer is

Er is een belangrijke nuance hier die gemakkelijk over het hoofd wordt gezien. GitHub levert geen opgeblazen CSS, ze leveren een geconsolideerd, geoptimaliseerd en cachebaar CSS-bestand. Het woord "meer" in hun titel verwijst naar de hoeveelheid CSS die in één verzoek wordt geleverd, niet naar een goedkeuring van te grote stylesheets.

Het belangrijkste onderscheid is tussen totaal overgedragen bytes en effectief overgedragen bytes. Wanneer een CSS-bestand is gecached, hoeft de browser het niet opnieuw op te halen bij volgende paginaladingen. Het HTTP-verzoek wordt nooit gedaan, de bytes worden nooit overgedragen en het renderpad is schoon. Daarentegen wordt inline CSS opnieuw verzonden met elk HTML-antwoord, ongeacht of de inhoud is gewijzigd.

3x
faster repeat visits when CSS is served as a single cacheable file instead of inline critical CSS

Deze statistiek, de ervaring bij herhaalde bezoeken, is waar de gegevens van GitHub de meest dramatische verbetering lieten zien. Voor een platform waar gebruikers snel navigeren tussen repositories, issues, pull requests en codeweergaven, domineert herhaalde navigatie de gebruikerservaring.

Bar chart comparing page load times for initial visits and repeat visits across three CSS delivery strategies. Single cached file strategy shows fastest repeat visit times.

De statistieken die er echt toe doen

Om het besluit van GitHub te begrijpen, moet je verder kijken dan de oppervlakkige statistiek van "totale CSS-bestandsgrootte" en onderzoeken wat daadwerkelijk de waargenomen prestaties in de echte wereld aanstuurt.

First Contentful Paint (FCP)

FCP meet wanneer de browser het eerste stuk DOM-inhoud weergeeft. Traditionele kritieke CSS heeft als doel FCP te minimaliseren door render-blokkerende CSS te elimineren. Als het CSS-bestand echter is gecached, is er geen render-blokkerend verzoek bij herhaalde bezoeken, de browser leest uit de cache en schildert onmiddellijk.

Time to Interactive (TTI)

TTI meet wanneer een pagina volledig interactief wordt. Inline kritieke CSS, gecombineerd met JavaScript dat asynchroon stylesheet laden beheert, kan TTI daadwerkelijk vertragen omdat de browser het JavaScript moet uitvoeren voordat het het volledige stylesheet kan oplossen. Een enkel gecached CSS-bestand elimineert deze JavaScript-afhankelijkheid volledig.

Cumulative Layout Shift (CLS)

CLS meet visuele stabiliteit. Een van de meest voorkomende klachten over kritieke CSS-implementaties is dat ze de pagina laten "flikkeren", de lay-out verschuift terwijl het volledige stylesheet laadt en de inline stijlen overschrijft. Een enkel, volledig geladen CSS-bestand vanaf het begin elimineert deze lay-outverschuiving bij herhaalde bezoeken.

53%
of mobile users abandon sites that take longer than 3 seconds to load, and repeat-visit speed is the metric that most directly impacts this

De conclusie is duidelijk: voor elke site of applicatie die gebruikers vaker dan één keer bezoeken, is de cachingstrategie belangrijker dan de initiële bestandsgrootte. En voor ontwikkeltools, dashboards en platforms, waar herhaalde bezoeken de regel zijn, niet de uitzondering, is dit een doorslaggevende factor.

HTTP/2 en de dood van het tijdperk van de “vele kleine verzoeken”

Een van de oorspronkelijke motivaties voor het opsplitsen van CSS was de overhead van HTTP/1.1-verzoeken. Elk verzoek vereiste een aparte TCP-verbinding en browsers konden slechts een beperkt aantal verbindingen per domein openen. Het opsplitsen van CSS in kleinere stukken betekende meer verzoeken, maar elk verzoek was sneller te downloaden, een afweging die soms de moeite waard was.

code, coding, web, development, web developer, web development, technology, programming code, computer programming, web design, html, php, data, gray computer, gray technology, gray laptop, gray data, gray design, gray web, gray code, gray coding, gray programming, code, code, code, code, coding, coding, coding, coding, coding, web development, web development, web design, web design, php

HTTP/2 veranderde het spel. Met multiplexing kan een enkele TCP-verbinding tientallen gelijktijdige verzoeken verwerken zonder head-of-line blocking. Dit elimineert een groot deel van de overhead die het opsplitsen van code aantrekkelijk maakte. De moderne calculus geeft de voorkeur aan minder, grotere verzoeken boven vele kleinere, vooral wanneer die grotere verzoeken in de cache kunnen worden opgeslagen.

Wanneer het zinvol is om meer CSS te leveren, en wanneer niet

GitHub's benadering is geen universele oplossing. Het werkt uitstekend voor sites met specifieke kenmerken, maar het is geen pasklaar antwoord. Hier leest u hoe u kunt beoordelen of het van toepassing is op uw project.

Wanneer het werkt

  • Hoge frequentie van herhaalde bezoeken: Platforms, dashboards, interne tools en ontwikkelproducten waar gebruikers meerdere keren per dag terugkomen
  • Gematigde CSS-voetafdruk: Totaal gzipped CSS onder 200KB, groot genoeg om te profiteren van caching, klein genoeg om downloadstraffen te voorkomen
  • Navigatie met meerdere pagina's of weergaven: Applicaties waarin gebruikers navigeren tussen vele verschillende weergaven of routes
  • HTTP/2 met CDN-caching: Infrastructuur die efficiënte levering en sterke cache-headers ondersteunt

Wanneer het niet werkt

  • Bestemmingspagina's voor eenmalig bezoek: Marketingpagina's of campagnesites waar de meeste gebruikers één keer komen en nooit terugkeren
  • Massale CSS-bundels: Stylesheets van meer dan 500KB gzipped, waarbij de initiële downloadstraf zwaarder weegt dan de cachingvoordelen
  • Extreem diverse stijlen: Sites met dramatisch verschillende CSS-vereisten per sectie (hoewel dit in de praktijk zeldzaam is)
ApproachInitial LoadRepeat LoadComplexity
Inline Critical CSS + AsyncFast (render-blocking JS)Medium (re-inlines each time)High (build tooling needed)
Code-Split CSS per RouteMedium (multiple requests)Medium (new request per route)High (router integration)
Single Cached CSS FileSlightly slower first visitVery fast (zero requests)Low (one file, one request)

Wat dit betekent voor uw ontwikkelworkflow

De praktische implicaties van GitHub's ontdekking reiken verder dan prestatiestatistieken. De vereenvoudiging van de CSS-leveringsstrategie heeft een watervaleffect op uw hele ontwikkelingspijplijn.

startup, business, people, students, office, strategy, work, technology, company, corporate, communication, young, plan, marketing, computer, design, professional, planning, internet, project, laptop, presentation, web, display, monitor, women, girls, screen, digital, electronic, pc, modern, startup, students, office, marketing, marketing, marketing, marketing, marketing, professional, professional, project, presentation

Eenvoudigere buildconfiguratie

Inline critical CSS vereist build-tools die kritieke stijlen kunnen identificeren, extraheren en tijdens het bouwen in de HTML kunnen injecteren. Het vereist onderhoud, testen en voortdurende afstemming. Een enkel CSS-bestand elimineert al die complexiteit. Uw buildstap gaat van een meerfasige pijplijn naar een eenvoudige CSS-compilatie.

Minder afhankelijkheden

Tools voor het extraheren van kritieke CSS, asynchrone laadbibliotheken en op routes gebaseerde CSS-injectieframeworks worden allemaal overbodig. Dit verkleint uw afhankelijkheidsvoetafdruk en de bijbehorende beveiligings- en onderhoudslast.

Gemakkelijker debuggen

Wanneer er iets misgaat met inline critical CSS, is debuggen berucht moeilijk. De pagina kan onjuist worden weergegeven en vervolgens plotseling “springen” wanneer het volledige stylesheet wordt geladen. Stijlen kunnen worden gedupliceerd, conflicteren of ontbreken. Een enkel CSS-bestand elimineert deze hele klasse van debugscenario's.

85%
of CSS performance issues reported by developers stem from delivery strategy, not file size, according to GitHub’s RUM analysis

Het optimaliseren van de CSS die u levert

Accepteren dat “meer CSS leveren” sneller kan zijn, is geen vrijbrief om CSS-kwaliteit te negeren. De CSS die u in dat ene bestand levert, moet zo schoon, efficiënt en doelgericht mogelijk zijn. Hier leest u hoe u ervoor kunt zorgen dat de CSS die u consolideert het cachen waard is.

Verwijder ongebruikte regels

Tools zoals PurgeCSS en frameworkspecifieke hulpprogramma's (Tailwind's JIT-modus, bijvoorbeeld) verwijderen CSS-regels die niet in uw project worden gebruikt. Dit is vooral van cruciaal belang bij het consolideren van CSS over een hele site, u wilt geen regels voor componenten die niet meer bestaan.

Optimaliseer de efficiëntie van selectors

Complexe selectors (.nav ul li a span) vereisen meer werk voor de browser om te evalueren dan eenvoudigere (.nav-link). Hoewel de prestatie-impact van selectors vaak wordt overschat, is het nog steeds de moeite waard om uw selectors slank te houden.

Minificeren en comprimeren

CSS-minificatie verwijdert witruimte, opmerkingen en overbodige tekens. Gzip- of Brotli-compressie vermindert vervolgens de overgedragen grootte met 60–80%. Een 200KB niet-geminificeerd CSS-bestand is mogelijk slechts 40KB gzipped, een triviale download op zelfs bescheiden verbindingen.

Hoe DivMagic past in een prestatiegerichte CSS-workflow

Een van de meestijdrovende aspecten van het bouwen met CSS is het nabouwen van UI-componenten van websites die u bewondert. U ziet een mooie knop, een goed ontworpen navigatiebalk of een complexe kaartindeling, en u besteedt uren aan het reverse-engineeren van de CSS om het na te bouwen.

Dit proces heeft een verborgen kostenpost: de CSS die u schrijft tijdens het reverse-engineeren is vaak minder efficiënt dan het origineel. U neemt overbodige regels op, u mist de slimme cascade van het origineel, of u specificeert uw selectors te specifiek in een poging het visuele resultaat te evenaren. Het resultaat is opgeblazen CSS die de prestatiewinst die u probeert te behalen ondermijnt.

Dit is waar DivMagic de workflow verandert. In plaats van handmatig CSS te reconstrueren, kunt u met DivMagic het exacte UI-element, met de bijbehorende CSS, rechtstreeks van elke website kopiëren. De uitvoer is de echte, productierijpe CSS die de originele site gebruikt, geen benadering.

“Stop met het reverse-engineeren van UI. Kopieer de exacte CSS van elke website en lever productierijpe stijlen in seconden, niet in uren.”

Het prestatievoordeel is tweeledig: u besteedt minder tijd aan het schrijven van CSS, en de CSS die u levert is schoner en efficiënter omdat het het originele, geoptimaliseerde stylesheet is, geen handgeschreven benadering.

Van Kopiëren naar Cacheerbaar: Een Praktische Werkstroom

Hier is een praktische werkstroom die DivMagic combineert met GitHub's "ship more CSS"-strategie:

Stap 1: Gebruik DivMagic om UI-componenten van referentiesites te kopiëren. Extraheer de exacte HTML en CSS voor elk element dat je nodig hebt.

Stap 2: Consolideer de gekopieerde stijlen in één samenhangend stijlblad. Organiseer ze logisch, los eventuele conflicten op en zorg voor consistente naamgevingsconventies.

Stap 3: Verwijder ongebruikte regels met PurgeCSS of de ingebouwde tools van je framework. Verwijder alles wat niet actief wordt gebruikt in je project.

Stap 4: Serveer de geconsolideerde CSS als één bestand met sterke cache-headers (Cache-Control: public, max-age=31536000, immutable voor versiebeheerde bestanden).

Stap 5: Implementeer achter een CDN die HTTP/2 en Brotli-compressie ondersteunt.

Deze werkstroom combineert het beste van twee werelden: je levert productiekwaliteit CSS die je niet vanaf nul hoefde te schrijven, en je levert het met de cachingstrategie waarvan GitHub's gegevens bewijzen dat deze het snelst is voor herhaalbezoeken.

Het Meten van de Impact in Je Eigen Projecten

De enige manier om te weten of GitHub's aanpak werkt voor jouw specifieke project, is door het te meten. Gelukkig zijn de tools hiervoor breed beschikbaar en eenvoudig te implementeren.

Real User Monitoring (RUM)

Tools zoals Google Analytics, Sentry Performance en New Relic Browser leveren real-gebruikersgegevens over Core Web Vitals. Volg FCP, TTI en CLS voor zowel eerste als herhaalde bezoekers. De herhaalbezoekersstatistieken zijn waar je het meest dramatische verschil zult zien van een gecachte CSS-strategie.

Synthetisch Testen

Lighthouse, WebPageTest en vergelijkbare tools bieden gecontroleerde, reproduceerbare metingen. Hoewel ze het cachegedrag van herhaalbezoeken niet vastleggen, zijn ze nuttig voor het identificeren van duidelijke knelpunten en het verifiëren dat je CSS-leveringsstrategie werkt zoals bedoeld.

A/B-testen van CSS-leveringsstrategieën

De meest rigoureuze aanpak is het A/B-testen van verschillende CSS-leveringsstrategieën. Serveer de helft van je gebruikers de traditionele inline kritische CSS en de andere helft een enkel gecacht bestand, en vergelijk vervolgens RUM-statistieken. Dit elimineert het giswerk en geeft je gegevens die specifiek zijn voor jouw gebruikersbasis.

2.4s
average FCP improvement on repeat visits when switching from inline critical CSS to a single cached stylesheet, based on GitHub’s measured results

De Toekomst van CSS-prestaties

GitHub's bevindingen maken deel uit van een bredere verschuiving in hoe de frontend-gemeenschap over prestaties denkt. Het tijdperk van micro-optimalisatie van bytes maakt plaats voor een meer holistische visie die prioriteit geeft aan caching, het aantal verzoeken en de totale gebruikerservaring over meerdere bezoeken.

Verschillende trends ondersteunen deze evolutie:

  • HTTP/3 en QUIC: De volgende generatie HTTP-protocollen vermindert de overhead van individuele verzoeken verder, waardoor de strategie van "minder, grotere verzoeken" nog gunstiger wordt
  • Verbeterde browsercaching: Browsers worden steeds geavanceerder in hun cachegedrag, waardoor cache-first strategieën betrouwbaarder worden
  • CDN-alomtegenwoordigheid: Content delivery networks zijn nu standaardinfrastructuur, waardoor edge-cached assets dramatisch sneller kunnen worden geserveerd
  • CSS-in-JS-evolutie: Frameworks zoals styled-components en Emotion bewegen richting statische extractie, waardoor de grens tussen CSS- en JavaScript-optimalisatie vervaagt

Conclusie: Het Tegenintuïtieve Pad naar Snellere CSS

GitHub's "ship more CSS"-ontdekking is een herinnering dat prestatieoptimalisatie zelden zo eenvoudig is als het lijkt. De conventionele wijsheid, inline kritische CSS, code-split je stijlbladen, minimaliseer elke byte, ontstond in een tijdperk met andere beperkingen en andere browsers. In het moderne web, met HTTP/2, geavanceerde caching en alomtegenwoordige CDN's, is de calculus verschoven.

De belangrijkste conclusie is niet dat je opgeblazen CSS moet leveren. Het is dat de strategie van CSS-levering belangrijker is dan de grootte van het CSS-bestand. Een enkel, goed georganiseerd, cacheerbaar stijlblad, zelfs als het groter is dan het theoretische minimum, kan een betere gebruikerservaring bieden dan een hyper-geoptimaliseerd systeem dat bij elk verzoek inline stijlen opnieuw verzendt.

Voor frontend-ontwikkelaars zijn de implicaties bevrijdend: vereenvoudig je CSS-levering, focus op caching, geef prioriteit aan herhaalbezoekprestaties en besteed je optimalisatiebudget waar het echt telt. En als het gaat om het bouwen van de CSS zelf, elimineren tools zoals DivMagic de uren aan handmatige reverse-engineering die vaak in de eerste plaats bloat introduceren.

Lever meer CSS. Maar lever het slim.

Begin vandaag nog met bouwen met DivMagic

Sluit je aan bij meer dan 10.000 ontwikkelaars, ontwerpers en bedrijfseigenaren om code van elke website te kopiëren en deze in hun eigen projecten te gebruiken.

Get DivMagic for 42% off

Limited time deal for 22:45