Navigatie overslaan

Methodologie

Overzicht

De Web Almanac is een project georganiseerd door HTTP Archive. HTTP Archive is in 2010 opgericht door Steve Souders met de missie om bij te houden hoe het web is opgebouwd. Het evalueert maandelijks de samenstelling van miljoenen webpagina's en stelt zijn terabytes aan metadata beschikbaar voor analyse op BigQuery. Meer informatie over HTTP Archive.

De missie van de Web Almanac is om het datawarehouse van HTTP Archive nog toegankelijker te maken voor de webgemeenschap door vakexperts te laten voorzien van gecontextualiseerde inzichten. U kunt het zien als een jaarlijkse opslagplaats van kennis over de staat van het web, aangezien 2019 de eerste editie is.

De 2019-editie van de Web Almanac bestaat uit vier pijlers: inhoud, beleving, publicatie en distributie. Elk deel van het schriftelijke rapport vertegenwoordigt een pijler en bestaat uit hoofdstukken die de verschillende aspecten ervan onderzoeken. Deel II vertegenwoordigt bijvoorbeeld de gebruikerservaring en omvat de hoofdstukken Prestaties, Beveiliging, Toegankelijkheid, SEO, PWA en Mobiel internet.

Over de dataset

De HTTP Archive-dataset wordt maandelijks continu bijgewerkt met nieuwe gegevens. Voor de 2019-editie van de Web Almanac zijn, tenzij anders vermeld in het hoofdstuk, alle statistieken afkomstig van de crawl van juli 2019. Deze resultaten zijn openbaar doorzoekbaar op BigQuery in tabellen met het voorvoegsel 2019_07_01.

Alle statistieken die in de Web Almanac worden gepresenteerd, zijn openbaar reproduceerbaar met behulp van de dataset op BigQuery. U kunt bladeren door de zoekopdrachten die door alle hoofdstukken worden gebruikt in onze GitHub-repository.

Houd er rekening mee dat sommige van deze zoekopdrachten vrij groot zijn en duur kunnen zijn om zelf uit te voeren, aangezien BigQuery wordt gefactureerd per terabyte. Raadpleeg, voor hulp bij het beheersen van uw uitgaven, Tim Kadlec’s bericht BigQuery gebruiken zonder de Bank te breken.

Zie bijvoorbeeld 01_01b.sql voor meer informatie over het gemiddelde aantal bytes van JavaScript per desktop- en mobiele pagina:

#standardSQL
# 01_01b: Distribution of JS bytes by client
SELECT
  percentile,
  _TABLE_SUFFIX AS client,
  APPROX_QUANTILES(ROUND(bytesJs / 1024, 2), 1000)[OFFSET(percentile * 10)] AS js_kbytes
FROM
  `httparchive.summary_pages.2019_07_01_*`,
  UNNEST([10, 25, 50, 75, 90]) AS percentile
GROUP BY
  percentile,
  client
ORDER BY
  percentile,
  client

Resultaten voor elke statistiek zijn openbaar zichtbaar in hoofdstukspecifieke spreadsheets, bijvoorbeeld JavaScript-resultaten.

Websites

Er zijn 5.790.700 websites in de dataset. Daaronder zijn 5.297.442 mobiele websites en 4.371.973 desktopwebsites. De meeste websites zijn opgenomen in zowel de mobiele als de desktop-subset.

HTTP Archive haalt de URL's voor zijn websites uit het Chrome UX Report. Het Chrome UX Report is een openbare dataset van Google die gebruikerservaringen verzamelt op miljoenen websites die actief worden bezocht door Chrome-gebruikers. Dit geeft ons een lijst met websites die actueel zijn en een weerspiegeling van het echte webgebruik. De dataset van het Chrome UX Report bevat een vormfactordimensie, die we gebruiken om alle websites toegankelijk te maken voor desktop- of mobiele gebruikers.

De HTTP Archive crawl van juli 2019 die door de Web Almanac werd gebruikt, gebruikte de meest recent beschikbare Chrome UX Report-release, mei 2019 (201905), voor de lijst met websites. Deze dataset is vrijgegeven op 11 juni 2019 en legt websites vast die in de maand mei door Chrome-gebruikers zijn bezocht.

Vanwege beperkte bronnen kan het HTTP Archive slechts één pagina van elke website in het Chrome UX Report testen. Om dit te verzoenen, zijn alleen de startpagina's opgenomen. Houd er rekening mee dat dit enige vertekening in de resultaten zal introduceren, omdat een startpagina niet noodzakelijk representatief is voor de hele website.

HTTP Archive wordt ook beschouwd als een testhulpmiddel voor laboratoria, wat betekent dat het websites test vanuit een datacenter en geen gegevens verzamelt van echte gebruikerservaringen. Daarom worden alle startpagina's van websites getest met een lege cache in een uitgelogde staat.

Metrische gegevens

HTTP Archive verzamelt statistieken over hoe het web is opgebouwd. Het bevat basisstatistieken zoals het aantal bytes per pagina, of de pagina is geladen via HTTPS en individuele verzoek- en antwoordheaders. De meeste van deze statistieken worden geleverd door WebPageTest, die fungeert als testrunner voor elke website.

Andere testhulpmiddelen worden gebruikt om meer geavanceerde statistieken over de pagina te bieden. Lighthouse wordt bijvoorbeeld gebruikt om audits uit te voeren op de pagina om de kwaliteit ervan te analyseren op gebieden als toegankelijkheid en SEO. De sectie Hulpmiddelen hieronder gaat dieper in op elk van deze hulpmiddelen.

Om enkele van de inherente beperkingen van een laboratoriumgegevensset te omzeilen, gebruikt de Web Almanac ook het Chrome UX Report voor statistieken over gebruikerservaringen, vooral op het gebied van prestatie.

Sommige statistieken zijn volledig buiten bereik. We hebben bijvoorbeeld niet per se de mogelijkheid om de hulpmiddelen te detecteren die worden gebruikt om een website te bouwen. Als een website is gebouwd met de create-react-app, kunnen we zien dat deze het React-framework gebruikt, maar niet noodzakelijkerwijs dat een bepaalde bouw-hulpmiddel wordt gebruikt. Tenzij deze hulpmiddelen detecteerbare vingerafdrukken achterlaten in de code van de website, kunnen we het gebruik ervan niet meten.

Andere statistieken zijn niet per se onmogelijk te meten, maar zijn uitdagend of onbetrouwbaar. Aspecten van webdesign zijn bijvoorbeeld inherent visueel en kunnen moeilijk te kwantificeren zijn, bijvoorbeeld of een pagina een opdringerig modaal dialoogvenster heeft.

Hulpmiddelen

De Web Almanac wordt mogelijk gemaakt met behulp van de volgende open source hulpmiddelen

WebPageTest

WebPageTest is een prominente hulpmiddel voor het testen van webprestaties en de ruggengraat van HTTP Archive. We gebruiken een privé-instantie van WebPageTest met privétest agenten, de daadwerkelijke browsers die elke webpagina testen. Desktop- en mobiele websites worden getest onder verschillende configuraties:

Config Desktop Mobiel
Apparaat Linux-VM Geëmuleerde Moto G4
User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 PTST/190704.170731 Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4) Build/MPJ24.139-64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Mobile Safari/537.36 PTST/190628.140653
Locatie Redwood City, Californië, VS
The Dalles, Oregon, VS
Redwood City, Californië, VS
The Dalles, Oregon, VS
Verbinding Kabel (5/1 Mbps 28 ms RTT) 3G (1.600 / 0.768 Mbps 300 ms RTT)
Viewport 1024 x 768 px 512 x 360 px

Desktopwebsites worden uitgevoerd vanuit een Chrome-desktopomgeving op een Linux-VM. De netwerksnelheid is gelijk aan een kabelverbinding.

Mobiele websites worden uitgevoerd vanuit een mobiele Chrome-omgeving op een geëmuleerd Moto G4-apparaat met een netwerksnelheid die gelijk is aan een 3G-verbinding. Merk op dat de geëmuleerde mobiele User Agent zichzelf identificeert als Chrome 65, maar in feite Chrome 75 onder de motorkap is.

Er zijn twee locaties van waaruit tests worden uitgevoerd: Californië en Oregon, VS. HTTP Archive onderhoudt zijn eigen testagenthardware in het Internet Archive datacenter in Californië. Er zijn aanvullende testagenten toegevoegd op de us-west-1-locatie van Google Cloud Platform in Oregon indien nodig.

Het privé-exemplaar van WebPageTest van HTTP Archive wordt gesynchroniseerd met de laatste openbare versie en aangevuld met aangepaste statistieken. Dit zijn fragmenten van JavaScript die aan het einde van de test op elke website worden geëvalueerd. De aangepaste statistiek almanac.js bevat verschillende statistieken die anders niet haalbaar waren berekend, bijvoorbeeld degene die afhankelijk zijn van de DOM-status.

De resultaten van elke test worden beschikbaar gesteld als een HAR-bestand, een JSON-geformatteerd archiefbestand met metadata over de webpagina.

Lighthouse

Lighthouse is een geautomatiseerde hulpmiddel voor websitekwaliteitsborging, ontwikkeld door Google. Het controleert webpagina's om ervoor te zorgen dat ze geen antipatronen van gebruikerservaringen bevatten, zoals niet-geoptimaliseerde afbeeldingen en ontoegankelijke inhoud.

HTTP Archive voert de nieuwste versie van Lighthouse uit voor al zijn mobiele webpagina's -- desktoppagina's zijn niet opgenomen vanwege beperkte bronnen. Vanaf de crawl van juli 2019 gebruikte HTTP Archive de 5.1.0 versie van Lighthouse.

Lighthouse wordt uitgevoerd als zijn eigen afzonderlijke test vanuit WebPageTest, maar het heeft zijn eigen configuratieprofiel:

Config Waarde
CPU-vertraging 1x*
Download doorvoer 1,6 Mbps
Upload doorvoer 0,768 Mbps
RTT 150 ms

* Merk op dat Lighthouse normaal gesproken is geconfigureerd om een CPU-vertraging van 4x te hebben, maar vanwege een bug in WebPageTest was dit 1x ten tijde van de testen.

Raadpleeg de Lighthouse-documentatie voor ontwikkelaars voor meer informatie over Lighthouse en de audits die beschikbaar zijn in HTTP Archive.

Wappalyzer

Wappalyzer is een hulpmiddel voor het detecteren van technologieën die door webpagina's worden gebruikt. Er zijn 65 categorieën geteste technologieën, variërend van JavaScript-frameworks tot CMS-platforms en zelfs cryptocurrency-mijnwerkers. Er zijn meer dan 1.200 ondersteunde technologieën.

HTTP Archive voert de nieuwste versie van Wappalyzer uit voor alle webpagina's. Vanaf juli 2019 gebruikte de Web Almanac de 5.8.3-versie van Wappalyzer.

Wappalyzer ondersteunt veel hoofdstukken die de populariteit van ontwikkelaarshulpmiddelen zoals WordPress, Bootstrap en jQuery analyseren. Bijvoorbeeld de e-commerce en CMS-hoofdstukken zijn sterk afhankelijk van de respectievelijke E-commerce en CMS technologieën die zijn gedetecteerd door Wappalyzer.

Alle detectiehulpmiddelen, inclusief Wappalyzer, hebben hun beperkingen. De validiteit van hun resultaten hangt altijd af van hoe nauwkeurig hun detectiemechanismen zijn. De Web Almanac voegt een opmerking toe aan elk hoofdstuk waarin Wappalyzer wordt gebruikt, maar de analyse is mogelijk niet nauwkeurig vanwege een specifieke reden.

Chrome UX Report

Het Chrome UX Report is een openbare dataset met echte Chrome-gebruikerservaringen. Ervaringen zijn gegroepeerd op basis van de oorsprong van websites, bijvoorbeeld https://www.example.com. De dataset bevat distributies van UX-statistieken zoals verf, belasting, interactie en lay-outstabiliteit. Naast groepering per maand, kunnen ervaringen ook worden opgesplitst in dimensies zoals geografie op landniveau, vormfactor (desktop, telefoon, tablet) en effectief verbindingstype (4G, 3G, enz.).

Voor Web Almanac statistieken die verwijzen naar gegevens over de echte gebruikerservaring uit het Chrome UX Report, wordt de gegevensset (201907) van juli 2019 gebruikt.

U kunt meer informatie over de dataset vinden in de handleiding Het Chrome UX Report op BigQuery gebruiken op web.dev.

Third Party Web

Third Party Web is een onderzoeksproject van Patrick Hulce, auteur van het Hoofdstuk Derden, dat HTTP Archive en Lighthouse-gegevens gebruikt om de impact te identificeren en analyseren van bronnen van derden op internet.

Domeinen worden als provider van derden beschouwd als ze op ten minste 50 unieke pagina's voorkomen. Het project groepeert providers ook op basis van hun respectieve diensten in categorieën zoals advertenties, analyse en sociaal.

Verschillende hoofdstukken in de Web Almanac gebruiken de domeinen en categorieën uit deze dataset om de impact van derden te begrijpen.

Rework CSS

Rework CSS is een op JavaScript gebaseerde CSS-parser. Het neemt volledige stylesheets en produceert een JSON-gecodeerd object dat elke individuele stijlregel, selector, richtlijn en waarde onderscheidt.

Deze speciale hulpmiddel heeft de nauwkeurigheid van veel van de statistieken in de CSS hoofdstuk aanzienlijk verbeterd. CSS in alle externe stylesheets en inline stijlblokken voor elke pagina werden geparseerd en opgevraagd om de analyse mogelijk te maken. Zie deze thread voor meer informatie over hoe deze is geïntegreerd met de HTTP Archive-dataset op BigQuery.

Analytisch proces

De Web Almanac duurde ongeveer een jaar om te plannen en uit te voeren, met de coördinatie van tientallen bijdragers uit de webgemeenschap. In dit gedeelte wordt beschreven waarom we de statistieken hebben gekozen die u in de Web Almanac ziet, hoe ze werden opgevraagd en geïnterpreteerd.

Brainstormen

De start van de Web Almanac begon in januari 2019 als een bericht op het HTTP Archive-forum het initiatief beschrijvend en draagvlak zoekend. In maart 2019 hebben we een document voor openbare brainstormsessies gemaakt waarin iedereen in de webgemeenschap ideeën voor hoofdstukken of statistieken kan inschrijven. Dit was een cruciale stap om ervoor te zorgen dat we ons concentreerden op dingen die belangrijk zijn voor de gemeenschap en dat er diverse stemmen in het proces zijn opgenomen.

Als resultaat van de brainstorm werden 20 hoofdstukken gestold en begonnen we vakdeskundigen en collega-recensenten aan elk hoofdstuk toe te wijzen. Dit proces had een zekere vooringenomenheid vanwege de uitdaging om vrijwilligers ertoe te brengen zich in te zetten voor een project van deze omvang. Veel van de bijdragers zijn dus lid van dezelfde professionele kringen. Een expliciet doel voor toekomstige edities van de Web Almanac is om nog meer ondervertegenwoordigde en heterogene stemmen als auteurs en collega-recensenten aan te moedigen.

We hebben van mei tot en met juni 2019 mensen aan hoofdstukken gekoppeld en hun input gekregen om de afzonderlijke statistieken van elk hoofdstuk te finaliseren.

Analyse

In juni 2019, met de stabiele lijst met metrieken en hoofdstukken, hebben data-analisten de metrieken getoetst op haalbaarheid. In sommige gevallen moesten aangepaste statistieken worden gemaakt om hiaten op te vullen in onze analytische capaciteiten.

Gedurende juli 2019 heeft de HTTP Archive-datapijplijn miljoenen websites gecrawld en de metadata verzameld voor gebruik in de Web Almanac.

Vanaf augustus 2019 begonnen de data-analisten met het schrijven van query's om de resultaten voor elke statistiek te extraheren. In totaal werden 431 zoekopdrachten met de hand geschreven! U kunt door alle zoekopdrachten bladeren per hoofdstuk in de sql/2019 map van de GitHub-repository van het project.

Interpretatie

Auteurs werkten met analisten om de resultaten correct te interpreteren en passende conclusies te trekken. Terwijl auteurs hun respectievelijke hoofdstukken schreven, putten ze uit deze statistieken om hun framing van de staat van het web te ondersteunen. Collega-recensenten werkten met auteurs om de technische correctheid van hun analyse te waarborgen.

Om de resultaten begrijpelijker te maken voor lezers, hebben webontwikkelaars en analisten datavisualisaties gemaakt om in het hoofdstuk in te bedden. Sommige visualisaties zijn vereenvoudigd om de conclusies gemakkelijker te begrijpen. In plaats van een volledig histogram van een distributie te laten zien, wordt er bijvoorbeeld slechts een handvol percentielen weergegeven. Tenzij anders vermeld, worden alle verdelingen samengevat met behulp van percentielen, vooral medianen (50e percentiel), en geen gemiddelden.

Ten slotte hebben redacteuren de hoofdstukken herzien om eenvoudige grammaticale fouten op te lossen en voor consistentie in de leeservaring te zorgen.

Vooruit kijkend

De 2019-editie van de Web Almanac is de eerste van wat we hopen een jaarlijkse traditie te worden in de webgemeenschap van introspectie en een toewijding aan positieve verandering. Het is een enorme inspanning geweest om dit punt te bereiken dankzij vele toegewijde bijdragers en we hopen zoveel mogelijk te gebruiken van dit werk om toekomstige edities nog meer gestroomlijnd te maken.

Als u geïnteresseerd bent om bij te dragen aan de 2020-editie van de Web Almanac, vul dan ons interesseformulier in. We horen graag uw ideeën om dit project nog beter te maken!