Vercel、キャッシュ理由をログ表示へ
Vercel はランタイムログにキャッシュ理由(Cache Reason)の表示機能を追加し、開発者がキャッシュミスや再検証の仕組みをデバッグしてヒット率を向上させられるようにした。
キーポイント
キャッシュ理由の詳細可視化
リクエストがフレッシュなキャッシュヒットではなかった際、その理由(時間ベース/タグベース再検証など)をログで明示的に表示する機能が追加された。
対応するキャッシュステータスと理由の分類
MISS, BYPASS, STALE, REVALIDATED の各ステータスに対し、具体的な原因(例:Draft Mode, Tag-based invalidation)が紐付けられ、デバッグを容易にする。
多様なキャッシュ戦略への対応
ISR、Partial Prerendering、および Cache-Control ヘッダーを設定した関数など、CDN がキャッシュ可能なあらゆるレスポンスタイプでこの機能が動作する。
重要な引用
Runtime logs now show a Cache Reason explaining why a request wasn't a fresh cache hit
Use cache reasons to debug misses and improve your hit rate.
Cache status: Possible reasons - MISS (Cold, Request collapsed, Error), BYPASS (Draft Mode...)
影響分析・編集コメントを表示
影響分析
この機能強化は、サーバーレス環境における CDN キャッシュの内部挙動をブラックボックス化せず、透明性を高める点で開発者体験(DX)に大きく寄与します。特に、キャッシュヒット率が低下している際の根本原因分析時間を短縮できるため、コスト削減とパフォーマンス最適化の現場適用性が極めて高いと言えます。
編集コメント
キャッシュの挙動を可視化する機能は、複雑化する現代の Web アーキテクチャにおいて不可欠なインフラ整備です。特に Vercel のような高速デプロイプラットフォームでは、開発者がキャッシュの仕組みを直感的に理解し、最適化できる環境を提供することがサービスの競争力を支える重要な要素となっています。
ランタイムログにキャッシュの理由が表示されるようになりました
リクエストがなぜフレッシュなキャッシュヒットにならなかったのか、その理由を説明する「キャッシュ理由(Cache Reason)」がランタイムログに表示されます。具体的には、時間ベースやタグベースの再検証などが該当します。キャッシュミスのデバッグやヒトレートの向上に役立ててください。
CDN がキャッシュ可能な応答であれば、キャッシュ理由は表示されます。ISR(Incremental Static Regeneration)やパーシャルプリレンダリング、また stale-while-revalidate などのディレクティブを含む Cache-Control ヘッダーを設定する関数も含まれます。一方、すべてのリクエストで動的に描画される応答にはキャッシュ理由が表示されません。
キャッシュステータスと考えられる理由の対応表は以下の通りです。
- MISS: コールド、リクエストの統合(Request collapsed)、エラー
- BYPASS: ドラフトモード、プリレンダリングバイパス、クローラー
- STALE: 時間ベースの再検証、タグベースの無効化、再検証エラー
- REVALIDATED: タグベースの削除
「Logs」タブを開いてリクエストを選択すると、キャッシュステータスとともにその理由が表示されます。各ステータスと理由には、キャッシュステータスと理由のリファレンスページへのリンクが設定されています。
CLI からの利用
キャッシュ理由は、vercel logs コマンドや Vercel メトリクス、Vercel プラグインの cdn-caching スキルでも確認可能です。
キャッシュステータスと理由の詳細については、以下のページをご覧ください。さらに詳しく知りたい場合は「Read more」から参照してください。
原文を表示
Runtime logs now show a Cache Reason explaining why a request wasn't a fresh cache hit, for example a time-based or tag-based revalidation. Use cache reasons to debug misses and improve your hit rate.
Cache reasons appear for any response the CDN can cache, including ISR, Partial Prerendering, and functions that set a Cache-Control header with directives like stale-while-revalidate. Responses rendered dynamically on every request don't have a cache reason.
Cache status
Possible reasons
MISS
Cold, Request collapsed, Error
BYPASS
Draft Mode, Prerender Bypass, Crawler
STALE
Time-based revalidation, Tag-based invalidation, Revalidation error
REVALIDATED
Tag-based deletion
Open the Logs tab and select a request to see the reason alongside its cache status. Each status and reason links to its entry in the Cache Status and Reasons reference.
From the CLI
Cache reason is available in vercel logs, vercel metrics, and Vercel plugin's cdn-caching skill:
Learn more about cache statuses and reasons.
Read more
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み