Cache invalidation · Letting Agency Sites
Web hosting for letting agents — Caching a site that changes every day is an invalidation problem
A let property that lingers on the site for three weeks is usually a stale cache, not a lazy update — and the fix is a purge rule, not a faster server.
The short answer
On a lettings site the caching question is not how long to cache but what to purge when something changes. Marking a flat as let has to invalidate the listing page, the search results that included it, the area page it appeared on and the homepage carousel — and if the purge rule only covers the listing itself, the property stays visible everywhere else until the cache expires on its own.
That produces the classic lettings failure: a fortnight of calls about a flat that went three weeks ago. The platform gives you server-level LiteSpeed caching with NVMe underneath, plus free SSL, free migration and support at any hour — the invalidation rules are the part worth getting right yourself.
By the HostingFast team · Reviewed 24 August 2026
99.9%
Uptime target, round the clock
24/7
Support availability
Free
TLS on every plan
NVMe
Storage under every tier
Lettings turn over far faster than sales, which changes the performance problem entirely. A sales site can cache for hours without consequence. A lettings site caching an area page for six hours is publishing information that was wrong four hours ago, and generating enquiries that waste both sides' time.
There are two workloads to separate. The public reads — listings, area pages, filtered searches — which should be cached aggressively and purged precisely. And the internal writes, which happen in the dashboard, are never cached, and are where staff experience the site as slow.
Both are measurable, and the measurements are different. Below: what to purge, what a filter query costs, and how to time the half of the site your own team uses.
Purge precisely, not globally
List every surface a property appears on: its own page, search results, the area page, the homepage feature block, and any feed you publish. When its status changes, all of those need invalidating. A rule that only purges the single listing leaves the property visible in four other places, which is exactly the complaint your front desk fields.
Equally, avoid purging everything on every edit. A full-site flush means the next visitor to each page pays for a cold render, and on a busy afternoon that is a self-inflicted load spike. Verify what actually happened rather than assuming: change a status, then read the cache status header on the listing, the area page and the search results to confirm which of them refreshed.
What a filtered search costs
Filtered searches — two bedrooms, this postcode, under this rent — are the most expensive reads on a lettings site, because each unique combination is a separate query and a separate cache entry. A filter set with five options across four fields produces more permutations than you will ever have visitors for, so most of them are always cold.
Measure one rather than theorising. Query Monitor will show you the query count and the slowest query on a filtered result page; if the count is in the hundreds, the template is querying inside a loop. Then check the database has indexes on the columns you filter by — an unindexed rent or bedroom column turns every search into a full table scan, and NVMe storage makes that fast rather than free.
The half of the site your staff use
Logged-in requests skip the page cache by design, so every screen your negotiators touch runs the full stack: PHP boots, plugins load, the database answers. That is why the dashboard feels heavier than the public site, and it is a genuine productivity cost when marking properties let is a job done twenty times a day.
Time it as itself. Log in, open DevTools, and record how long the listings screen and the edit screen actually take. If they are slow, the object cache is the layer that helps — Redis object caching and AccelerateWP ship on the managed WordPress tiers, and the admin is precisely the workload they exist for. Trimming plugins that load their assets on every admin page is the free half of the same fix.
Make the update cheap enough to happen
The real cause of stale listings is friction. If marking a property let takes six clicks through a slow admin, it gets batched to Friday; if it is one click on a fast screen, it happens the same hour. Performance work on the admin is therefore data-quality work, which is an unusual but accurate way to justify it.
Automate where the feed allows it. If your management software publishes a feed, let it drive availability and run the import on a real cron schedule rather than on visitor requests. SSH with Git and Composer ships on shared plans, so WP-CLI can run the import directly and you can time it in isolation.

Fast reads, honest invalidation
LiteSpeed caching sits inside the web server, so cached listing pages are answered without booting PHP — and the purge controls are in the same layer rather than in a plugin negotiating with it.
NVMe storage sits under the searches and the writes, so the queries that cannot be cached are not also waiting on a disk. Staging copies let you test a purge rule before it is in front of a tenant.
- Cache and purge controls in the same server layer
- NVMe storage under filtered searches and writes
- SSH with Git and Composer for scheduled imports
- Daily backups, files or database, restored from the panel
Why HostingFast
Standard on every plan
Purge controls where the cache lives
Server-level caching means invalidation is handled in the same layer, not negotiated between a plugin and a web server that disagree.
NVMe under the expensive reads
Filtered searches are the queries that miss cache most often. Fast storage is what stops a cold permutation feeling broken.
Object caching for the admin
The managed WordPress tiers ship Redis and AccelerateWP, which is the layer that helps the logged-in screens a page cache can never touch.
Scheduling that is actually scheduled
SSH and WP-CLI let a feed import run on a real cron rather than inside whichever visitor's request happens to trigger it.
Restores before the import runs
Daily backups recover files, a database or both from the panel — worth having before you let an import write to your property records.
A flat renewal price
The rate you order at is the rate you renew at, so a plan sized against measured search load stays that price next year.
Quick Start
From order to online
- 1
Map every surface a property appears on
Listing, search, area page, homepage block, feed. That list is your purge rule. Anything missing from it is where a let property will linger.
- 2
Verify the purge, do not trust it
Change a status, then read the cache status header on each of those surfaces. Confirming which refreshed takes two minutes and settles the question permanently.
- 3
Time the admin as its own workload
Log in and measure the listings and edit screens. Uncached by design, used twenty times a day, and never included in anybody's speed test.
Built In
Loaded onto every plan
- Every surface a property appears on written down as a purge list
- Status change tested and cache headers checked on each of those surfaces
- Full-site cache flushes avoided in favour of targeted invalidation
- Query count on a filtered search page measured, not assumed
- Database indexes present on the columns searches actually filter by
- Logged-in admin screens timed separately from the public site
- Plugins loading assets across the whole admin identified and trimmed
- Feed import moved to a real cron rather than visitor-triggered scheduling
- NVMe and server-level LiteSpeed present on the entry tier, not only the top one
- Renewal billed at the rate ordered at, with no year-two step
Frequently Asked
What people ask us most often
How do I stop a let property showing on cached pages?
By making the status change purge every surface it appears on, not just its own page. Write the list first — listing, search results, area page, homepage block, feed — then change a status and read the cache headers on each to confirm they refreshed. A property lingering for weeks is almost always an incomplete purge rule rather than a slow update process.
Why are filtered searches so much slower than listing pages?
Because every filter combination is its own query and its own cache entry, so most combinations are always cold. Measure the query count on one with Query Monitor: if it is in the hundreds, the template is querying inside a loop. Then check the columns you filter by are indexed — without indexes, each search becomes a full table scan that fast storage makes tolerable rather than cheap.
Should I shorten the cache lifetime because listings change daily?
That is the blunt instrument, and it costs you the benefit of caching on every page that did not change. Precise invalidation is better: cache for as long as you like, and purge exactly what a status change affects. Shortening the lifetime everywhere means paying for cold renders continuously in order to solve a problem that occurs on a handful of pages.
The dashboard is much slower than the website. Is that normal?
Yes, and it is inherent rather than a fault. Logged-in requests bypass the page cache by design, so the admin exposes raw PHP and database performance with none of the cushioning the public site enjoys. Object caching, a current PHP runtime and fewer plugins loading their assets across every admin screen are the three things that actually move it.
Keep reading
Handmade Sellers — Hosting Guide
Small-batch product photography and the weight it puts on a shop page.
Gyms — Hosting Guide
Membership renewals and class timetables — the uncached routes on a club site.
Uptime (Glossary)
What uptime monitoring can and cannot see when a warm cache is in the way.
WooCommerce Hosting — Built for Letting Agents
Cart-aware caching and the checkout routes that must never be cached.
VPS Hosting
Isolated resources for when filtered searches are genuinely the constraint.
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.
Cache hard, purge precisely.
Server-level LiteSpeed with the purge controls in the same layer, NVMe under the searches, and SSH so imports run on a real schedule.
View WooCommerce Hosting — Built for Letting Agents plans