Skip to content

Cacheable routes

P2Lab Cache groups storefront responses into seven route types. Each one can be toggled independently under Settings → Speed Boost → Dashboard → Cacheable Routes. By default everything except the async buybox is on.

frontend.home.page — your shop’s landing page.

Almost always safe to cache. Disable only if your home page renders per-session content (e.g. a personalised recommendation block rendered server-side).

frontend.navigation.page — category landing pages with their full breadcrumb, filter sidebar and initial product set.

Safe to cache for anonymous traffic.

frontend.navigation.page.ajax — the AJAX request that fetches subsequent listing pages when a visitor paginates or sorts.

Cacheable. Bear in mind every distinct combination of filter / sort / page becomes its own entry — large catalogues with many filter combinations grow the cache quickly.

frontend.navigation.filter — the filter aggregation request (which filter values to show, with counts).

Heaviest backend response per request. Caching has the biggest impact here.

frontend.detail.page — product detail pages.

Cacheable for anonymous traffic. If your buybox is rendered server-side and varies per customer (B2B prices, customer-specific rules), make sure those visitors are correctly identified as logged-in so the cache is bypassed.

frontend.cms.page — standalone CMS pages (about, contact, landing pages).

Safe to cache unless your CMS pages embed dynamic, per-visitor blocks.

p2lab.cache.async-buybox — the async buybox component used by some themes to defer pricing / stock rendering.

Off by default. The buybox response contains pricing and rule-modified output that may be customer-specific. Enable only if your storefront does not personalise it.

Each toggle can be overridden per sales channel from the page-header switcher. Useful for a setup where, for example, the public B2C channel caches everything but the B2B channel keeps product pages uncached.

Disabling a route type stops the plugin from creating new cache entries for it, but existing entries stay valid until they expire or are invalidated. To free the storage immediately, run Dashboard → Clear → after disabling.

Toggles work at the route-type level. To bypass an individual URL without disabling its whole type:

  • Add a query parameter that is not in the Ignored Query Parameters list. Every distinct value of an un-ignored parameter is treated as a separate variant — the request becomes uncacheable for the duration of that parameter being present.
  • Set Cache-Control: no-store from your controller / event subscriber.

See Query parameter filtering for the parameter-handling rules.

A handful of routes are never cached, regardless of settings:

  • The cart, checkout and account areas
  • Anything that requires a customer session
  • Admin / API endpoints
  • POST / PUT / DELETE responses

These are excluded at a layer below the toggles.