<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Google Fonts on 大体動かない</title><link>https://daitai.dev/tags/google-fonts/</link><description>Recent content in Google Fonts on 大体動かない</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sat, 11 Apr 2026 22:40:21 +0900</lastBuildDate><atom:link href="https://daitai.dev/tags/google-fonts/index.xml" rel="self" type="application/rss+xml"/><item><title>Cloudflare Web Analytics の LCP がひどかったので Google Fonts をやめた</title><link>https://daitai.dev/posts/google-fonts-lcp/</link><pubDate>Sat, 11 Apr 2026 22:40:21 +0900</pubDate><guid>https://daitai.dev/posts/google-fonts-lcp/</guid><description>&lt;p&gt;このブログの Cloudflare Web Analytics を眺めていたら、LCP（Largest Contentful Paint）の評価がなかなかひどいことになっていた。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://daitai.dev/posts/google-fonts-lcp/cloudflare-webanalytics-lcp.png" alt="Cloudflare Web Analytics の Core Web Vitals。LCP が Good 0%、Needs Improvement 50%、Poor 50%"&gt;&lt;/p&gt;
&lt;p&gt;体感では全然遅くないんだけどなぁ、と思いつつ、Claude さんに原因を調べてもらった。&lt;/p&gt;
&lt;h2 id="結論google-fonts"&gt;結論：Google Fonts&lt;/h2&gt;
&lt;p&gt;Claude さん、さすがに早い。表題の通りの結論でした。&lt;/p&gt;
&lt;p&gt;どうやら、デザインで使っていた、&lt;code&gt;M+PLUS+Rounded+1c&lt;/code&gt; という日本語の丸ゴシックフォントが犯人。&lt;/p&gt;
&lt;p&gt;グリフ数が数万文字規模になるので、ファイルサイズが英字フォントとは桁違いに重いとのこと。&lt;/p&gt;
&lt;p&gt;詳しく説明してもらいました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hugo の設定を見たら、こういう記述があった。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;googleFontsLink&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;700&amp;amp;family=JetBrains+Mono:wght@400;500&amp;amp;display=swap&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;しかも外部 CDN（fonts.googleapis.com）へのリクエストが発生するので：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;DNS 解決&lt;/li&gt;
&lt;li&gt;TCP 接続&lt;/li&gt;
&lt;li&gt;TLS ハンドシェイク&lt;/li&gt;
&lt;li&gt;フォント CSS の取得&lt;/li&gt;
&lt;li&gt;実際のフォントファイルの取得&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;という連鎖が初回訪問のクリティカルパスに入ってくる。LCP がテキスト要素（見出し）だったとすれば、フォントが読み込まれるまでレンダリングがブロックされる。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="体感と計測がズレる理由"&gt;体感と計測がズレる理由&lt;/h2&gt;
&lt;p&gt;キャッシュだよ、キャッシュ。&lt;/p&gt;
&lt;p&gt;Claude さんに言われて気づいたわ。&lt;/p&gt;
&lt;p&gt;自分のブラウザに既にあるんだもん、そりゃ速いはずだよ。&lt;/p&gt;
&lt;p&gt;Cloudflare Web Analytics は実際の訪問者のブラウザで計測した RUM（Real User Monitoring）データを集めている。&lt;/p&gt;
&lt;p&gt;訪問者のほとんどは初回訪問でキャッシュなし。&lt;/p&gt;
&lt;p&gt;見た人は、「おっそ！」って思ってたことでしょう。&lt;/p&gt;
&lt;p&gt;ほんとすみません。&lt;/p&gt;
&lt;h2 id="システムフォントに切り替えた"&gt;システムフォントに切り替えた&lt;/h2&gt;
&lt;p&gt;ということで、Google Fonts をやめてシステムフォントに切り替えました。「丸みがあれば何でもいい」という半ば投げやりな姿勢で選んでもらった。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;Hiragino Maru Gothic ProN&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Hiragino Maru Gothic Pro&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;BIZ UDPGothic&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Noto Sans JP&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;sans-serif&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;OS&lt;/th&gt;
 &lt;th&gt;使われるフォント&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;macOS / iOS&lt;/td&gt;
 &lt;td&gt;ヒラギノ丸ゴ ProN（丸みは M PLUS とほぼ同等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Windows 10/11&lt;/td&gt;
 &lt;td&gt;BIZ UDPGothic（UD 系、やや丸み）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Android / Linux&lt;/td&gt;
 &lt;td&gt;Noto Sans JP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;コードブロックの &lt;code&gt;JetBrains Mono&lt;/code&gt; も同様にシステムフォントへ：&lt;/p&gt;</description></item></channel></rss>