ナビゲーションをスキップ

方法論

概要

Web Almanacは、HTTP Archiveによって組織されたプロジェクトです。HTTP Archiveは、ウェブがどのように構築されているかを追跡することを使命として、2010年に Steve Souders によって開始されました。何百万ものウェブページの構成を毎月評価し、そのテラバイトのメタデータをBigQueryで分析できるようにしています。詳細はHTTP Archiveをご覧ください。

Web Almanacの使命は、主題の専門家が文脈に沿った洞察を提供することで、HTTP Archiveのデータウェアハウスをウェブコミュニティにさらにアクセスしやすくすることです。2019年が初版となる2019年は、ウェブの状態に関する知識の年次リポジトリと考えることができます。

Web Almanacの2019年版は、コンテンツ、体験、パブリッシング、ディストリビューションの4つの柱で構成されています。書かれたレポートの各パートは柱を表し、その異なる側面を探求する章で構成されています。例えば、パートIIはユーザー体験を表し、パフォーマンス、セキュリティ、アクセシビリティ、SEO、PWA、モバイルウェブの各章が含まれています。

データセットについて

HTTP Archiveデータセットは、毎月新しいデータで継続的に更新されています。Web Almanacの2019年版については、この章で特に断りのない限り、すべてのメトリクスは2019年7月のクロールからソースを得ています。これらの結果は、BigQuery上で接頭語のテーブル2019_07_01公開できます。

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の結果のように、章ごとのスプレッドシートで公開されています。

ウェブサイト

データセットには5,790,700件のウェブサイトが含まれている。そのうち、5,297,442件がモバイルサイト、4,371,973件がデスクトップサイトである。ほとんどのウェブサイトがモバイルとデスクトップの両方のサブセットに含まれている。

HTTP Archiveは、Chrome UXレポート からウェブサイトのURLを取得しています。Chrome UXレポートはGoogleが公開しているデータセットで、Chromeユーザーが積極的に訪問している数百万のウェブサイトのユーザー体験を集計しています。これにより、実際のウェブ利用状況を反映した最新のウェブサイトのリストが得られます。Chrome UXレポートデータセットにはフォーム ファクター ディメンションが含まれており、デスクトップ ユーザーやモバイル ユーザーがアクセスしたすべてのWebサイトを取得するために使用します。

Web Almanacが使用した2019年7月のHTTP Archiveのクロールでは、Webサイトのリストに、最新のChrome UXレポートリリースである2019年5月(201905)を使用しました。このデータセットは2019年6月11日にリリースされたもので、5月中にChromeユーザーが訪問したウェブサイトをキャプチャしています。

リソースの制限のため、HTTP Archiveでは、Chrome UXレポートで各ウェブサイトの1ページしかテストできません。これを調整するために、ホームページのみが含まれています。ホームページは必ずしもウェブサイト全体を代表するものではないため、結果に多少の偏りが生じることに注意してください。

HTTP Archiveは、データセンターからウェブサイトをテストし、実際のユーザー体験からデータを収集しないという意味で、ラボテストツールとも考えられています。そのため、すべてのウェブサイトのホームページは、ログアウトした状態で空のキャッシュを使ってテストされます。

メトリクス

HTTP Archiveは、Webがどのように構築されているかについてのメトリクスを収集します。これには、ページあたりのバイト数、ページがHTTPSで読み込まれたかどうか、個々のリクエストヘッダーとレスポンスヘッダーなどの基本的なメトリクスが含まれています。これらのメトリクスの大部分は、WebPageTest によって提供されており、各ウェブサイトのテストランナーとして機能します。

他のテストツールは、ページに関するより高度なメトリクスを提供するために使用されます。例えば、Lighthouseは、アクセシビリティやSEOなどの分野でページの品質を分析するため、ページに対する監査を実行するために使用されます。以下のツールのセクションでは、これらのツールについて詳しく説明しています。

研究室のデータセットに固有の制限を回避するために、Web Almanacでは、Chrome UXレポートを利用して、特にウェブパフォーマンスの分野でのユーザー体験に関するメトリクスを提供しています。

メトリクスの中には、完全に手の届かないものもあります。例えば、ウェブサイトの構築に使用されたツールを検出できるとは限りません。ウェブサイトがcreat-react-appを使って構築されている場合、Reactフレームワークを使っていることはわかりますが、特定のビルドツールが使われているとは限りません。これらのツールがウェブサイトのコードに検出可能な指紋を残さない限り、その使用状況を測定することはできません。

その他のメトリクスは、必ずしも測定が不可能ではないかもしれませんが、測定が困難であったり、信頼性が低いものもあります。例えば、Webデザインの側面は本質的に視覚的であり、ページに押し付けがましいモーダルダイアログがあるかどうかなど、定量化するのは難しいかもしれません。

ツール

Web Almanacは、以下のオープンソース・ツールの助けを借りて実現しています。

WebPageTest

WebPageTestは、著名なウェブパフォーマンステストツールであり、HTTP Archiveのバックボーンです。WebPageTestはプライベートインスタンスとプライベートテストエージェントを使用しており、これは各Webページをテストする実際のブラウザです。デスクトップとモバイルのウェブサイトは、異なる構成でテストされます。

設定 デスクトップ モバイル
デバイス Linux VM Emulated Moto G4
ユーザーエージェント 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
場所 アメリカのカリフォルニア州レッドウッドシティ
アメリカのオレゴン州ダレス
Redwood City, California, USA
The Dalles, Oregon, USA
接続方法 ケーブル(5/1 Mbps 28ms RTT) 3G (1.600/0.768 Mbps 300ms RTT)
ビューポート 1200 x 1920px 512 x 360px

デスクトップのWebサイトは、Linux VM上のデスクトップChrome環境内から実行されます。ネットワーク速度はケーブル接続と同等です。

モバイルWebサイトは、3G接続と同等のネットワーク速度を持つエミュレートされたMoto G4デバイス上のモバイルChrome環境から実行されます。エミュレートされたモバイルユーザーエージェントはChrome65と自称していますが、実際は Chrome75であることに注意してください。

テストが実行される場所は2つあります。カリフォルニア州とオレゴン州です。HTTP Archiveは、カリフォルニア州にあるInternet Archiveのデータセンターにある独自のテストエージェントハードウェアを維持しています。オレゴン州にあるGoogle Cloud Platform のus-west-1にあるテストエージェントは、必要に応じて追加されています。

HTTP ArchiveのWebPageTestのプライベートインスタンスは、最新のパブリックバージョンと同期して維持され、カスタムメトリクスで強化されています。これらは、テストの最後に各ウェブサイトで評価されるJavaScriptのスニペットです。almanac.jsカスタムメトリクスには、DOMの状態に依存するメトリクスなど、そうでなければ計算できないいくつかのメトリクスが含まれています。

各テストの結果は、HARファイルとして公開され、ウェブページに関するメタデータを含むJSON形式のアーカイブファイルです。

Lighthouse

Lighthouseは、Googleが構築した自動化されたウェブサイト品質保証ツールです。最適化されていない画像やアクセスできないコンテンツなどのユーザー体験のアンチパターンが含まれていないことを確認するためにウェブページを監査します。

HTTP Archiveは、すべてのモバイルWebページでLighthouseの最新バージョンを実行しています - リソースが限られているため、デスクトップページは含まれていません。2019年7月のクロール時点で、HTTP Archiveは5.1.0バージョンのLighthouseを使用していました。

LighthouseはWebPageTestの中から独自のテストとして実行されますが、独自の設定プロファイルを持っています。

設定
CPUスローダウン 1x*
Downloadスループット 1.475 Mbps
Uploadスループット 0.675 Mbps
RTT 150 ms

* 注 Lighthouseは通常、CPUが4倍遅くなるように設定されていますが、WebPageTestのバグのため、テスト時には1倍になっていました。

LighthouseとHTTP Archiveで利用可能な監査の詳細については、Lighthouse開発者向けドキュメントを参照してください。

Wappalyzer

Wappalyzerは、ウェブページで使用されている技術を検出するためのツールです。65のカテゴリがあり、JavaScriptフレームワークからCMSプラットフォーム、さらには暗号通貨の採掘者に至るまで、テストされた技術の範囲があります。1,200以上の技術がサポートされています。

HTTP Archiveは、すべてのウェブページに対して最新バージョンのWappalyzerを実行します。2019年7月現在、Web AlmanacはWappalyzerの5.8.3バージョンを使用しています。

Wappalyzerは、WordPress、Bootstrap、jQueryのような開発者ツールの人気を分析する多くの章を強力にしています。例えば、EコマースCMS の各章は、それぞれの EコマースCMS の各チャプターは、Wappalyzer が検出した技術のカテゴリに大きく依存しています。

Wappalyzerを含むすべての検出ツールには限界があります。その結果の妥当性は、その検出メカニズムがどれだけ正確であるかに常に依存します。Web Almanacでは、Wappalyzerが使用されているすべての章に注意書きが追加されますが、特定の理由により、その分析が正確でない場合があります。

Chrome UXレポート

Chrome UXレポート は、実際のChromeユーザーの体験をまとめた公開データセットです。エクスペリエンスは、https://www.example.com などのように、ウェブサイトの起源によってグループ化されています。このデータセットには、ペイント、ロード、インタラクション、レイアウトの安定性などのUXメトリクスの分布が含まれています。月ごとのグループ化に加えて、国レベルの地理、フォームファクター(デスクトップ、モバイル、タブレット)、有効な接続タイプ(4G、3Gなど)などの大きさ、速度によっても経験をスライスすることができます。

Chrome UXレポートの実世界のユーザー体験データを参照するWeb Almanacメトリクスについては、2019年7月のデータセット(201907)を使用しています。

データセットの詳細については、BigQueryでChrome UXレポートを使用するのガイドweb.devを参照してください。

サードパーティウェブ

サードパーティウェブは、Patrick Hulceの研究プロジェクトで、サードパーティの章では、HTTP ArchiveとLighthouseのデータを使用して、サードパーティのリソースがウェブに与える影響を特定して分析しています。

ドメインは、少なくとも50のユニークなページに表示されている場合、サードパーティのプロバイダであるとみなされます。また、このプロジェクトでは、広告、分析、ソーシャルなどのカテゴリで、それぞれのサービスごとにプロバイダーをグループ化しています。

Web Almanacのいくつかの章では、サードパーティの影響を理解するために、このデータセットのドメインとカテゴリを使用しています。

Rework CSS

Rework CSSはJavaScriptベースのCSSパーサーです。スタイルシート全体を受け取り、個々のスタイルルール、セレクタ、ディレクティブ、値を区別するJSONエンコードされたオブジェクトを生成します。

この特別な目的のツールは、CSS章の多くのメトリクスの精度を大幅に向上させました。各ページのすべての外部スタイルシートとインラインスタイルブロックのCSSを解析し、解析可能な状態にするために問い合わせを行いました。BigQueryのHTTP Archiveデータセットとの統合方法については、このスレッドを参照してください。

分析プロセス

Web Almanacの計画と実行には、Webコミュニティの数十人の貢献者の協力を得て、約1年を要しました。このセクションでは、Web Almanacに掲載されているメトリクスを選択した理由、それらがどのようにして照会されたか、そして解釈されたかについて説明します。

ブレインストーミング

Web Almanacの発端は、2019年1月にHTTP Archiveフォーラムへの投稿でイニシアチブを説明し、支援を集めることから始まりました。2019年3月には、Webコミュニティの誰もがチャプターやメトリクスのアイデアを書き込むことができる公開ブレインストーミング文書を作成しました。これは、私たちがコミュニティにとって重要なことに焦点を当て、プロセスに含まれる多様な声のセットを持っていることを確認するための重要なステップでした。

ブレーンストーミングの結果、20の章が固まり、私たちは各章に主題専門家とレビュワーを割り当てる作業を開始しました。このプロセスには、この規模のプロジェクトにボランティアを参加させるという課題があったため、いくつかの固有の偏りがありました。したがって、寄稿者の多くは同じ専門家サークルのメンバーです。Web Almanacの今後のエディションの明確な目標の1つは、著者やレビュワーとしての、代表性の低い、異質な声をより多く取り入れることを奨励することです。

私たちは2019年5月から6月にかけて、人々と支部とのペアリングを行い、各支部を構成する個々の指標を最終的に決定するために彼らの意見を聞きました。

分析

2019年6月、メトリクスと章の安定したリストで、データアナリストは実現可能性のためにメトリクスをトリアージしました。場合によっては、カスタムメトリクスを作成して分析能力のギャップを埋める必要がありました。

2019年7月を通して、HTTP Archiveデータパイプラインは数百万のWebサイトをクロールし、Web Almanacで使用するためのメタデータを収集しました。

2019年8月から、データアナリストが各メトリクスの結果を抽出するためのクエリを書き始めました。合計で、431個のクエリが手書きで書かれました! プロジェクトのGitHubリポジトリのsql/2019ディレクトリで、章別にすべてのクエリを閲覧することができます。

解釈

著者はアナリストと協力して、結果を正しく解釈し、適切な結論を導き出しました。著者はそれぞれの章を執筆する際には、これらの統計からウェブの状態についての枠組みを支持しました。レビュワーは著者と協力して、分析の技術的な正確さを確認しました。

読者に結果をよりわかりやすく伝えるために、ウェブ開発者やアナリストは、この章に埋め込むデータの可視化を作成しました。いくつかの可視化は、結論を把握しやすくするために簡略化されています。たとえば、分布の完全なヒストグラムを表示するのではなく、ほんの一握りのパーセンタイルだけを表示しています。特に断りのない限り、すべての分布は、平均ではなくパーセンタイル、特に中央値(50%)を使用して要約されています。

最後に、編集者は各章を修正し、簡単な文法的な誤りを修正し、読書体験全体に一貫性を持たせるようにしました。

将来を見据えて

2019年版のWeb Almanacは、ウェブコミュニティにおける内省と積極的な変化へのコミットメントの年に一度の伝統となることを願っての第一回目です。ここまで来れたのは、多くの献身的なコントリビューターのおかげで、記念碑的な努力をしてきました。

Web Almanacの2020年版への貢献にご興味のある方は、関心フォームにご記入ください。このプロジェクトをより良いものにするためのアイデアをお待ちしています!