お好きな金額でサポートしていただけると嬉しいです!
(50円〜10,000円[税込]まで)
作成日時:2025年9月13日 15:23
更新日時:2025年9月13日 16:03
Next.js
Vercel
今回の記事では、
next/image
の役割と料金minimumCacheTTL
の意味とデフォルト(1分)の課題minimumCacheTTL
の設定方法についてお話します。
next/image
は、Next.js が提供する画像最適化コンポーネントです。<Image>
タグで使うやつですね。
ユーザーの端末やネットワーク条件に応じて、適切なサイズ・フォーマット(WebP/AVIF など)へ自動変換し、/_next/image
経由でCDNキャッシュと併用して配信してくれます。
デフォルトでは、キャッシュの最短TTL(minimumCacheTTL)は60秒となっています。
これは、画像の更新頻度が低いサイトにおいては短すぎるため、同じ画像でも最適化処理が再実行されやすく、コスト・レスポンスのパフォーマンス両面に悪影響を与える可能性があります。
https://nextjs.org/docs/app/api-reference/components/image#minimumcachettl
【注意】最新の料金は公式サイトを確認してください。
https://vercel.com/pricing
機能項目 | Hobbyプラン(無料) | Proプラン | Enterpriseプラン |
---|---|---|---|
Image Transformations(画像変換) | |||
- 無料利用枠 | 5,000回/月 | 10,000回/月 | カスタム |
- 超過料金 | 利用不可 | $0.05 per 1K変換〜 | カスタム価格 |
Image Cache Reads(画像キャッシュ読み取り) | |||
- 無料利用枠 | 300,000回/月 | 600,000回/月 | カスタム |
- 超過料金 | 利用不可 | $0.40 per 1M読み取り〜 | カスタム価格 |
Image Cache Writes(画像キャッシュ書き込み) | |||
- 無料利用枠 | 100,000回/月 | 200,000回/月 | カスタム |
- 超過料金 | 利用不可 | $4.00 per 1M書き込み〜 | カスタム価格 |
項目 | 内容 |
---|---|
課金モデル | 請求期間内のユニークなソース画像数(プラン依存) |
推奨 | ダッシュボードの設定から「変換ベース(transformations-based)」への切り替えが可能 |
よって、画像があまり変わらないのであれば、「キャッシュヒット率を上げて、最適化処理を減らす」が基本方針となるわけです。
例えばブログ記事などの場合、投稿した画像ってめったに変えませんよね。
そういったケースの場合は、next.config.jsの設定にminimumCacheTTLの設定を追加して、TTLを長めに設定するだけです。
module.exports = {
images: {
minimumCacheTTL: 2678400, // 31日。未指定の場合のデフォルトは1日です。
},
}"
今回は解説しませんが、他にも、画像の最適化は色々あるので、興味があれば調べてみてください。
sizes
を適切指定して、不要なサイズの画像生成を抑制(ただし、サイズのバリエーションが多くなるほどキャッシュヒット率は下がります。)priority
を付与、その他は loading="lazy"
quality
等のパラメータをプロジェクト規約で統一し、キャッシュ断片化を抑制本ブログのサイトでも、ちょっと遅いよなあ・・・と感じていたの画像表示までの速度を上記のminimumCacheTTLの設定を見直すだけで、ずいぶん改善させることができました(他の最適化もしているといえばしているのですが)。
アイキャッチ画像の表示などが重要なページとかだと、こういう部分の設定が現状どうなっていたか、一度見直ししてみることをおすすめします。
それでは、また。
HTNCode