Skip to main content
.com domains from $2.99 — free WHOIS privacy on every name

Performance profile · Farm Shops

Farm shops: the danger is a stale cache, not a slow one

Your availability page changes every Monday and your cache exists specifically to avoid rebuilding pages — get the purge rules wrong and customers drive out for beef you sold three weeks ago.

The short answer

For a farm shop the performance question is not how fast a page loads but whether the page a visitor receives is this week's, because a page cache exists precisely to avoid rebuilding pages and your availability list is the one page that must never be old.

The mechanism is simple once you see it. LiteSpeed caching sits in the web server and serves a stored copy until something purges it; publishing an update purges the URLs it touches, but a page whose content arrives from elsewhere may not be included. Check by loading the page in a private window and looking for 'x-litespeed-cache: hit' alongside the content you just published. Hosting starts at $2.42/mo with that caching already on.

By the HostingFast team · Reviewed 15 August 2026

NVMe

NVMe under every plan

Free

Year one of the domain

99.9%

Uptime target, monitored

Flat

Price flat at renewal

Farm shops have a rhythm most retail does not: what is available changes weekly, sometimes daily, and the whole proposition is that the information is true. A customer who drives twenty minutes for something you sold on Saturday does not come back.

That collides with how caching works. The cache holds a built copy of a page so the server does not have to assemble it again, and it holds that copy until told otherwise. Most of the time this is exactly what you want. On your availability page it is the failure mode.

So this page is about purge rules, cache lifetimes and how to verify what a real visitor is being served — plus the collection-slot flow, which never caches at all.

How the cache decides what you see

LiteSpeed caching is compiled into the web server, and the plugin is the control surface for it. When you publish or update a page, the plugin purges the copies affected and the next visitor triggers a rebuild. On the second load after that you should see 'x-litespeed-cache: hit' in the response headers — proof that the stored copy is being served.

The trap is content that changes without a page being published. A widget pulling this week's list from somewhere else, a shortcode reading a sheet, a scheduled post going live. Nothing published, nothing purged, and the cache keeps handing out last week's page to everybody.

Purge deliberately, exclude sparingly

Two tools solve it. Set a shorter cache lifetime on the availability page, or purge it explicitly whenever the list changes — a scheduled purge on a Monday morning costs nothing and removes the whole class of problem. Reserve outright exclusion for pages that genuinely must be built fresh every time, because an excluded page has no cache protection at all when traffic arrives.

Verify rather than trust. Open the page in a private window after every update. New list plus a cache hit means the rules are right. Old list means the purge missed that URL, and now you know exactly which rule to add.

Collection slots never cache, by design

The click-and-collect flow is the other half. Cart, checkout and account screens exclude themselves, and the slot picker has to know which Saturday windows still have space at the moment somebody asks. That is a live query every time, and it should be — a cached slot list is how two customers book the last space.

Time it on its own with the network panel open. A cached page here answers a nearby visitor comfortably below 200ms, but the slot lookup runs the full PHP and database path. A current PHP release, Redis object caching and NVMe storage are the levers, and they are standard on every tier.

Make the weekly update take five minutes

Every rule above fails if updating the list is a chore. Keep it to one short page, edit it on a Monday, and let the purge happen on publish. If the list has moved into a plugin or a feed, add a scheduled purge so the cache refreshes whether or not anything was published.

Test the whole loop once on staging: change the list, purge, load in a private window, confirm the new content and the cache hit. Once you have watched it work you will trust it, and trusting it is what keeps the page accurate.

A shopper moving through the checkout of a quick online store

Fresh first, fast second

Farm retailers, on-farm butchery operators and producers selling direct to the public have an unusual requirement: the page has to be quick and it has to be true, and the mechanism that delivers the first can quietly undermine the second.

LiteSpeed caching in the server gives you purge control per URL, and Redis plus NVMe carry the collection-slot lookups that can never be cached at all.

  • Per-URL purge control from the caching plugin
  • Shorter cache lifetimes where content changes weekly
  • Redis object caching for uncacheable slot lookups
  • NVMe storage on every tier, entry plan included

Why HostingFast

Standard on every plan

Cache you can steer

LiteSpeed sits in the server, so lifetimes and purges are set per URL rather than left to a plugin's guesswork.

Proof in the headers

A private window and a look at 'x-litespeed-cache: hit' tells you what a real visitor is being served, in about ten seconds.

Slot lookups on quick hardware

Collection windows are queried live every time. NVMe, current PHP and Redis object caching are standard where that matters.

A clone to rehearse on

Staging lets you change the list, purge and verify the loop before you rely on it during a busy Saturday.

Backups you restore yourself

A daily copy, restored from the panel in minutes, for the afternoon an update goes sideways.

Renewal at the ordering price

No introductory figure and no setup fee, so the hosting line stays the same number year to year.

Quick Start

From order to online

  1. 1

    Confirm caching is actually serving

    Load a page twice in a private window and check the response headers for a cache hit. Everything below assumes that baseline.

  2. 2

    Find the pages that change without publishing

    Anything fed by a widget, a shortcode or a scheduled post. Those are the pages a purge-on-publish rule will miss.

  3. 3

    Set lifetimes and a Monday purge

    A short lifetime on the availability page plus a scheduled purge covers both the manual and the automatic case.

  4. 4

    Time the collection-slot lookup

    Open the slot picker with the network panel running. That request never caches, so the engine underneath decides it.

Built In

Loaded onto every plan

  • LiteSpeed caching in the web server, with per-URL purge control
  • Redis object caching for uncacheable slot and stock lookups
  • NVMe SSD storage on every tier
  • Per-site PHP version switching from the control panel
  • Staging environments for rehearsing a purge workflow
  • Daily backups with a self-service restore
  • Free SSL on every plan, reissued automatically
  • WebP image conversion built in at no extra cost
  • 99.9% uptime as the target, monitored around the clock
  • Zero setup fees, and a renewal at the ordering rate

Frequently Asked

What people ask us most often

Customers are seeing last week's availability list. What is happening?

The cache is serving a stored copy that was never purged. Publishing a page purges the URLs it touches, but content arriving through a widget, a shortcode or a scheduled post changes nothing from the cache's point of view. Set a shorter lifetime on that page or add a scheduled purge, then verify in a private window.

How do I check what a real visitor is being served?

Open the page in a private window with dev tools on the network tab and read the response headers. A cache hit next to the content you just published means the rules are right. New content with a permanent miss means the page is excluded and unprotected. Old content means the purge missed that URL.

Should I just exclude the availability page from caching entirely?

Only as a last resort. An excluded page is rebuilt on every request, which is fine on a quiet Tuesday and expensive on a Saturday morning. A short lifetime plus a scheduled purge gives you freshness and keeps the protection. Reserve exclusion for pages that genuinely differ per visitor.

Why can the collection-slot picker not be cached?

Because a cached slot list is how two people book the last space. Availability has to be true at the instant it is asked, which means a live query every time. Make it cheap rather than cached: a current PHP release, Redis object caching for the repeated lookups, and NVMe storage under the database.

Keep reading

Changing hosts? Run through our checklist first.

A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.

You'll get the checklist email, then occasional pointers on keeping a site running fast. Unsubscribe the moment you want out — the privacy policy covers the rest.

Fresh pages, served from cache.

LiteSpeed with per-URL purge control, Redis and NVMe from $2.42/mo — renewing at that same figure.

View Magento Hosting — Built for Farm Shops plans