Skip to content

Listing modes

When a visitor lands on a cached listing page, the cached HTML is served immediately. But if any product on that listing has changed since the cache was written, the listing also needs to refresh — either by fetching the fresh listing on top of the cached one, or by silently swapping individual product cards.

P2Lab Cache offers two listing load modes under Settings → Speed Boost → Dashboard → Listing → Listing Load Mode.

The classic refresh behaviour:

  1. Cached listing renders immediately.
  2. A loading overlay appears.
  3. The page fetches a fresh listing in the background.
  4. When fresh data arrives, the overlay disappears and the new content replaces the old.

Pros

  • Simple and predictable
  • The visitor sees a clear “refreshing” indication

Cons

  • The visible refresh interrupts the visitor’s flow
  • If the listing rarely changes, the overlay is gratuitous

A more sophisticated behaviour:

  1. Cached listing renders immediately.
  2. A background request fetches the fresh listing.
  3. The plugin diffs the cached and fresh HTML at the product-card level.
  4. Only the cards that actually differ are replaced — silently, in-place. Unchanged cards never re-render.

Pros

  • Visitor doesn’t see a flash / overlay
  • Only changed cards re-render — preserves scroll position, hover state and lazy-loaded images
  • Fastest perceived experience

Cons

  • Slightly more complex client-side; relies on the storefront’s listing markup matching what the cache stored
  • If markup structure changes significantly between cache write and refresh (e.g. after a theme update), the diff falls back to full replace

When using Background refresh, you can pick the visual transition for replaced cards under Listing → Background Replacement Effect:

  • Instant (default) — replace the card immediately, no animation
  • Fade (300 ms) — fade-out + fade-in over 300 ms; smoother but adds a perceived “shimmer”

Skeleton mode ignores this setting.

  • Default-style storefronts with little customisation → Background refresh + Instant works out of the box and gives the cleanest UX.
  • Heavily themed storefronts where listing markup is custom → start with Skeleton, test Background refresh on a staging environment, then switch.
  • Stores with frequent listing changes → either mode works; Background refresh feels less noisy.
  • Stores with rare listing changes → either mode works; Skeleton’s overlay is rarely visible because most cached listings don’t need a refresh anyway.

Both settings can be overridden per sales channel.

The listing mode applies to already-cached listings that just need a freshness check. A listing whose cache entry was invalidated and never re-warmed is rendered from scratch (full MISS) regardless of mode.