Metodologia
Visão geral
O Web Almanac é um projeto organizado pelo HTTP Archive. HTTP Archive foi iniciado em 2010 por Steve Souders com a missão de rastrear como a web é construída. Ele avalia a composição de milhões de páginas da web mensalmente e disponibiliza seus terabytes de metadados para análise no BigQuery. Saiba mais sobre HTTP Archive.
A missão do Web Almanac é tornar o data warehouse do HTTP Archive ainda mais acessível para a comunidade web, fornecendo insights contextualizados por especialistas no assunto. Você pode pensar nisso como um repositório anual de conhecimento sobre o estado da web, sendo a edição de 2019 a primeira.
A edição de 2019 do Web Almanac é composta por quatro pilares: conteúdo, experiência, publicação e distribuição. Cada parte do relatório escrito representa um pilar e é composta por capítulos que exploram seus diferentes aspectos. Por exemplo, a Parte II representa a experiência do usuário e inclui os capítulos de Desempenho, Segurança, Acessibilidade, SEO, PWA e Web Móvel.
Sobre o conjunto de dados
O conjunto de dados do HTTP Archive é continuamente atualizado com novos dados mensalmente. Para a edição de 2019 do Web Almanac, a menos que indicado de outra forma no capítulo, todas as métricas foram obtidas a partir da captura de julho de 2019. Esses resultados estão acessíveis para consulta pública no BigQuery em tabelas com o prefixo 2019_07_01
.
Todas as métricas apresentadas no Web Almanac são publicamente reproduzíveis usando o conjunto de dados no BigQuery. Você pode verificar as consultas usadas por todos os capítulos em nosso repositório no GitHub.
Por favor, observe que algumas dessas consultas são bastante extensas e podem ser custosas para executar, pois o BigQuery é cobrado por terabyte. Para obter ajuda para controlar seus gastos, consulte o artigo de Tim Kadlec’s Using BigQuery Without Breaking the Bank.
Por exemplo, para entender a mediana do número de bytes de JavaScript por página em desktop e dispositivos móveis, consulte 01_01b.sql:
#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
Os resultados para cada métrica são publicamente visíveis em planilhas específicas de cada capítulo, por exemplo. Resultados de JavaScript..
Websites
Existem 5.790.700 sites no conjunto de dados. Dentre esses, 5.297.442 são sites para dispositivos móveis e 4.371.973 são sites para desktop. A maioria dos sites está incluída tanto no conjunto de dispositivos móveis quanto no conjunto de desktop.
O HTTP Archive obtém os URLs dos sites a partir do Chrome UX Report. O Chrome UX Report é um conjunto de dados público do Google que agrega experiências do usuário em milhões de sites visitados ativamente por usuários do Chrome. Isso nos fornece uma lista de sites atualizados e um reflexo do uso real da web. O conjunto de dados do Chrome UX Report inclui uma dimensão de fator de forma, que usamos para obter todos os sites acessados por usuários de desktop ou dispositivos móveis.
O rastreamento do HTTP Archive em julho de 2019, usado pelo Web Almanac, utilizou a versão mais recente disponível do Chrome UX Report, de maio de 2019 (201905), para obter sua lista de sites. Esse conjunto de dados foi lançado em 11 de junho de 2019 e captura os sites visitados por usuários do Chrome durante o mês de maio.
Devido a limitações de recursos, o HTTP Archive pode testar apenas uma página de cada site no relatório do Chrome UX. Para resolver isso, incluímos apenas as páginas iniciais (home pages). Esteja ciente de que isso pode introduzir algum viés nos resultados, pois a página inicial nem sempre é representativa de todo o site.
O HTTP Archive também é considerado uma ferramenta de teste de laboratório, o que significa que ele testa sites a partir de um datacenter e não coleta dados de experiências de usuários do mundo real. Portanto, todas as páginas iniciais dos sites são testadas com o cache vazio em um estado de logout.
Métricas
O HTTP Archive coleta métricas sobre como a web é construída. Isso inclui métricas básicas como o número de bytes por página, se a página foi carregada por HTTPS e os cabeçalhos individuais de solicitação e resposta. A maioria dessas métricas é fornecida pelo WebPageTest, que atua como o executor de teste para cada site.
Outras ferramentas de teste são utilizadas para fornecer métricas mais avançadas sobre a página. Por exemplo, o Lighthouse é usado para executar auditorias na página e analisar sua qualidade em áreas como acessibilidade e SEO. A seção Ferramentas abaixo detalha cada uma dessas ferramentas com mais informações.
Para contornar algumas das limitações inerentes de um conjunto de dados de laboratório, o Web Almanac também utiliza o Chrome UX Report para métricas sobre experiências do usuário, especialmente na área de desempenho da web.
Algumas métricas estão completamente fora do nosso alcance. Por exemplo, não temos necessariamente a capacidade de detectar as ferramentas utilizadas para construir um site. Se um site é construído usando o create-react-app, podemos identificar que ele utiliza o framework React, mas não necessariamente que uma ferramenta de compilação específica foi utilizada. A menos que essas ferramentas deixem marcas detectáveis no código do site, não podemos medir o seu uso.
Outras métricas podem não ser necessariamente impossíveis de medir, mas são desafiadoras ou pouco confiáveis. Por exemplo, aspectos do design web são inherentemente visuais e podem ser difíceis de quantificar, como determinar se uma página possui uma caixa de diálogo modal intrusiva.
Ferramentas
O Web Almanac é possível graças à ajuda das seguintes ferramentas de código aberto.
WebPageTest
O WebPageTest é uma ferramenta proeminente de teste de desempenho da web e a base do HTTP Archive. Utilizamos uma instância privada do WebPageTest com agentes de teste privados, que são os navegadores reais que testam cada página da web. Os websites para desktop e mobile são testados sob diferentes configurações:
Config | Desktop | Mobile |
---|---|---|
Device | Linux VM | Emulated 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 |
Location |
Redwood City, California, USA The Dalles, Oregon, USA |
Redwood City, California, USA The Dalles, Oregon, USA |
Connection | Cable (5/1 Mbps 28ms RTT) | 3G (1.600/0.768 Mbps 300ms RTT) |
Viewport | 1024 x 768px | 512 x 360px |
Os websites para desktop são executados em um ambiente do Chrome para desktop em uma máquina virtual Linux. A velocidade de rede é equivalente a uma conexão de cabo.
Os websites para dispositivos móveis são executados em um ambiente do Chrome para dispositivos móveis em um dispositivo Moto G4 emulado, com uma velocidade de rede equivalente a uma conexão 3G. Observe que o User Agent emulado para dispositivos móveis se identifica como Chrome 65, mas, na verdade, é o Chrome 75 por baixo dos panos.
Existem dois locais de onde os testes são executados: Califórnia e Oregon, EUA. O HTTP Archive mantém seu próprio hardware de agentes de teste localizado no datacenter do Internet Archive na Califórnia. Agentes de teste adicionais na localização us-west-1 da Google Cloud Platform em Oregon são adicionados conforme necessário.
A instância privada do WebPageTest do HTTP Archive é mantida sincronizada com a versão pública mais recente e complementada com métricas personalizadas. Essas são trechos de JavaScript que são avaliados em cada site ao final do teste. A métrica personalizada almanac.js inclui várias métricas que, de outra forma, seriam inviáveis de calcular, por exemplo, aquelas que dependem do estado do DOM.
Os resultados de cada teste são disponibilizados como um arquivo HAR file, um arquivo de arquivo formatado em JSON que contém metadados sobre a página da web.
Lighthouse
Lighthouse é uma ferramenta automatizada de garantia de qualidade de sites desenvolvida pelo Google. Ela realiza auditorias em páginas da web para garantir que elas não contenham antipadrões de experiência do usuário, como imagens não otimizadas e conteúdo inacessível.
O HTTP Archive utiliza a versão mais recente do Lighthouse para todas as suas páginas da web móveis - as páginas da web para desktop não são incluídas devido a recursos limitados. A partir da captura de julho de 2019, o HTTP Archive utilizou a versão 5.1.0 do Lighthouse.
O Lighthouse é executado como um teste distinto de dentro do WebPageTest, mas possui seu próprio perfil de configuração:
Config | Value |
---|---|
CPU slowdown | 1x* |
Download throughput | 1.6 Mbps |
Upload throughput | 0.768 Mbps |
RTT | 150 ms |
* Observe que o Lighthouse normalmente é configurado para ter uma desaceleração da CPU de 4x, mas devido a um bug no WebPageTest, isso foi de 1x no momento dos testes.
Para obter mais informações sobre o Lighthouse e as auditorias disponíveis no HTTP Archive, consulte a documentação do desenvolvedor do Lighthouse.
Wappalyzer
Wappalyzer é uma ferramenta para detectar as tecnologias utilizadas por páginas da web. Existem 65 categorias de tecnologias testadas, que vão desde frameworks JavaScript, plataformas de CMS e até mesmo mineradores de criptomoedas. Existem mais de 1.200 tecnologias suportadas.
O HTTP Archive executa a versão mais recente do Wappalyzer para todas as páginas da web. Até julho de 2019, o Web Almanac utilizava a versão 5.8.3 version do Wappalyzer.
O Wappalyzer é utilizado em muitos capítulos que analisam a popularidade de ferramentas de desenvolvimento, como WordPress, Bootstrap e jQuery. Por exemplo, os capítulos de Comércio Eletrônico e CMS ependem amplamente das respectivas categorias de tecnologias de Comércio Eletrônico e CMS detectadas pelo Wappalyzer.
Todas as ferramentas de detecção, incluindo o Wappalyzer, têm suas limitações. A validade dos resultados sempre dependerá da precisão de seus mecanismos de detecção. O Web Almanac incluirá uma observação em cada capítulo onde o Wappalyzer é usado, mas sua análise pode não ser precisa devido a uma razão específica.
Chrome UX Report
The Chrome UX Report é um conjunto de dados públicos de experiências reais de usuários do Chrome. As experiências são agrupadas por origem dos websites, por exemplo, https://www.example.com
. O conjunto de dados inclui distribuições de métricas de UX, como pintura, carregamento, interação e estabilidade do layout. Além de ser agrupado por mês, as experiências também podem ser divididas por dimensões como geografia em nível de país, formato (desktop, telefone, tablet) e tipo de conexão efetiva (4G, 3G, etc.).
Para as métricas do Web Almanac que fazem referência a dados reais de experiência do usuário do Chrome UX Report, é usado o conjunto de dados de julho de 2019 (201907).
Você pode aprender mais sobre o conjunto de dados no guia Using the Chrome UX Report on BigQuery no site web.dev.
Terceiros na Web
Third Party Web é um projeto de pesquisa liderado por Patrick Hulce, autor do capítulo Third Parties, que utiliza dados do HTTP Archive e do Lighthouse para identificar e analisar o impacto dos recursos de terceiros na web.
Domínios são considerados provedores de terceiros se aparecerem em pelo menos 50 páginas únicas. O projeto também agrupa os provedores por seus respectivos serviços em categorias como anúncios, análises e redes sociais.
Vários capítulos do Web Almanac utilizam os domínios e categorias deste conjunto de dados para entender o impacto dos terceiros.
Rework CSS
Rework CSS é um analisador de CSS baseado em JavaScript. Ele recebe folhas de estilo completas e produz um objeto codificado em JSON que distingue cada regra de estilo, seletor, diretiva e valor individual.
Essa ferramenta de propósito especial melhorou significativamente a precisão de muitas das métricas no capítulo de CSS. O CSS em todas as folhas de estilo externas e blocos de estilo embutidos de cada página foram analisados e consultados para tornar a análise possível. Consulte este tópico para obter mais informações sobre como ele foi integrado ao conjunto de dados do HTTP Archive no BigQuery.
Processo analítico
O Web Almanac levou cerca de um ano para ser planejado e executado com a coordenação de dezenas de colaboradores da comunidade web. Esta seção descreve por que escolhemos as métricas que você vê no Web Almanac, como elas foram consultadas e interpretadas.
Brainstorming
A concepção do Web Almanac começou em janeiro de 2019 com uma postagem no fórum do HTTP Archive descrevendo a iniciativa e buscando apoio. Em março de 2019, criamos um documento público de brainstorming no qual qualquer pessoa da comunidade web poderia contribuir com ideias para capítulos ou métricas. Esse foi um passo fundamental para garantir que estivéssemos nos concentrando em questões relevantes para a comunidade e incluindo um conjunto diversificado de vozes no processo.
Como resultado do brainstorming, 20 capítulos foram definidos e começamos a designar especialistas no assunto e revisores para cada capítulo.. Esse processo teve um certo viés inerente devido ao desafio de conseguir voluntários comprometidos com um projeto desse porte. Assim, muitos dos colaboradores são membros dos mesmos círculos profissionais. Um objetivo explícito para futuras edições do Web Almanac é incentivar ainda mais a inclusão de vozes sub-representadas e heterogêneas como autores e revisores.
Passamos de maio a junho de 2019 combinando pessoas com capítulos e obtendo suas contribuições para finalizar as métricas individuais que comporão cada capítulo.
Análise
Em junho de 2019, com a lista estável de métricas e capítulos, os analistas de dados fizeram a triagem das métricas para viabilidade. Em alguns casos, era necessário criar métricas personalizadas precisaram ser criadas para preencher lacunas em nossas capacidades analíticas.
Ao longo de julho de 2019, o pipeline de dados do HTTP Archive rastreou vários milhões de sites, reunindo os metadados a serem usados no Web Almanac.
A partir de agosto de 2019, os analistas de dados começaram a escrever consultas para extrair os resultados de cada métrica. No total, 431 consultas foram escritas à mão! Você pode navegar por todas as consultas por capítulo no diretório sql/2019 do repositório GitHub do projeto.
Interpretação
Os autores trabalharam com analistas para interpretar corretamente os resultados e tirar as conclusões apropriadas. À medida que os autores escreviam seus respectivos capítulos, eles extraíam dessas estatísticas para apoiar sua estrutura do estado da web. Os revisores trabalharam com os autores para garantir a correção técnica de suas análises.
Para tornar os resultados mais facilmente compreensíveis para os leitores, desenvolvedores e analistas da web criaram visualizações de dados para incorporar no capítulo. Algumas visualizações são simplificadas para facilitar a compreensão das conclusões. Por exemplo, em vez de mostrar um histograma completo de uma distribuição, apenas alguns percentis são mostrados. Salvo indicação em contrário, todas as distribuições são resumidas usando percentis, especialmente medianas (50º percentil), e não médias.
Finalmente, os editores revisaram os capítulos para corrigir erros gramaticais simples e garantir consistência em toda a experiência de leitura.
Perspectivas futuras
A edição de 2019 do Web Almanac é a primeira do que esperamos ser uma tradição anual na comunidade web de introspecção e compromisso com mudanças positivas. Chegar a este ponto foi um esforço monumental graças a muitos colaboradores dedicados e esperamos aproveitar o máximo possível deste trabalho para tornar as edições futuras ainda mais simplificadas.
Se você estiver interessado em contribuir para a edição 2020 do Web Almanac, preencha nosso formulário de interesse. Adoraríamos ouvir suas ideias para tornar este projeto ainda melhor!