Vercelは2026年7月17日(現地時間)、ランタイムログに「キャッシュ理由(Cache Reason)」の表示機能を追加しました。この機能により、開発者はリクエストがキャッシュヒットとならなかった具体的な原因を特定できるようになります。時間ベースまたはタグベースの再検証など、詳細な理由が明確に示されることで、キャッシュヒット率の改善やデバッグ効率の向上が期待されます。これにより、パフォーマンスとコスト効率の最適化に役立つと見られます。
Vercelが新たに実装したキャッシュ理由表示機能は、CDNがキャッシュ可能なあらゆるレスポンスに適用されます。これには、ISR(Incremental Static Regeneration)、Partial Prerendering、さらにはstale-while-revalidateディレクティブを持つCache-Controlヘッダーを設定した関数からのレスポンスが含まれます。一方、リクエストごとに動的にレンダリングされるレスポンスには、このキャッシュ理由は表示されません。
ログのCache Statusでは、「MISS」(Cold、Request collapsed、Errorなど)、「BYPASS」(Draft Mode、Prerender Bypass、Crawlerなど)、「STALE」(Time-based revalidation、Tag-based invalidation、Revalidation errorなど)、「REVALIDATED」(Tag-based deletionなど)といった主要なステータスと、それぞれの具体的な理由が詳細に示されます。
開発者は、Vercelダッシュボードの「Logs」タブから特定のリクエストを選択することで、キャッシュステータスとその詳細な理由を確認できます。各ステータスおよび理由は、参照先となるCache Status and Reasonsへの直接リンクを通じて、より深い理解を促します。さらに、vercel logsやvercel metricsといったCLIコマンド、あるいはVercel Pluginのcdn-caching skillを活用することで、個別のリクエストにおけるキャッシュ理由の深掘り調査や、トラフィック全体のキャッシュ理由の発生頻度を定量的に分析することが可能です。
この新機能を最大限に活用し、キャッシュヒット率の改善およびデバッグ効率化を図るための具体的なアクションは以下の通りです。
- ログ分析による原因特定: Cache Reasonログを定期的に監視し、MISSやSTALEの原因となっている具体的な理由(例:Tag-based invalidationの頻発、Time-based revalidationの短すぎる設定)を特定します。これにより、キャッシュ戦略のボトルネックを特定し、改善策を講じることが可能になります。
- stale判定時の再検証ロジック最適化: STALEステータスが頻繁に発生している場合、その理由(Revalidation errorなど)を深掘りし、再検証処理の信頼性を向上させます。必要に応じて、バックエンドの負荷分散やエラーハンドリングを強化し、キャッシュの鮮度を保ちつつ、オリジンサーバーへの不要な負荷を避けるように調整します。
- コスト最適化とパフォーマンス改善への応用: BYPASSステータスが意図せず発生しているリクエストを特定し、それがビジネスロジック上本当に必要なものか評価します。例えば、特定のエンドポイントが頻繁にBYPASSされている場合、その原因を究明し、可能な限りキャッシュを活用できるよう設計を見直すことで、CDNコストの削減とエンドユーザーへのレスポンス速度向上に繋げることができます。
参考: Vercel Blog — 2026年7月17日 10:00 (JST)
原文ハイライト"Runtime logs now show cache reasons"