◉ANTIGRAVITY LABEN
記事一覧/Tips & 活用術
✦ Tips & 活用術/2026-10-27上級

和文 Web フォントをやめて FCP 4.1 秒が 1.7 秒に。理由の半分は再現ページで確かめられませんでした

PageSpeed のモバイル FCP 4.1 秒を、和文 Web フォントの配信停止で 1.7 秒へ。自己ホストは逆に悪化し、描画ブロックという説明は再現ページで確かめられませんでした。

Web フォントFCPPageSpeednext/fontパフォーマンス9

✦ プレミアム記事

PageSpeed Insights のモバイル結果を開くと、記事ページの FCP が 4.1 秒、トップページは FCP 7.7 秒・LCP 9.5 秒と出ていました。

最初に疑ったのは画像です。壁紙を扱う仕事柄、重い画像には慣れていて、LCP の要素もきっと画像だろうと決めてかかっていました。ところが要素を確かめると、画像ではなく文字でした。遅いのは、その文字を描くためのフォントの配信だったのです。

結論から書きます。和文の Web フォントを配信するのをやめたら、数字は大きく動きました。ただし、なぜ動いたのかという私の説明は、半分しか裏が取れていません。

効いた変更、逆効果だった変更、再現ページで確かめられなかった説明を、順に分けて書き残します。

数字が示していたのは、画像ではなく文字でした

Dolice で運用している Web サイトは、本文に Noto Sans JP を Google Fonts から読み込んでいました。重さは 300・400・500・700 の 4 ウェイトです。

ページFCPLCP
記事ページ(変更前)4.1 秒—
トップページ(変更前)7.7 秒9.5 秒

PSI のモバイルは CPU も回線も遅く見積もる前提です。実機の体感より厳しい数字ですが、だからこそ「最初の文字が出るまでに何を待っているか」が浮き彫りになります。

LCP の要素が文字だとわかった時点で、見る場所は画像の最適化から、フォント関連の通信に移りました。

121KB の CSS と、496 個の @font-face

Google Fonts の CSS を、Chrome のユーザーエージェントで取得して大きさを見ます。ブラウザごとに返る CSS が違うので、必ず実ブラウザに近い値を付けます。

UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
URL="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700"
 
# 転送量(gzip)
curl -s -A "$UA" -H "Accept-Encoding: gzip" -o /dev/null -w "gzip transfer=%{size_download}B\n" "$URL"
# 展開後のサイズと @font-face の数
curl -s -A "$UA" -H "Accept-Encoding: identity" "$URL" | tee /tmp/css2.txt | wc -c
grep -c "@font-face" /tmp/css2.txt

この記事を書いた日に取り直した結果は、次のとおりです。

項目値
gzip での転送量121,308 バイト(約 121KB)
展開後のサイズ447,832 バイト(約 448KB)
@font-face の数496 個(4 ウェイト × 124 サブセット)

和文フォントは、文字数が多すぎて 1 ファイルにできません。そこで Google Fonts は unicode-range で細かく分割して配ります。実際にダウンロードされる woff2 は使った文字を含む分だけですが、どのサブセットが必要かを決めるために、496 個分の宣言を先に全部読み込む必要があります。

欧文フォントの感覚で「CSS は数 KB」と思っていると、ここで見積もりが外れます。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦PageSpeed の FCP が遅いとき、画像を疑う前に外部フォント CSS の転送量と @font-face の数を手早く確かめられるようになる
✦「自己ホストにすれば速くなる」と決めて悪化させる前に、圧縮後のサイズと FCP を並べて判断できるようになる
✦「描画ブロックだから遅い」のような自分の説明を、数十行の再現ページにかけて、直したあとでも検証できるようになる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

✦ Tips & 活用術2026-03-30
Antigravity の動作が遅い・フリーズする時に、原因を切り分けてから直す手順
エージェントの応答が遅い・UI がフリーズするときに、設定をいじる前に原因を切り分ける手順をまとめました。コンテキストの大きさ、MCP サーバーの数、モデルとモードの選び方、出力が途中で切れる場合の別対応、Auto-continue の見直しまで扱います。
✦ Tips & 活用術2026-10-27
エージェントの rm -rf を手前で止める PreToolUse フックを 60 行で書く
Antigravity CLI の PreToolUse フックで、rm -rf と git push --force を実行前に判定して止める手順です。grep では素通りする書き方を、手元で 16 通り試した結果と一緒にまとめました。
✦ Tips & 活用術2026-10-25
WSL2 で antigravity と打って起動するのは、Windows 版か Linux 版か — 見分け方と、どちらを残すかの決め方
WSL2 に Linux 版を入れたのに、動作が重い、あるいは Windows 側のウィンドウが開く。そんなときに type -a と PATH の順序で起動元を特定し、Windows 版と Linux 版のどちらを残すかを判断するための手順をまとめました。