<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloudflare on 大体動かない</title><link>https://daitai.dev/tags/cloudflare/</link><description>Recent content in Cloudflare on 大体動かない</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Mon, 13 Apr 2026 02:33:01 +0900</lastBuildDate><atom:link href="https://daitai.dev/tags/cloudflare/index.xml" rel="self" type="application/rss+xml"/><item><title>LCP が 100% Good になった</title><link>https://daitai.dev/posts/lcp-result/</link><pubDate>Mon, 13 Apr 2026 02:33:01 +0900</pubDate><guid>https://daitai.dev/posts/lcp-result/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Google Fonts をシステムフォントに切り替えた結果、Cloudflare の LCP が「100% Good」になり、ページ読み込み時間が 56% 削減（514ms）された。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;やったね！&lt;/p&gt;
&lt;p&gt;&lt;img src="https://daitai.dev/posts/lcp-result/image.png" alt="Cloudflare Web Analytics。LCP が 100% Good、ページ読み込み時間 514ms（-56.88%）"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://daitai.dev/posts/google-fonts-lcp/"&gt;先日 Google Fonts をやめてシステムフォントに切り替えた&lt;/a&gt;記事を出してから今日早速確認してみたところ、大幅に改善されてた。いやほんと申し訳ない。海よりも深く反省しています。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LCP：100% Good。&lt;/strong&gt; ページ読み込み時間は 514ms で、改善前から 56% 削減。&lt;/p&gt;
&lt;p&gt;このブログ、frontend-design スキルにすべて任せて既存テンプレートのデザインを改修してもらったんだけど、こういう重くなる要素に考えが至らなかった。&lt;/p&gt;
&lt;p&gt;事象を確認してはじめて自分の失態に気づく、という結果だったので、改めて監視って大事だなと思いました(小並)。&lt;/p&gt;</description></item><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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — 日本語 Google Fonts（M PLUS Rounded 1c）は初回訪問者の LCP を大幅に悪化させる。システムフォントに切り替えれば外部フォントリクエストがゼロになる。&lt;/p&gt;
&lt;/blockquote&gt;
&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;</description></item></channel></rss>