現状・条件
- レンタルサーバ環境 (ブログを始めるなら国内シェアNo.1のエックスサーバー )
- WordPress バージョン:5.2.4
- WordPress のテーマ:Cocoon 1.9.9.5.3
- Autoptimize:2.5.1
- WEB フォントを使用することが前提です。
- Autoptimizeプラグインを設置しておく必要があります。まだの方は JavaScript や CSS の最適化のための Autoptimize プラグインの設定方法 記事をご覧ください。
WEB フォントを指定する
以下、Cocoon テーマをベースに「Mplus 1p (WEBフォント)」を指定する方法です。
( 指定するフォントは適宜変更してください。)
Cocoon テーマで WEB フォントを指定します。
WordPress 管理画面から、
・押下:「Cocoon 設定」>「Cocoon 設定」
・ページ内:「全体」タブを選択
「サイトフォント」>「フォント」で、Mplus 1p (WEBフォント)を選択して「変更をまとめて保存」ボタンをクリックします。
Autoptimize を設定する
WordPress 管理画面から、
・押下:「設定」>「Autoptimize」
・ページ内:「追加」タブを選択
「追加の自動最適化」>「Google Fonts」>「Goolge フォントの削除」を選択し「変更を保存」ボタンをクリックします。
PageSpeed Insights で分析する
PageSpeed Insights でご自身のサイトを分析します。
下記のように woff2 フォントなどのリンクと減らせるデータ量が表示されます。
CSS 作成に必要ですので、その URL リンクをコピペしておきます。
分析結果を CSS に反映する
WEB フォントがロード中に表示できない場合、システムフォントを一時的に表示できるように、font-display: を @font-face スタイルにスワップ ( swap ) することで、ほとんどの最新ブラウザーでこの問題を回避できると言われています。
font-display:swap を CSS に追記して対応しますが、全てのブラウザで font-display:swapをサポートしているわけではないため、Web Font Loader を採用し、設定を行います。
- 1CSS の書き方(例)
src に local() で指定したシステムフォントと 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;
} - 2font-family を確認
Google Fonts M PLUS 1p へアクセスします。
( ※ M PLUS 1p フォントは Roboco に含まれています。)ページの左下の方に、下記のような Roboto フォントが表示されているはずです。+ をクリックします。
すると、右下に下記のような 1 Family Selected ウィンドウが表示されます。
▲ Specify in CSS に書かれている font-family: は 後で CSS に反映します。まず、STANDARD に表示されたリンクをコピーして下記の手順で設定します。
WordPress 管理画面から、
・押下:「Cocoon 設定」>「Cocoon 設定」
・ページ内:「アクセス解析・認証」タブ
「その他のアクセス解析・認証コード設定」>「ヘッド用コード」に<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
を追加します。
- 3CSSを追加します。
先ほど、コピした URL と Specify 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 内容をペーストしてファイルを保存します。
- 4Web 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 1Chrome ブラウザのデベロッパ ツールにアクセスします。
Chrome ブラウザで、「表示」>「開発 / 管理」>「デベロッパ ツール」をクリックするか、 Option + Command + I (大文字 i) キーを押下してデベロッパ ツールにアクセスします。
- Step 2検証します。
「Audits」タブをクリックします。
「Device」で「Mobile」か「Desktop」を選択します。
「Audits」>「Performance」だけチェックを入れます。
画面下の「Run Audits」ボタンをクリックして実行します。 - Step 3結果を確認します。
しばらくして測定結果が表示されたら、
「Passed audits」に「All text remains visible during webfont loads」と表示されれば OK です。
参考文献
Ensure text remains visible during webfont load
コメント