Your entire product is a list of things that stop being true. A deal site with a dead code at the top of the page has broken the only promise it makes.
A coupon site is an inventory of expiry dates, and everything about hosting one follows from that.
An expiry at midnight has to happen at midnight, not on the next page view. Expiry runs on a real scheduler and purges the pages that showed it, so a dead code does not sit in cache all morning.
Every click is a redirect to a merchant, and on a busy site that is more requests than pageviews. Redirects are answered without booting WordPress at all.
Listing pages are cached hard, which means the code that would have logged a click never runs. Tracking is handled so the record is written anyway.
Offers arrive as affiliate network feeds several times a day. Imports run as batches, so a partial sync does not leave half the site advertising last week.
A feed that publishes wrong prices across a category is a credibility problem. Daily backups make it something you reverse rather than repair.
Deal sites need aggressive caching because traffic is large and margins are thin. They also need content that stops existing on a schedule. Those two requirements fight.
The busiest route on a coupon site is not a page. It is the outbound link, and it is requested more often than everything else combined.
Two forces pull against each other here: cache everything hard, and make sure nothing outlives its expiry date.
| Setting | What we do | Why |
|---|---|---|
| Offer expiry | Driven by a scheduler, with a purge of every page that showed it | An offer that expires at midnight has to leave the cache at midnight, and a site that advertises a dead code has broken the only thing it promises. |
| Outbound redirects | Answered without booting WordPress | Clicks outnumber pageviews on a deal site, so running a full application boot per redirect makes the busiest route the most expensive one. |
| Click recording | Captured on cached responses too | Listing pages are cached aggressively, which means the tracking code never executes and the numbers you optimise against are wrong. |
| Merchant feed imports | Run as batches several times a day | Affiliate networks publish full feeds rather than changes, and a sync that stops half way leaves part of the catalogue advertising last week's prices. |
| Expired content | Kept and marked rather than deleted | Expired offer pages continue to attract search traffic, and deleting them throws away rankings that a status label would have kept. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Move the deal site across — migration is free, offer history included.