ANAYIL GROUPHosting · My Domains Submit a Ticket
Help center
HomeWeb Performance Optimisation (WPO)[WPO-010] Cache versioned assets without serving stale files
Web Performance Optimisation (WPO)7 min•Difficulty: Intermedio

[WPO-010] Cache versioned assets without serving stale files

Use long-lived caching only for hashed filenames and keep HTML revalidatable.

Ingeniería de Rendimiento AnayilUpdated: 2026-10-10

Apply this guide to your situation

This answer covers “[WPO-010] Cache versioned assets without serving stale files”. Read it with the summary and confirm that the symptom and service match what you are experiencing. Available options can vary by plan and account setup.

  • Before changing anything, note what you expected, what happened and roughly when. Check whether the issue affects one page or the whole service.
  • Save the full error message and note recent changes. Hide passwords, access codes, personal data and keys before sharing screenshots or logs.
  • If a step requires administrator access, restarting services or editing server files, stop if you do not administer that server. Send support the service name, error and checks you have already made.

L3 technical diagnosis

Performance / configurationSeverity: Medium; high if conversion or availability is affected

User symptoms

Some visitors retain old CSS/JS after a release; others receive 404s for old chunks.

Observed code or message

Unexpected `Age`, persistent `from disk cache` or `ChunkLoadError` after deployment

Likely root cause

HTML and assets share a long TTL, or a file changes while keeping the same name. A release can delete chunks before old HTML stops referencing them.

Likely-cause and resolution matrix

Follow a branch only when evidence supports it. A symptom may have more than one cause; do not change layers by guesswork.

01Professional English translation pending.

Why it can happen: Professional English translation pending.

How to diagnose (read-only):
bash
Professional English translation pending.

Step-by-step resolution:
Professional English translation pending.

02Professional English translation pending.

Why it can happen: Professional English translation pending.

How to diagnose (read-only):
bash
Professional English translation pending.

Step-by-step resolution:
Professional English translation pending.

03Professional English translation pending.

Why it can happen: Professional English translation pending.

How to diagnose (read-only):
bash
Professional English translation pending.

Step-by-step resolution:
Professional English translation pending.

04Professional English translation pending.

Why it can happen: Professional English translation pending.

How to diagnose (read-only):
bash
Professional English translation pending.

Step-by-step resolution:
Professional English translation pending.

05Professional English translation pending.

Why it can happen: Professional English translation pending.

How to diagnose (read-only):
bash
Professional English translation pending.

Step-by-step resolution:
Professional English translation pending.

Prerequisites

  • Authorised access to the affected site, repository or service metrics.
  • A reproducible URL and timestamp; use staging for infrastructure changes.
  • A backup or rollback method for configuration and deployments.

Important warnings

  • Inspection commands do not authorise production changes. Do not run load tests or global purges without an approved plan.
  • Never store private responses in shared caches. Server changes in Anayil Panel depend on the controls available for the service and may require its administrator/provider.

Step-by-step walkthrough

1. Reproduce and narrow the issue

Some visitors retain old CSS/JS after a release; others receive 404s for old chunks. Check filenames, content hashes, `Cache-Control`, ETag and compatibility between the HTML version and asset manifest.
bash
curl -sSI https://example.com/
curl -sSI https://example.com/assets/app.a1b2c3.js
Expected output:
Unexpected `Age`, persistent `from disk cache` or `ChunkLoadError` after deployment

2. Apply the appropriate correction

Keep HTML revalidatable (`no-cache` does not mean unstoreable) and use a long TTL with `immutable` only for hashed assets whose content cannot change. Retain previous chunks during the deployment transition.

3. Verify the experience

After release, a new session receives the current manifest; an open tab does not lose chunks, and reload revalidates HTML without unnecessarily redownloading every versioned asset.
Expected output:
The improvement is reproducible on the affected route and profile with no new functional errors.

Troubleshooting & Solutions

Unexpected `Age`, persistent `from disk cache` or `ChunkLoadError` after deployment

Root cause: HTML and assets share a long TTL, or a file changes while keeping the same name. A release can delete chunks before old HTML stops referencing them.

Resolution: Keep HTML revalidatable (`no-cache` does not mean unstoreable) and use a long TTL with `immutable` only for hashed assets whose content cannot change. Retain previous chunks during the deployment transition.

Rollback and recovery plan

Roll back only the changed directive, dependency or release using the recorded value. If 5xx errors, data exposure or session failures occur, have the operator disable the new rule and retain redacted logs for analysis.

Related runbooks in this category:

Was this technical guide helpful?

Facing a production outage?

Hosting Anayil system administrators can directly intervene on your server infrastructure.

Open Support Ticket at Hosting Anayil