WebフォントでSEOを改善!表示速度を速くするための実践テクニック
目次
はじめに
Webサイトを開いたときに「なかなか表示されないな」と感じて、別のサイトに移動した経験はありませんか?
実は、ページ表示に3秒以上かかると、53%のユーザーが離脱すると言われています。これは「3秒ルール」と呼ばれ、Googleもページスピードを重要な評価指標として扱っています。
その中で意外と見落とされがちなのが、Webフォントの読み込みです。Webフォントは、デザイン性を高めてくれる便利な技術ですが、読み込みが遅いとユーザーの離脱やSEO評価の低下につながることもあります。
この記事では、Webフォントがサイトのパフォーマンスにどんな影響を与えるのか、そして速く・軽く使うための5つの実践テクニックをご紹介します。
▼CSSでフォントの見た目を整える方法はこちらから
WebフォントがSEOとユーザー体験に与える影響
Webフォントは、ブラウザが読み込んで初めて表示されるため、初回アクセス時の表示速度に強く影響します。とくに日本語フォントは容量が大きいため、読み込みに時間がかかる傾向があります。
フォントが表示されるまでテキストが見えなくなる「FOUT(Flash of Unstyled Text)」という現象も、ユーザー体験を損ねる原因になります。
その結果…
- SEOスコアが下がる
- ユーザーの離脱率が上がる
- 直帰率が悪化する
など、さまざまな悪影響が出てしまいます。
FOUTとは、Webフォントが読み込まれる前にページに表示される代替フォントのことです。この現象は、フォントが読み込まれる前にコンテンツが一時的に崩れるため、ユーザーに不安定な体験を与え、サイトを離れる原因となります。
Googleもフォント遅延を評価指標にしている
Googleがサイト評価に用いる「Core Web Vitals」のひとつ、LCP(Largest Contentful Paint)は、ページの主要なコンテンツが表示されるまでの時間を指します。Webフォントの読み込みが遅れると、このLCPの数値が悪化し、検索順位にも影響を及ぼします。
PageSpeed Insightsなどのツールでも、Webフォントの遅延がしばしば指摘されます。特に以下のようなケースでは要注意です。
- 複数のフォントを一度に読み込んでいる
- 太さ(ウェイト)を多く指定している
- 日本語フォントを全文字セットで読み込んでいる
今日から使える5つの軽量化テクニック
早速Webフォントを読むこむ際に使えるテクニックをご紹介します。
使用フォントを厳選する(軽量フォントを選ぶ)
Webフォントを使うときは、必要最小限のフォントを選ぶことが鉄則です。
たとえば、以下のフォントは見た目もよく、かつ比較的軽量です。
- Roboto(Google公式、英語向け)
- Open Sans(読みやすく汎用性あり)
- Noto Sans JP(日本語対応で軽量)
複数フォントを使うと、読み込みが複雑になりパフォーマンスが悪化します。基本は1~2種類に抑えるのが理想です。
必要な太さと文字セットだけを読み込む
Google Fontsなどでフォントを読み込む場合、使用するウェイト(太さ)だけを指定することで、無駄なデータを省くことができます。
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
このように wght@400;700 だけ指定すれば、通常と太字の2種類だけが読み込まれます。
よくあるミスとして、100~900すべての太さを読み込んでしまい、容量が膨大になるケースがあります。
また、日本語フォントの場合は、全文字セットをそのまま読み込むと1MBを超えることも。
必要な文字セットだけを読み込む(サブセット化)のも重要なポイントです。
font-display: swap を使って表示遅延をカバー
CSSで font-display: swap; を指定すると、Webフォントの読み込み前に、代替フォント(システムフォント)が一時的に表示されます。
@font-face {
/* フォントファミリー名 */
font-family: 'Noto Sans JP';
/* Google FontsからのURL(ウェイト400と700のみ指定) */
src: url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap') format('woff2');
/* 読み込むウェイト範囲(400と700のみ) */
font-weight: 400 700;
/* フォント読み込み中に代替フォントを表示 */
font-display: swap;
}
この設定により、テキストが非表示になってしまうことにより起きる表示崩れを防ぎ、ユーザーにとって読みやすく違和感の少ない表示が可能になります。
プリロードでフォントを先に読み込む
ブラウザに「このフォントは重要なので先に読み込んでね」と伝える方法が、プリロード(preload)です。
例えば、特定のフォント(ウェイト400や700)のみをプリロードする場合、次のように記述します
<head>
<!-- フォントのプリロード -->
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap" as="style" type="font/woff2" crossorigin="anonymous">
<!-- 通常のフォント読み込み -->
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap" rel="stylesheet">
</head>
これにより、ブラウザはフォントを優先して読み込むようになり、表示速度の改善につながります。
ただし、プリロードを使いすぎるとリソース競合が起こることもあるため、読み込み順を慎重に設計しましょう。
CDNと自前ホスティングの使い分け
Webフォントは、Google FontsのようなCDN(コンテンツ配信ネットワーク)経由で読み込むのが一般的ですが、場合によっては自前ホスティングの方がパフォーマンスを高められることもあります。
▼CDN(Google Fontsなど)
- 手軽に導入できる
- 多くのサイトでキャッシュが効く
- 海外サーバー経由のため、国内からやや遅いこともある
▼自前ホスティング
- 国内サーバーで高速配信が可能
- フォントの読み込み順やキャッシュ制御も自由
- 法規制やアクセス制限を回避できる
海外からのアクセスを重視しない場合や、制御性を高めたい場合は自前ホスティングを検討しましょう。
まとめ
Webフォントは、見た目の印象を大きく左右する重要な要素ですが、適切に管理しないと表示スピードやSEOに悪影響を及ぼします。
今回紹介した軽量化テクニックを使えば、
- 表示スピードの改善
- 離脱率の低下
- SEO評価の向上
といったメリットが得られます。
とくに初心者の方は、Webフォントを効率的に使うために以下の3つを実践しましょう。
- フォントの種類と太さを最小限に抑える
- font-display: swap を必ず指定する
- Google FontsのURLを最適化し、必要なフォントだけを読み込む
これらを実践することで、表示速度の向上、SEO評価の改善、そしてユーザー体験の向上に繋がります。