---
title: "Hashed static assets are not cached long-term (perf/cache-headers)"
description: "perf/cache-headers: Fingerprinted files never change, so anything short of a year-long immutable cache makes repeat visitors re-download them."
canonical: https://void-design.vercel.app/rules/perf/cache-headers
lastModified: 2026-09-16
---

# Hashed static assets are not cached long-term

`perf/cache-headers` · severity **warn** · category Performance · detected by `void perf` and `void audit`

## Why it matters

Fingerprinted files never change, so anything short of a year-long immutable cache makes repeat visitors re-download them.

## How to fix it

Serve content-hashed assets with Cache-Control: public, max-age=31536000, immutable. Keep HTML on no-cache or a short CDN s-maxage.

## Example

```
Cache-Control: public, max-age=31536000, immutable
```

## More performance rules

`void perf` reports 25 rules in this category. Core Web Vitals and bytes: LCP, CLS, TBT, TTFB, JavaScript, CSS, fonts, images, caching and compression, measured as the median of several runs on a throttled mobile and a desktop profile.

- `image-legacy-format` Image served in a legacy format — [perf/image-legacy-format](https://void-design.vercel.app/rules/perf/image-legacy-format)
- `images-missing-dimensions` Images without width/height or aspect-ratio — [perf/images-missing-dimensions](https://void-design.vercel.app/rules/perf/images-missing-dimensions)
- `render-blocking` Render-blocking resources delay first paint — [perf/render-blocking](https://void-design.vercel.app/rules/perf/render-blocking)
- `no-text-compression` Text resources are served uncompressed — [perf/no-text-compression](https://void-design.vercel.app/rules/perf/no-text-compression)
- `third-party-heavy` Heavy third-party footprint — [perf/third-party-heavy](https://void-design.vercel.app/rules/perf/third-party-heavy)
- `dom-size` DOM is very large — [perf/dom-size](https://void-design.vercel.app/rules/perf/dom-size)
- `bfcache-blocked` Page is not eligible for the back/forward cache — [perf/bfcache-blocked](https://void-design.vercel.app/rules/perf/bfcache-blocked)
- `lighthouse-score-low` Lighthouse performance score is low — [perf/lighthouse-score-low](https://void-design.vercel.app/rules/perf/lighthouse-score-low)

Detected by `void perf` and `void audit`. Explain it in a terminal: `void rules perf/cache-headers`
