PageSpeed InsightsSEO @font-facefont-display

「WEB フォント読み込み中のテキストの表示」に対処する方法〜PageSpeed Insights〜

woodtype-846089_1920 PageSpeed Insights
スポンサーリンク

現状・条件

WEB フォントを指定する

以下、Cocoon テーマをベースに「Mplus 1p (WEBフォント)」を指定する方法です。
( 指定するフォントは適宜変更してください。)

Cocoon テーマで WEB フォントを指定します。

WordPress 管理画面から、
・押下:「Cocoon 設定」>「Cocoon 設定
・ページ内:「全体」タブを選択
サイトフォント」>「フォント」で、Mplus 1p (WEBフォント)を選択して「変更をまとめて保存」ボタンをクリックします。

Autoptimize を設定する

WordPress 管理画面から、
・押下:「設定」>「Autoptimize
・ページ内:「追加」タブを選択
追加の自動最適化」>「Google Fonts」>「Goolge フォントの削除」を選択し「変更を保存」ボタンをクリックします。

PageSpeed Insights で分析する

PageSpeed Insights でご自身のサイトを分析します。
下記のように woff2 フォントなどのリンクと減らせるデータ量が表示されます。

web-font-display-1
▲ ウェブフォント読み込み中のテキストの表示

CSS 作成に必要ですので、その URL リンクをコピペしておきます。

分析結果を CSS に反映する

WEB フォントがロード中に表示できない場合、システムフォントを一時的に表示できるように、font-display: を @font-face スタイルにスワップ ( swap ) することで、ほとんどの最新ブラウザーでこの問題を回避できると言われています。

font-display:swap を CSS に追記して対応しますが、全てのブラウザで font-display:swapをサポートしているわけではないため、Web Font Loader を採用し、設定を行います。

  • 1
    CSS の書き方(例)

    srclocal() で指定したシステムフォントと url() で指定した WEBフォントを指定し、その表示を切り替えるように作成します。

    @font-face {
    font-family: ‘Roboto’, sans-serif;
    font-style: normal;
    font-weight: 400;
    src: local(‘Roboto’), local(‘Roboto-Regular’), url(https://fonts.gstatic.com/s/mplus1p/v19/e3tjeuShHdiFyPFzBRro_VYUcXm4y4YtjOJGYMp5iAw4B3f5iUc.119.woff2′) format(‘woff’2);
    font-display: swap;
    }

  • font-family を確認

    Google Fonts M PLUS 1p へアクセスします。
    ( ※ M PLUS 1p フォントは Roboco に含まれています。)

    ページの左下の方に、下記のような Roboto フォントが表示されているはずです。 をクリックします。

    web-font-display-2

    すると、右下に下記のような 1 Family Selected ウィンドウが表示されます。

    web-font-display-3

    Specify in CSS に書かれている font-family: は 後で CSS に反映します。まず、STANDARD に表示されたリンクをコピーして下記の手順で設定します。

    WordPress 管理画面から、
    ・押下:「Cocoon 設定」>「Cocoon 設定
    ・ページ内:「アクセス解析・認証」タブ
    その他のアクセス解析・認証コード設定」>「ヘッド用コード」に

    <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">

    を追加します。

  • CSSを追加します。

    先ほど、コピした URLSpecify in CSS の font-family 情報をベースに @font-face スタイルを作成します。

    @font-face {
       font-family: 'Roboto', sans-serif;
       font-style: normal;
       font-weight: 400;
       src: local('Roboto'), local('Roboto-Regular'),  url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fBBc4.woff2)  format('woff'2);
       font-display: swap;
     }
     
    @font-face {
       font-family: 'Roboto', sans-serif;
       font-style: normal;
       font-weight: 400;
       src: local('Roboto'), local('Roboto-Regular'),  url(https://fonts.gstatic.com/l/font?kit=k3kUo8oPIeJRyV8MHcZ0LmHEG9ut3j_PwJ-v-JYNXg3Ai3V8H_H3E7XlzMhIt0b2w-29Wd6ANO2q7CUwuhr_OPfSYZGYOR6hVN9WDaYNyq2RBHXqfnUwPTa8vFLyh59-Xwnx37IDAFbd3_Jr4bp0KOGB_mLVwjAK0786Bf5UGw3TJnyBiTUeTrep7hVi&skey=a5b3b794406ad1a2&v=v14)  format('woff'2);
       font-display: swap;
     }
     
     @font-face {
       font-family: 'Roboto', sans-serif;
       font-style: normal;
       font-weight: 400;
       src: local('Roboto'), local('Roboto-Regular'),  url(https://fonts.gstatic.com/l/font?kit=k3kUo8oPIeJRyV8MHcZkKWHEG9ut3j_PwJ-v-JYNXg3Ai3V8H_H3E7XlzMhIt0b2w-29Wd6ANO2q7CUwuhr_OPfSYZGYOR6hVN9WDaYNyq2RBHXqfnUwPTa8vFLyh59-Xwnx37IDAFbd3_Jr4bp0KOGB_mLVwjAK0786Bf5UGw3TJnyBiTUeTrep7hVi&skey=1f5b7326409871c7&v=v14)  format('woff'2);
       font-display: swap;
     }
     
     @font-face {
       font-family: 'Roboto', sans-serif;
       font-style: normal;
       font-weight: 400;
       src: local('Roboto'), local('Roboto-Regular'),  url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxK.woff2)  format('woff'2);
       font-display: swap;
     }
    

    作成した CSS を Cocoon テーマの sytle.css に追加します。

    XServer 環境では、/wp-content/themes/cocoon-child-master/ まで移動して style.css ファイルを開きます。先ほどの CSS 内容をペーストしてファイルを保存します。

    defer-offscreen-images-3
    ▲ 例:XServer 環境
  • Web Font Loader を設定します。

    WordPress 管理画面から、
    ・押下:「Cocoon 設定」>「Cocoon 設定
    ・ページ内:「アクセス解析・認証」タブ
    その他のアクセス解析・認証コード設定」>「フッター用コード」に

    <script 
    src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" async></script>
    <script>
      WebFont.load({
        google: {
          families: ['Roboco']
        }
      });
    </script>

    を追加します。

これで設定は完了です。

※ 2019/11/22日、検証方法を追記します。

検証する

  • Step 1
    Chrome ブラウザのデベロッパ ツールにアクセスします。

    Chrome ブラウザで、「表示」>「開発 / 管理」>「デベロッパ ツール」をクリックするか、 Option + Command + I (大文字 i) キーを押下してデベロッパ ツールにアクセスします。

  • Step 2
    検証します。

    Audits」タブをクリックします。

    Device」で「Mobile」か「Desktop」を選択します。
    Audits」>「Performance」だけチェックを入れます。

    web-font-display-4
    ▲ 検証


    画面下の「Run Audits」ボタンをクリックして実行します。

  • Step 3
    結果を確認します。

    しばらくして測定結果が表示されたら、
    Passed audits」に「All text remains visible during webfont loads」と表示されれば OK です。

    web-font-display-5
    ▲ 合格した場合
スポンサーリンク
他、PageSpeed Insight でパソコン 最大 97 点、モバイル最大 68 点までスコアをアップさせるために行ったこと!

参考文献

Ensure text remains visible during webfont load


コメント

タイトルとURLをコピーしました