コンテンツに進む

2026年10月のサイトメンテナンス

依存パッケージの更新をきっかけに、Chrome の検証や PageSpeed Insights の指摘を順に片付けました。1日で終わる規模の、日常のメンテナンスです。

指定範囲の中で、最新のパッチ版に更新しました。

パッケージ 更新内容
Astro 7.3.5 → 7.3.8
@astrojs/starlight 0.42.5 → 0.42.7
@astrojs/check 0.9.10 → 0.9.12

ほかに sharp・prettier・Babel などもパッチ版に上げています。

Chrome の DevTools で、「Fenced Frame API は非推奨となり、削除される予定です」という警告が出ていました。出どころは、Google Analytics を Web Worker で動かすために使っていた Partytown です。

Partytown は6月の改善で、メインスレッドのブロックを解消するために入れたものです。外すと遅くなるのかを、Lighthouse(モバイル、5回の中央値)で比べました。

指標 トップ(あり → なし) 記事ページ(あり → なし)
Performance 98 → 98 100 → 100
FCP(最初の表示) 1.35秒 → 1.20秒 1.35秒 → 1.35秒
LCP(主な内容の表示) 2.40秒 → 2.25秒 1.35秒 → 1.35秒
TBT(操作をふさぐ時間) 0ms → 69ms 0ms → 33ms

Partytown ありのほうが TBT は 0ms で、6月の改善の効果は今も残っていました。一方で、外しても表示の速さは変わらず、TBT の増え方も「良い」とされる 200ms 未満に収まります。

Partytown は、1ページを開くたびに Service Worker を通して50件ほどの通信をしていました。差が小さいなら、仕組みが単純なほうを選ぶことにして、Partytown を外しました。

あわせて、Google Analytics は本番のサイトでだけ読み込むようにしました。手元で確認しているときのアクセスが、アクセス解析に混ざらなくなります。

公開サイトをモバイルで測ると、次の2点を指摘されました。

  • 日付の文字色のコントラスト不足: お知らせやブログ一覧の日付が、ダークテーマで基準にわずかに届いていませんでした。文字色を一段濃くし、ユーザー補助のスコアが 96 から 100 になりました。
  • 使われていない preconnect: Google Analytics が接続しなくなったドメインへの preconnect が残っていたので、削除しました。

ほかにも、レンダリングをブロックする CSS や、使われていない JavaScript などが表示されました。どれもスコアに影響しない改善のヒントで、Starlight 本体や Google Analytics のスクリプトによるものなので、そのままにしています。

Chrome の検証では、検索欄やテーマの切り替えに id / name がないという指摘もありました。これも Starlight と検索機能(Pagefind)の部品によるもので、動作には影響しないため、対応していません。

デプロイは、ビルドしてサーバーに転送するシェルスクリプトで行っています。これまではビルドと転送の出力が数百行流れるため、途中に警告が出ても見落としがちでした。

スクリプトを次のように変えました。

  • 出力はすべてログファイルに残し、画面には段階ごとの進み具合だけを表示する
  • 最後に、ログから警告とエラーの行を拾って表示する
  • 転送したファイルの数を表示する
  • どこかで失敗したら、その時点で止める

画面の表示は、これだけになりました。

▶ 型定義を同期… 完了
▶ ビルド中… 完了(373ページ)
▶ 転送中… 完了(dist: 373件 / public: 0件 / .htaccess: 0件)
⚠ 警告: なし

これまでは、ビルドに失敗しても転送に進んでいました。不完全な内容で公開サイトを上書きするおそれがなくなったのも、改善点のひとつです。

会社案内のスパム対策を、英語版にも日本語版と同じように適用しました。

最終更新: