FCPを改善

| # | コミット | プラクティス | FCPへの効果 |
|---|----------|-------------|-------------|
| 1 | d7c76f2 | CSS 10本を1本に結合(必須) | 観測FCP -71.9ms(807.9 → 736.0ms) |
| 2 | 25e883b | 結合済みCSSのminify(504KB → 359KB) | シミュレーション上は効果なし。実配信でgzip後 -12.4KB |
| 3 | bd3d93f | 未使用CSSの削減(359KB → 145KB、-59.5%) | シミュレーション上は効果なし。実配信でgzip後 -26.1KB |
| 4 | 05548e2 | ドキュメントTTFB短縮シミュレーション(591 → 200ms) | 観測FCP -396ms(実ブラウザ計測) |
| - | e50e60d | (プラクティスではない)ドキュメントTTFBを591msに復帰 | 計測環境の正常化 |

| 項目 | 状態 |
|------|------|
| 【必須】GZIP圧縮 | 適用済み(テキスト系33件中31件がgzip済み。非gzipの2件は配信されない403ページ。対応不要) |
| パブリックCDNの同一ドメイン化 | 該当なし(233件全件が同一ドメイン、CDNホスト0件) |
| CSSが別ドメインから配信 | 該当なし(CSS 10本すべて同一ドメイン) |
| 複数CSSの一本化 | 適用済み(10本→1本。観測FCP -71.9ms) |
| script要素によるレンダリングブロック | 適用済み(TBT P5で対応済み。head内script 0本) |
| CSSの@import使用 | 該当なし(再帰検索で0件) |
| 不使用CSSの存在 | 適用済み(-59.5%。残存18KiBは削除不可能) |
| document.write | 該当なし(0件) |
| Google Optimizeによる表示制御 | 該当なし(0件) |
| preloadの誤用 | 該当なし(リソースヒント全種0件) |
| クリティカルCSSの逆効果 | 該当なし(styleブロック0件、動的注入0件) |
| アニメーションによる表示遅延 | 該当なし(該当CSSは存在するが対象要素がこのページに0件) |

1. psq playback はバイト削減を速度に反映しない(記録済みのttfbMs/durationMsのみで再現)。
   P2・P3の「効果なし」はシミュレータの仕様であり、実配信での削減(合計gzip後 -38.5KB)は実在する。
   P1が -71.9ms を出せたのはリクエスト本数(10→1)を変えたため。

2. ttfbMs < 500 で Lighthouse の計測が破綻する(500と450の間に約+1,940msの不連続な段差)。
   P4のLighthouse計測値(SI 1536ms / trace観測FCP 2334ms)は無効値であり、指標推移グラフに使用してはならない。

3. Lighthouse報告FCP(Lantern値)はドキュメントTTFBに一切反応しない(掃引全域で356〜383ms)。
   このページのFCPの81%を占める最大の弱点は、PageSpeed Insightsのスコアでは原理的に可視化できない。

- P1〜P3: フロントエンドのコード改修のみで実現可能
- P4: インフラ/サーバーサイド改修(アプリ応答速度・CDN・キャッシュ・DBクエリ)を要する

P4の効果はP1〜P3の合計の5.5倍だが、改修の費用・リードタイム・実施主体が根本的に異なる。

style.css はサイト全体で共有される単一の巨大CSSであり、トップページから到達不能なルールが
ルール数で68%・バイトで59.5%を占めていた。ページ別CSS分割またはクリティカルCSS抽出で恒久的に解消できる。

LCP: 369ms
CLS: 0.000
TBT: 0ms
FCP: 352ms
SI: 606ms
Overall Score: 100

観測FCP(トレース実測): 807.9ms → 727.5ms