Skip to article
PerformanceOct 20, 20262 min read

bfcache checklist: test back navigation and page state

Test the back/forward cache with a reproducible navigation sequence. Investigate reported blockers and check page state after returning.

Back arrow leading to a page preserved in a transparent memory capsule

If a page reloads completely when you go back, check the back/forward cache, or bfcache. A useful test needs a specific navigation sequence and a known initial state. One successful attempt does not guarantee that the page will be restored on every subsequent visit.

Define the navigation sequence

Choose a public product or article page. Follow a link to another page, then return using the browser’s Back button. Record the browser, its version and the pages used. Check whether filters, scroll position and visible content remain correct after returning.

Milten’s bfcache test helps investigate page restoration. Check which navigation sequence the result covers: a different manual sequence may produce a different outcome.

View the result in the browser

In Chrome DevTools, the Application panel includes a back/forward cache test. It shows the outcome and any reported reasons preventing restoration. Interpret the findings in the context of the browser and version you tested.

bfcache and the HTTP cache work differently. The bfcache guide on web.dev explains the distinction. A faster network request alone does not prove that a page was restored from bfcache.

Investigate a reported reason

Illustrative example without customer data: the diagnostic tool reports that a lifecycle event handler in an included script prevents restoration. Locate the script and establish what the handler does. Test an appropriate change in a private test environment, then repeat the navigation sequence.

Don't make blanket changes to cache headers just to pass the test. Consider the purpose of the site and requirements for current or confidential content. Eligibility rules also depend on the browser.

Check page state after returning

After a change, check more than the technical result. Verify prices, cart contents and session state wherever those features are present. A restored page must not display misleading, outdated information.

Repeat the sequence in the browsers your audience uses. Record successful, failed and unperformed attempts separately. If interactions are slow after returning, consult the INP guide.

Can a restore always be forced?

The browser decides how to use the cache. A successful test describes the observed attempt.

Should I remove all cache restrictions for this?

First investigate the reported blocker and the purpose of the restriction. Consider both security requirements and the accuracy of the content when evaluating a change.

Test a page’s bfcache behavior. To investigate the initial load, use the speed test.

Website speed check

Find out what slows your website down

Check your page with Milten to see its Core Web Vitals and get recommendations for faster loading.

Check your website
Cookies

We use cookies

We use cookies to give you a better experience on our site. You can learn more about how we use cookies in our privacy policy.