Пропустить навигацию

Методология

Краткий обзор

The Web Almanac — это проект, организованный HTTP Archive. HTTP Archive был запущен в 2010 Стивом Садерсом (Steve Souders), чтобы отслеживать развитие веба. Каждый месяц этот сервис анализирует содержимое миллионов веб-страниц и записывает терабайты метаданных в BigQuery для последующего анализ.

Задача Web Almanac состоит в том, чтобы стать ежегодным хранилищем общедоступных сведений о состоянии веба. Наша цель — понятно рассказать о данных, собранных HTTP Archive, для этого мы приглашаем профильных экспертов.

Выпуск Web Almanac в 2020 году поделён на четыре части: контент, пользовательские ощущения, публикация и распространение. В каждой части есть несколько глав, которые рассматривают главную тему с разных точек зрения. Например, во второй части пользовательские ощущения в соответствующих главах рассматриваются с разных сторон, а именно: производительности, безопасности и доступности.

О наборе данных

Набор данных HTTP Archive постоянно растёт каждый месяц. Для издания Web Almanac 2020 года, если в главе не указано иное, все метрики были взяты из сканирования сайтов за август 2020 года. Эти показатели можно свободно запросить из таблиц с префиксом 2020_08_01 на BigQuery.

Все метрики, представленные в Web Almanac, можно получить из набора данных на BigQuery. Вы можете посмотреть запросы, используемые во всех главах, в нашем репозитории на GitHub.

Обратите внимание, что некоторые запросы могут быть достаточно большими и дорогостоящими для выполнения, так как оплата за пользование BigQuery начинается после обработки одного терабайта данных. Для того, чтобы помочь вам контролировать расходы, прочитайте пост Тима Кадлека (Tim Kadlec) Using BigQuery Without Breaking the Bank.

Например, чтобы выяснить среднее количество байт JavaScript-кода в десктопной и мобильной версиях страницы, посмотрите запрос 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

Результаты каждой метрики доступны для просмотра в таблицах, созданных специально для каждой главы, например, результаты по JavaScript. В конце каждой главы приведены ссылки на запросы метрик, результаты и комментарии читателей.

Сайты

В набор данных находятся 7,546,709 сайтов. Из них 6,347,919 — мобильные сайты, а 5,593,642 — обычные сайты (или десктопные, т.е. для компьютеров). Большинство этих сайтов состоят как в мобильных, так в и десктопных выборках.

HTTP Archive берёт URL-адреса сайтов для тестирования из отчёта Chrome UX Report. Отчёт Chrome UX Report — это общедоступный набор данных от Google, который агрегирует информацию о пользовательских ощущениях от использования миллионов сайтов, активно посещаемых с помощью браузера Chrome. В этом отчете содержится актуальный список сайтов, отражающий реальное использование веба. Набор данных отчета Chrome UX учитывает тип устройства, используемое для просмотра сайтов.

HTTP Archive для сканирования сайтов в августе 2020 года (на основе которых строится текущий Web Almanac) использовал последнюю редакцию отчёта Chrome UX. Набор данных 202006 был выпущен 14 июля 2020 года и содержит сайты, посещенные пользователями Chrome в течение июня.

Количество протестированных сайтов выросло на 20-30% по сравнению с Web Almanac в 2019 году. Этот рост был проанализирован Полом Кальвано (Paul Calvano) в его посте Growth of the Web in 2020.

Из-за ограниченности ресурсов, HTTP Archive может проверить только одну страницу каждого сайта в отчете Chrome UX Report. Поэтому чтобы можно было сопоставить данные, в отчёте рассматриваются только главные страницы. Следует отметить, что это приводит к искажению результатов, поскольку главная страница не всегда является репрезентативной для всего сайта.

Также HTTP Archive следует рассматривать с точки зрения синтетического инструмента тестирования, т.к. он анализирует сайты из дата-центра и не собирает данные на основе фактического взаимодействия пользователя с сайтом. Следовательно, все страницы сканируются с очищенным кешом в режиме инкогнито, а это не отражает реальную картину работы пользователя с сайтом.

Метрики

HTTP Archive собирает тысячи метрик, отражающих устройство веба. Эта коллекция включает основные метрики, такие как количество байт на страницу, была ли страница загружена по протоколу HTTPS, а также отдельные заголовки запросов и ответов. Большинство из этих метрик предоставляет WebPageTest, выступающий в качестве исполнителя тестов для каждого сайта.

Другие инструменты тестирования используются для определения более сложных метрик страницы. Например, Lighthouse запускается для аудита качества страницы с разных аспектов, таких как доступности или SEO. В следующем разделе Инструменты содержится более подробная информация по каждому из применяемых инструментов.

Чтобы обойти ограничения, присущие синтетическим (лабораторным) наборам данных, Web Almanac использует отчёт Chrome UX Report для получения метрик, связанных с пользовательскими ощущениями от посещения сайтов, особенное внимание уделяется производительности.

Некоторые метрики полностью недоступны. Например, не всегда удаётся возможность обнаружить технологии, используемые для создания сайта. Если сайт был создан при помощи утилиты create-react-app, то мы знаем, что он использует библиотеку React, однако это не означает, что применялся именно этот инструмент сборки. Если инструменты разработки не оставляли никаких следов в коде, которые бы указывали на них, то невозможно определить их использование.

Другие метрики возможно измерить, но это трудно или ненадежно. Например, некоторые аспекты веб-дизайна по своей сути носят визуальный характер, поэтому сложно выяснить, например, есть ли на странице навязчивые модальные окна.

Инструменты

Web Almanac нельзя представить без использования перечисленных ниже опенсорс-инструментов.

WebPageTest

WebPageTest — хорошо известный инструмент тестирования производительности веб-страниц и главная опора HTTP Archive. Мы используем приватный экземпляр WebPageTest вместе с агентами тестирования — браузерами, которые проверяют каждую веб-страницу. Обычные и мобильные сайты проверяются на разных конфигурациях:

Конфигурация Компьютер Мобильное устройство
Устройство Виртуальная машина с Linux Эмулируемый Moto G4
User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 PTST/200805.230825 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/200815.130813
Локация Редвуд-Сити, штат Калифорния, США
Даллес, штат Орегон, США
Редвуд-Сити, штат Калифорния, США
Даллес, штат Орегон, США
Тип подключения Кабельный (5/1 Mbps 28ms RTT) 3G (1.600/0.768 Mbps 300ms RTT)
Вьюпорт 1024 x 768px 512 x 360px

Обычные сайты запускаются из Chrome на виртуальной машине с Linux. Скорость сети эквивалентна кабельному соединению.

Сайты для мобильных устройств запускаются в мобильном Chrome на эмулируемом устройстве Moto G4 со скоростью сети, эквивалентной 3G-соединению. Обратите внимание, что в эмулируемом устройстве заголовок User Agent будет определяться как Chrome 65, но на самом деле это Chrome 84.

Тесты выполняются из двух локаций в США: Калифорния и Орегон. HTTP Archive имеет собственное оборудование, на которой запущен агент тестирования, которое находится в дата-центре Internet Archive в Калифорнии. По мере необходимости добавляются дополнительные агенты тестирования на локацию us-west-1 из Google Cloud Platform в штате Орегон.

Приватный экземпляр WebPageTest в HTTP Archive синхронизирован с последней публичной версией и дополнен собственными метриками. Это фрагменты JavaScript-кода, которые выполняются на каждом сайте в конце теста. Благодаря помощи многих аналитиков данных, в частности, титаническим усилиям Тони МакКреа (Tony McCreath), выпуск Web Almanac от 2020 года значительно расширил возможности тестовой инфраструктуры HTTP Archive вместе с более 3000 строк нового кода.

Результаты каждого теста доступны в виде HAR-файла — архивного файла в формате JSON, содержащего метаданные о веб-странице.

Lighthouse

Lighthouse — это автоматизированный инструмент контроля качества сайтов от компании Google. Он проводит проверку страницу по разным метрикам, выявляя ошибки вроде неоптимизированных изображений или недоступного контента.

HTTP Archive запускает последнюю версию Lighthouse на всех мобильных веб-страницах, декстопные версии не учитываются в силу ограниченности ресурсов. На момент сканирования за август 2020 года HTTP Archive использовался Lighthouse версии 6.2.0.

Lighthouse запускается в виде отдельного теста внутри WebPageTest, но с использованием отдельной настройки конфигурации:

Конфигурация Значение
Замедление процессора 1x/4x
Пропускная способность скачивания 1.6 Mbps
Пропускная способность загрузки 0.768 Mbps
RTT 150 ms

Для получения более подробной информации о Lighthouse и аудитах, используемых HTTP Archive, обратитесь к документации Lighthouse для разработчиков.

Wappalyzer

Wappalyzer — это инструмент для определения используемых на сайте технологий. Обнаруживаются 64 категории технологий, начиная от JavaScript-фреймворков и заканчивая CMS-платформами и даже криптовалютными майнерами. Всего поддерживается отслеживание более 1400 технологий.

HTTP Archive запускает последнюю версию Wappalyzer на всех веб-страниц. По состоянию на август 2020 года Web Almanac использовал Wappalyzer версии 6.2.0.

Многие главы снабжены данными из Wappalyzer, которые анализируют популярность инструментов, таких как WordPress, Bootstrap и jQuery. Например, информация из глав Электронная коммерция и CMS в значительной степени опирается на соответствующих категориях технологий Ecommerce и CMS, обнаруживаемых Wappalyzer.

Все инструменты распознания используемых технологий, включая Wappalyzer, имеют свои ограничения. Достоверность результатов всегда будет зависеть от точности алгоритмов определения. Web Almanac добавляет примечание в каждой главе, где используется Wappalyzer, но его анализ по определённым причинам может быть не точным.

Отчёт Chrome UX Report

Chrome UX Report — это публичный набор данных, содержащий пользовательские ощущения от посещения сайтов через браузер Chrome. Впечатления пользователей сгруппированы по каждому сайту (например, https://www.example.com). Набор данных включает распределение UX-метрик типа отрисовки, загрузки, взаимодействия и стабильности раскладки. В дополнение к группировке по месяцам, восприятие сайта пользователем также можно разбить по таким параметрам, как страна, форм-фактор устройства (десктоп, телефон, планшет) и тип соединения (4G, 3G и т.д.).

В основе метрик Web Almanac, относящиеся к пользовательским впечатлениям от использования сайтов, лежит набор данных отчёта Chrome UX Report за август 2020 года (номер 202008).

Подробнее о наборе данных можно узнать в руководстве Using the Chrome UX Report on BigQuery на сайте web.dev.

Сторонний код в вебе

Third Party Web — это исследовательский проект Патрика Халса (Patrick Hulce), автора главы про сторонний код в 2019 году, который использует данные HTTP Archive и Lighthouse для определения и анализа влияния ресурсов сторонних сервисов на веб.

Домены считаются сторонними сервисами, если они используются на более чем 50 уникальных страницах. Проект также группирует сервисы по категориям, таких как реклама, аналитика и соцсети.

Несколько глав Web Almanac используют домены и категории из этого набора данных, чтобы выяснить влияние сторонних сервисов.

Rework CSS

Rework CSS — это парсер CSS-кода, написанный на JavaScript. Он анализирует все таблицы стилей, распознавая каждое правило, селектор, директиву и значение из CSS-стилей, а затем возвращает объект со всеми этим данными, преобразованный в JSON-формат.

Этот специальный инструмент значительно улучшил точность многих метрик в главе по CSS. Для этого CSS-код во всех внешних таблицах стилях и в встроенных блоках на каждой странице был проанализирован. Читайте следующую ветку с обсуждениями, если хотите подробнее узнать о том, как этот инструмент был интегрирован с набором данных HTTP Archive на BigQuery.

Утилиты Rework

В этом году в главе по CSS под руководством Леа Вероу (Lea Verou) гораздо подробнее рассмотрено состояние CSS, для чего потребовалось выполнить более 100 запросов. Для сравнения: это в 2,5 раза больше запросов, чем в 2019 году. Чтобы справиться с таким масштабом анализа, Леа создала опенсорс-проект Rework Utils. Это утилиты, при помощи которых JSON-данные из Rework выходят на более высокий уровень, упрощая понимание CSS-кода и тем самым позволяя делать интересные выводы из полученной информации. Большая часть статистики в главе CSS получена с помощью этих скриптов.

Parsel

Parsel — парсер CSS-селекторов и калькулятор специфичности, написанный ведущим авторов главы по CSS Леа Вероу (Lea Verou), который доступен в виде отдельной опенсорс-библиотеки. Она широко используется во всех CSS-метриках, связанных с селекторами и специфичностью.

Аналитический процесс

Планирование и реализация Web Almanac заняло около года при сотрудничестве более сотни участников из веб-сообщества. В этом разделе объясняется про главы Web Almanac, как были получены метрики для них, и как они обрабатывались.

Планирование

Web Almanac 2020 стартовал в июне 2020 года, это случилось позже, чем в прошлом 2019 году, из-за последствий COVID-19 и протестов за социальную справедливость. Эти и другие события в 2020 году подорвали весь производственный цикл и создали дополнительные нагрузки на наших участников, помимо того уже стресса, связанного с нашим динамичным проектом.

Как мы написали в прошлогодней методологии:

Одной из чёткой и конкретной целью будущих изданий Web Almanac является ещё большее вовлечение в него представителей меньшинств в качестве авторов и рецензентов.

Для этого в этом году мы поменяли способ поиска и отбора авторов:

  • Предыдущим авторов было предложено не выступать снова в качестве авторов, чтобы быть оставить места для других точек зрения.
  • Всем тем, кто утверждал авторов на 2020 год, было предложено не выдвигать людей, кто выглядит как они или сходится во мнениях с ними.
  • Многие авторы в 2019 году были сотрудниками Google, поэтому в этом году мы попытались лучше сбалансировать точки зрения для охвата более широкого веб-сообщества. Мы считаем, что мнения в Web Almanac должны быть отражением самого сообщества, а не смещены в сторону какой-либо определенной компании, чтобы избежать создания замкнутого мира.
  • Руководители проекта рассмотрели все номинации авторов и постарались отобрать авторов, которые привнесут новые идеи и повысят роль представителей меньшинств в сообществе.

Мы надеемся, что в будущем повторим этот процесс отбора, чтобы Web Almanac стал более разнообразным и инклюзивным проектом, в котором участвуют авторы любого происхождения и социальных групп.

Наконец, в июле 2020 года, после серии мозговых штурмов и номинаций, были приняты 22 главы, а по каждой главе сформированы группы для написания, проверки и анализа контента.

Анализ

В июле и августе 2020 года, имея составленный список метрик и глав, аналитики данных отсортировали метрики для дальнейшего анализа. В некоторых случаях мы создали собственные метрики для заполнения пробелов в нашем аналитическом потенциале.

В течение августа 2020 года HTTP Archive обработал несколько миллионов сайтов, чтобы собрать метаданные для Web Almanac.

Аналитики начали писать запросы для извлечения результатов по каждой метрике. В общей сложности было вручную составлено сотни запросов! Вы можете посмотреть все запросы по годам и главам в репозитории запросов на GitHub.

Обработка

Авторы работали с аналитиками, чтобы корректно обработать результаты и подготовить соответствующие выводы. При написании своих глав авторы опирались на полученные статистические выводы, чтобы сформировать своё видение состояния веба. Рецензенты сотрудничали с авторами, чтобы добиться правильности анализа с технической точки зрения.

Чтобы сделать результаты более понятными для читателей, веб-разработчики и аналитики визуализировали их. Некоторые визуализации для большой ясности были упрощены. Например, вместо того, чтобы показывать полное распределение, показывается только несколько процентилей. Если не указано иное, все распределения суммируются с использованием перцентилей, прежде всего медианы (50-й перцентиль), а не средних значений.

Наконец, редакторы просмотрели главы, чтобы исправить простые грамматические ошибки и добиться согласованности во время чтения.

Перспективы на будущее

Выпуск Web Almanac в 2020 году — второй по счёту, который, как мы надеемся, станет продолжением ежегодной традицией по оценке позитивных изменений в жизни веб-сообщества. Выпуск очередного этого отчёта стал возможным благодаря колоссальной работе, проделанной множеством самоотверженных участников, и мы будем использовать как можно эффективнее результаты этой работы, чтобы сделать будущие выпуски ещё более лучше.

Если вам интересно поучаствовать в издании Web Almanac в 2021 году, дайте нам знать об этом, заполнив форму. Давайте работать сообща, чтобы отслеживать состояние веба!