補足施策

| 項目 | 状態 |
|------|------|
| WebP最適化 | 対象0件を実測確認(index.json 548件にJPEG/PNGは存在せずP-LCP-4で適用済み) |
| JS最適化 第1段階(body末尾移動) | 適用済み(script 30本を移動。効果なし=P-FCP-5のdefer付与で既に解決済み) |
| JS最適化 第2段階(async付与) | 適用済み(対象はmessage.js 1本のみ。19本中18本がjQuery依存のため) |
| CSS結合 | FCPフェーズで適用済み(9本→1本) |
| GZIP圧縮 | 有効(text/JS/CSS/JSON/SVG/XMLで未適用0件) |

| 項目 | 状態 |
|------|------|
| HTMLファイルサイズ | 適用済み(空白・コメント324個・死んだ広告スタブを除去。生サイズ -22.7%) |
| 未使用CSS | 適用済み(実行時カバレッジで追加除去。CSS累計 -40.0%) |
| 結合CSSのminify | 適用済み(unminified-css 0.5→1) |
| IE向けポリフィル | 適用済み(legacy-javascript 0.5→1。実バグも同時解消) |
| passive event listener | 適用済み(指摘2→1件。残1件はjQuery内部で対処不能) |
| フォントのインライン化 | 適用済み(最長チェーン345→161ms、深度3→2) |
| キャッシュ設定 | 適用済み(シミュレーション。uses-long-cache-ttl/cache-insight 0.5→1) |
| bf-cache | 適用済み(シミュレーション。score 0→1、failure 3→0件) |
| アニメーションGIF | 適用済み(ajax-loader.gif の読み込み回避) |
| 初期非表示DOMの遅延生成 | 効果なし(DOM -29.1%だが指標は1つも改善せず。mainに取り込まず) |
| 画像の表示サイズ等倍リサイズ | 不採用(全件でDiff 10.79%不合格。部分適用でも監査未達成) |
| jQueryの再minify | 不採用(gzip後はほぼ変化なし。ライブラリ改変は運用適用性が低い) |
| Google Fonts | 該当なし(サイト自身のHTML/CSSからの参照0件) |
| 日本語Webフォント | 該当なし(slick.woff 1,540Bのアイコンフォントのみ) |
| ネットワーク速度シミュレーション | 条件未達(実効帯域中央値120Mbps・RTT実質0msのため実施不要) |

実リクエスト138件を cache-control で分類すると:

| 指定 | 件数 | 転送バイト |
|------|------|-----------|
| private | 104 | 904,718B |
| no-store / no-cache | 11 | 58,723B |
| 合計(監査対象外) | 115 | 963,441B = 転送バイトの87.2% |

原因は lighthouse/core/audits/byte-efficiency/uses-long-cache-ttl.js L173-190 の
shouldSkipRecord() が private / no-store / no-cache を無条件に除外していること。

そのため「Est savings of 89 KiB」という指摘は実態の1/10以下である。

P-SUP-10 で当初「private の除去のみ」を試したところ、
指摘対象が 20件 → 105件 に増加し、wasted-bytes 推定は約5.2倍に悪化した。

private が外れたことで監査の対象に含まれるようになり、
今度は max-age が短すぎることが新たに指摘されたためである。

max-age も1年に延長する完全是正版で uses-long-cache-ttl / cache-insight とも
score 0.5 → 1 を達成した。

common.js の initSwiper() 内に以下のコードがあった:

    if (String.repeat == null) { /* O(n)ループによる素朴な実装で上書き */ }

String.repeat は静的メソッドとしては存在せず(正しくは String.prototype.repeat)、
この条件は常に true となる。

結果として全モダンブラウザで、ネイティブの String.prototype.repeat が
素朴なループ実装に無条件で上書きされていた。L67から実際に呼び出されている。

IE向けポリフィルの残骸除去と同時にこの実行時バグを解消した。

psq の Lighthouse は performance カテゴリのみ実行するため(監査73件)、
errors-in-console 監査はレポートに含まれない。

本プロジェクトで各所に記録していた「errors-in-console 0件」は、
キーが存在しないため常に0が返る無効な検証だった。

Puppeteerでリスナーを goto の前に登録する厳密な検証スクリプト
(persistence/scripts/js_error_check.js)を作成して再検証した結果:

- JSエラー 0件
- jQuery / $.cookie / $.fn.slick / $.fn.myModal すべて正常に定義
- カルーセル3系統がすべて初期化(.slick-initialized = 3)

これにより、同期XHRの静的script化・全19本へのdefer付与・
ライブラリ削除といったリスクの高い変更が実際に壊れていないことが実証された。

P-SUP-10(キャッシュ設定)と P-SUP-11(bf-cache)は index.json の
rawHeaders を書き換えたシミュレーションであり、実際のサーバー改修ではない。
P-FCP-8(文書TTFB)・P-LCP-6(画像TTFB)と同じ位置づけである。

LCP: 159ms
CLS: 0.000
TBT: 0ms
FCP: 95ms
SI: 179ms
Overall Score: 100