GoogleのPageSpeedInsights評価の実施

公開: 2022-07-22

あなたがビジネスオーナーであるならば、あなたはあなたのウェブサイトのためにより良い検索ランキングを得ることに興味があります。 あなたが開発者であるならば、あなたはクライアントのニーズに応えて、そしてよくランク付けすることができるサイトを作成する必要があるでしょう。 Googleは、検索エンジンランキングページ(SERP)でウェブサイトの順序を決定する際に、何百もの特性を考慮します。

ページ速度は、2018年半ばに重要なランキング属性として公式に引用されました。 この記事では、ビジネスオーナーが注意を払う必要のあるパフォーマンススコアについて説明します:PageSpeedInsights。 単一ページアプリケーションに関連するような複雑なケースでソフトウェア開発者が改善を行うのに役立ついくつかの技術的な詳細について詳しく説明します。

GoogleのPageSpeedInsightsテストの重要性を評価する理由

Googleが2010年にPageSpeedToolsを導入したとき、ほとんどのWebサイト所有者はそれに精通していました。 まだ開いていない人は、PageSpeedInsightsを開いてサイトを確認する必要があります。

このサービスは、デスクトップブラウザとモバイルブラウザの両方でWebサイトがどのように機能するかについての詳細を提供します。 分析の上部にある[モバイル]タブと[デスクトップ]タブを使用してそれらを切り替えることができるという事実を見逃しがちです。

GoogleのPageSpeedInsightsのスクリーンショットで、検索ボックスの下の中央に2つのタブが表示されています。これらは、「実際のユーザーが体験していることを発見する」と「世界中の実際のユーザーからのデータに基づいて、サイトのパフォーマンスを知る」という2行以上のテキストの上にあります。

モバイルデバイスはコンパクトでバッテリー寿命を維持することを目的としているため、それらのWebブラウザーは、デスクトップオペレーティングシステムを実行しているデバイスよりもパフォーマンスが低い傾向があります。したがって、デスクトップスコアは高くなると予想されます。

大手ハイテク企業はどの分野でも赤字になることはありませんが、より厳しい予算で運営されている小規模なサイトはそうなる可能性があります。 ビジネスオーナーは、競合他社のサイトでPageSpeed Insightsを実行し、その結果を自分のサイトと比較して、パフォーマンスの向上に投資する必要があるかどうかを確認することもできます。

PageSpeed評価に合格するにはどのスコアで十分ですか?

PageSpeedは、Core Web Vitalsのメトリックを使用して、合格/不合格の評価を提供します。

このツールには3つのスコアがあります。

  1. PageSpeedは、[パフォーマンスの問題の診断]セクションの色付きの円でパフォーマンススコアを目立つように表示します。 これは、平均的なモバイルデバイスまたはデスクトップデバイスと一致する特性を持つPageSpeedの組み込み仮想マシンを使用して計算されます。 この値はページの読み込みとPageSpeedの仮想マシン用であり、Google検索エンジンでは考慮されないことに注意してください。

    [パフォーマンスの問題の診断]セクションのスクリーンショット。緑色の円で100のスコアを表示しています。

    この図は、開発者がWebサイトに変更を実装するときに役立ちます。これにより、開発者は変更がパフォーマンスに与える影響を確認できます。 ただし、Googleの検索エンジンは詳細なスコアのみを考慮します。

  2. 特定のページ(およびPageSpeedが分析されたページと同様であると見なすページ)の詳細なスコアは、Chromeブラウザーが実際のコンピューターで収集してGoogleに送信する統計から計算されます。 これは、Firefox、Safari、およびその他のChromium以外のブラウザでのパフォーマンスが考慮されていないことを意味します。

    [このURL]タブの下にある特定のページの詳細なスコアを示すスクリーンショット。スクリーンショットは、失敗したCore Web Vitals評価と、最初のコンテンツフルペイント(FCP)、最初の入力遅延(FID)、最大のコンテンツフルペイント(LCP)、および累積レイアウトシフト(CLS)のスコアを示しています。 CLSスコアの値は赤で、FCP、FID、およびLCPは緑です。

  3. Webサイトのすべてのページの要約は、単一ページのスコアと同じ方法で取得されます。 アクセスするには、[このURL]タブではなく[発信元]タブを選択します。 Originはサイトのメインページを表示するため、タブバーの下に表示されるURLは異なります(ドメインのみ)。

    [Origin]タブの下にある、Webサイトのすべてのページの詳細なスコアを示すスクリーンショット。スクリーンショットは、失敗したCore Web Vitals評価と、最初のコンテンツフルペイント(FCP)、最初の入力遅延(FID)、最大のコンテンツフルペイント(LCP)、および累積レイアウトシフト(CLS)のスコアを示しています。 FCPスコアは黄色、FIDおよびLCPスコアは緑、CLSスコアは赤です。

Googleは、PageSpeedによって考慮される指標のリストを絶えず更新しているため、重要な情報の最良のソースは、Google検索コンソールの[エクスペリエンス/コアWebバイタル]セクションです。

Core Web Vitals Assessmentに合格するには、すべてのスコアが緑色である必要があります。

スクリーンショットは、合格したCore Web Vitals Assessmentと、最初のコンテンツフルペイント(FCP)、最初の入力遅延(FID)、最大のコンテンツフルペイント(LCP)、および累積レイアウトシフト(CLS)のスコアを示しています。 4つのスコアすべてに緑色の値があります。

値を緑色にするには、テストでページのスコアが75%以上である必要があり、多くのユーザーが同等以上の値を体験する必要があります。 しきい値はスコアごとに異なり、FIDの場合は大幅に高くなります。

値をよりよく理解するには、スコアのタイトルをクリックします。

First Contentful Paint(FCP)スコアのスクリーンショット。タイトルは、赤いボックスで強調表示されています。

これは、特定のカテゴリのしきい値をより詳細に説明するブログ投稿にリンクしています。

データは28日間蓄積され、実際のユーザーが経験している可能性のあるものとは他に2つの大きな違いがあります。

  1. 実際のデバイスのパフォーマンスとインターネット速度はさまざまであるため、このテストでは、PageSpeedの仮想マシンの結果とは異なる結果が生成されます。
  2. 詳細な評価は、ページが開いている5秒間隔ごとに最悪の値を使用して、ページの存続期間全体にわたって計算されます。

サイトのユーザーの多くがインターネットアクセスの遅い地域に住んでいて、古いデバイスやパフォーマンスの低いデバイスを使用している場合、その違いは驚くべきものになる可能性があります。 これは、PageSpeedInsightsの改善に関する推奨事項の1つではありません。 一見、この問題に対処する方法は明らかではありませんが、後で説明しようとします。

PageSpeedInsightsの推奨事項を使用したスコアの改善

評価の主要部分は、ほとんどのユーザーがページを開く方法に基づいています。 すべてのユーザーが長期間Webサイトにアクセスするわけではなく、ほとんどのユーザーが時々Webサイトにアクセスするという事実にもかかわらず、すべてのユーザーが評価で考慮されるため、すべてのユーザーに影響を与えるページの読み込み速度を改善することから始めるのがよいでしょう。

推奨事項は、評価結果の下の「機会」セクションにあります。

「機会」セクションのスクリーンショットには、改善の機会が複数表示されており、右側に秒単位での推定ページ負荷削減が表示されています。この例では、推定1.56秒の節約で「複数のページリダイレクトを回避する」から始まり、推定0.3秒の節約で「レガシーJavaScriptを最新のブラウザーに提供しない」までの6つの推奨事項があります。

各項目を拡張して、改善のための詳細な推奨事項を取得できます。 たくさんの情報がありますが、ここに最も基本的で重要なヒントがあります:

  • サーバーの応答速度を向上させます。 たとえば、共有ホスティングを使用している場合は、プランをアップグレードするか、仮想プライベートサーバー(VPS)または専用サーバーに移行します。 また、すべてのホストが等しいわけではありません。 優れたハードウェアと稼働時間の保証を備えた信頼性の高いホスティングを選択してみてください。
  • サイトを開くために必要なトラフィックの量を減らします。 これを実現するには、画像を最適化された画像に置き換えることができます。フォーマットの変更、解像度と圧縮の調整、必要に応じてアニメーション画像の静的画像への置き換えなどです。一般的なコンテンツ管理システムには、このプロセスを簡単にするプラグインがあります。
  • より多くのデータをキャッシュします。 これを行う最も簡単な方法は、静的コンテンツ(画像、スタイル、スクリプト、変更されないページ)にCloudflareのようなコンテンツ配信ネットワーク(CDN)を使用することです。 キャッシュルールを構成して、パフォーマンスを最適化できます。

それでは、経験豊富なプログラマーが支援できる、より複雑な要素を見てみましょう。

ページの存続期間中にスコアをデバッグする方法

前述のように、Google Search Consoleは、過去28日間にChromiumベースのブラウザから取得した平均スコアを考慮し、ページの存続期間全体の値も含みます。

ページの存続期間中に何が起こるかを確認できないことが問題です。 PageSpeedの仮想マシンは、ページが読み込まれ、ユーザーがページを操作した後のページのパフォーマンスを考慮できません。つまり、サイト開発者は改善のための推奨事項にアクセスできません。

解決策は、サイトプロジェクトの開発者バージョンにGoogle Chrome Web Vitalsライブラリを含めて、ユーザーがページを操作しているときに何が起こっているかを確認することです。

このライブラリを含める方法に関するさまざまなオプションは、GitHubのREADME.mdファイルにあります。 最も簡単な方法は、次のスクリプトを追加することです。 メインテンプレートの<head>にページの有効期間にわたって値を表示するように調整されています:

 <script> (function() { var script = document.createElement('script'); script.src = 'https://unpkg.com/web-vitals/dist/web-vitals.iife.js'; script.onload = function() { // When loading `web-vitals` using a classic script, all the public // methods can be found on the `webVitals` global namespace. webVitals.getCLS(console.log, true); // CLS supported only in Chromium. webVitals.getLCP(console.log, true); // LCP supported only in Chromium. webVitals.getFID(console.log, true); webVitals.getFCP(console.log, true); webVitals.getTTFB(console.log, true); } document.head.appendChild(script); }()) </script>

累積レイアウトシフト(CLS)と最大コンテンツフルペイント(LCP)の計算は、Chrome、Opera、Brave(Brave Shieldsを無効にしてライブラリを機能させる)などのChromiumベースのブラウザ、およびFirefoxを除く他のほとんどの最新ブラウザでのみ使用できます。 、Mozillaエンジン、およびAppleのSafariブラウザに基づいています。

スクリプトを追加してページをリロードした後、ブラウザの開発ツールを開き、[コンソール]タブに切り替えます。

Google Chromeブラウザの[コンソール]タブのスクリーンショット。FCP、TTFB、FID、LCPの値がそれぞれ、プロパティ「名前」、「値」、「デルタ」、「エントリ」を持つオブジェクトを含むコンソール出力の行として表示されています。 「」と「id」。 「entries」の値は配列です。
Chromeの[コンソール]タブにあるChromeWebVitalsライブラリによって提供される値

これらの値がモバイルバージョンでどのように計算されるかを確認するには、[デバイス]ツールバーを使用してモバイルデバイスに切り替えます。 アクセスするには、ブラウザの開発ツールの[デバイスツールバーの切り替え]ボタンをクリックします。

GoogleChromeのデベロッパーツールの上部にある[要素の検査]ボタンと[要素]タブの間にある[デバイスツールバーの切り替え]ボタンのスクリーンショット。

これは、問題を特定するのに役立ちます。 コンソールの行を展開すると、スコアの変更をトリガーしたものの詳細が表示されます。

ほとんどの場合、他のスコアの自動アドバイスは、それらを改善する方法についてのアイデアを得るのに十分です。 ただし、CLSは、ページにユーザーインタラクションが読み込まれた後に変更されるため、特に単一ページアプリケーションの場合、推奨事項がない場合があります。 ページが検索エンジンによって考慮された要因の評価に合格しなかった場合でも、[パフォーマンスの問題の診断]セクションに完全な100スコアが表示される場合があります。

CLSに苦労している私たちにとって、これは役に立ちます。 ログレコードを展開し、次にエントリ、特定のエントリ、ソース、特定のソースを展開し、 currentRectpreviousRectと比較します。

currentRect値とpreviousRect値が強調表示されたログレコードの画像。

何が変更されたかを確認できたので、それを修正するいくつかの方法を特定できます。

累積レイアウトシフトの削減

すべてのスコアの中で、CLSは把握するのが最も難しいですが、ユーザーエクスペリエンスにとって非常に重要です。 レイアウトシフトは、要素がドキュメントオブジェクトモデル(DOM)に追加されたとき、または既存の要素のサイズや位置が変更されたときに発生します。 その要素の下にある要素がシフトし、ユーザーは何が起こっているのかを制御できないように感じ、Webサイトを離れます。

単純なHTMLページでこれを処理するのは比較的簡単です。 画像の幅と高さの属性を設定して、画像の読み込み中に画像の下のテキストが移動しないようにします。 これで問題が解決する可能性があります。

ページが動的であり、ユーザーがアプリケーションのようにページを操作する場合は、CLSの問題に対処するために次の手順を検討してください。

  1. ユーザーがボタンまたはリンクをクリックしてから500ミリ秒後に、CLSをトリガーせずにコンテンツを表示するように、ページを設定します。
  2. 他のDOM要素をシフトさせないパラメーター(背景、色など)を変更します。
  3. 要素のサイズや位置を変更するときに、他の要素が移動しないことを確認してください。

より詳細な推奨事項は、Google DevelopersOptimizeCLSページで入手できます。

500ミリ秒でCLSを削減する方法

500ミリ秒のしきい値の使用方法を説明するために、画像のアップロードを含む例を使用します。

通常、ユーザーがファイルをアップロードすると、スクリプトはDOMに<img>要素を追加し、クライアントブラウザがサーバーから画像をダウンロードします。 サーバーから画像を取得するには500ミリ秒以上かかる場合があり、レイアウトがずれる可能性があります。

ただし、すでにクライアントコンピュータにあるため、画像をより高速に取得する方法があります。したがって、500ミリ秒の期限が切れる前に<img>要素を作成します。

これは、ほとんどの最新のブラウザーで機能するライブラリーのない純粋なECMAScriptの普遍的な例です。

 <!DOCTYPE html> <html> <head></head> <body> <input type="file"> <img> <script> document.getElementById('input').addEventListener('change', function() { var imageInput = document.getElementById('input'); if (imageInput.files && imageInput.files[0]) { var fileReader = new FileReader(); fileReader.onload = function (event) { var imageElement = document.getElementById('image'); imageElement.setAttribute('src', event.target.result); } fileReader.readAsDataURL(imageInput.files[0]); } }); </script> </body> </html>

前に見たように、これらの種類の問題を修正するには、精神的な敏捷性が必要になる場合があります。 モバイルデバイス、特に安価なデバイス、および低速のモバイルインターネットでは、90年代のパフォーマンス最適化の技術が役立ち、昔ながらのWebプログラミングアプローチが私たちの技術を刺激する可能性があります。 最新のブラウザデバッグツールがそれを助けます。

Google検索コンソールを更新します

問題を見つけて排除した後、Googleの検索エンジンが変更を登録するのに時間がかかる場合があります。 結果をもう少し速く更新するには、問題が修正されたことをGoogle検索コンソールに通知します。

左上隅の[検索]プロパティボックスを使用して、作業中のページを選択します。 次に、左側のハンバーガーメニューでCoreWebVitalsに移動します。

Google検索コンソールの左上隅にある[検索プロパティ]ドロップダウンボックスを介して[コアWebバイタル]オプションを表示するスクリーンショット。

モバイルまたはデスクトップレポートの右上にある[レポートを開く]ボタンをクリックします。 (両方で問題が発生した場合は、後で2番目のレポートに対して同じアクションを繰り返すことを忘れないでください。)

Google検索コンソールのコアウェブバイタルセクションのスクリーンショット。メインヘッダーの下のタイムスタンプの下にある[モバイル]バーの右側に[レポートを開く]ラベルが表示されています。

次に、グラフの下の[詳細]セクションに移動し、検証に失敗したという警告のある行をクリックします。

Google Search Console Core WebVitalsの[詳細]セクションのスクリーンショット。モバイルデバイスの結果が悪いことを示しています。スコアは17で、CLSの問題(「0.25(モバイル)を超える」)により検証に失敗しました。

次に、この問題の[詳細を表示]ボタンをクリックします。

ユーザーが「検証に失敗しました」バーの右側にある「詳細を表示」ボタンをクリックした後に何が起こるかを示すスクリーンショット。このツールは、影響を受ける17のURLを報告します。

最後に、[新しい検証の開始]をクリックします。

Google検索コンソールのメインヘッダーの下にある[検証の詳細]バーの下にある[検証に失敗しました]バーの右側にある[新しい検証の開始]ボタンを示すGoogle検索コンソールのスクリーンショット。

すぐに結果が出るとは思わないでください。 検証には最大28日かかる場合があります。

検証プロセスが開始され、28日以内に完了することを示すGoogle検索コンソールのスクリーンショット。

最適化は継続的な闘争です

SEO最適化は継続的なプロセスであり、パフォーマンスの最適化についても同じことが言えます。 オーディエンスが増えると、サーバーはより多くの要求を受け取り、応答が遅くなります。 需要の増加は通常、サイトに新しい機能が追加されることを意味し、パフォーマンスに影響を与える可能性があります。

パフォーマンス最適化のコスト/メリットの側面に関しては、適切なバランスを取る必要があります。 開発者は、常にすべてのサイトで最高の価値を達成する必要はありません。 最も重大なパフォーマンスの問題の原因に集中します。 より速く、より少ない労力で結果を得ることができます。 大企業は多くのリソースを投資し、すべてのスコアを達成する余裕がありますが、これは中小企業には当てはまりません。 実際には、中小企業は、Amazonのような業界の大物ではなく、競合他社のパフォーマンスに匹敵するか、それを超える必要がある可能性が最も高いです。

ビジネスオーナーは、サイトの最適化が重要である理由、作業のどの側面が最も重要であるか、そしてそれを行うために雇う人々にどのスキルを探すべきかを理解する必要があります。 開発者は、常にパフォーマンスを念頭に置いて、クライアントがエンドユーザーにとって速いと感じるだけでなく、PageSpeedInsightsでも高いスコアを獲得できるサイトを作成できるようにする必要があります。