An affiliate program only works if the click that produced the sale is still attached to it. A cached landing page is the most common reason it is not.
Everything about an affiliate program is a chain from a link to a payout, and the chain breaks at the first cached page.
Affiliate parameters arrive on ordinary landing pages, which are exactly the pages a cache serves without running PHP. Tracking is handled so the visit is recorded even when the page itself is not rebuilt.
Every visit, referral and conversion is a row in AffiliateWP's own tables. Those grow faster than posts do, and they are indexed for the reports affiliates open constantly.
Generating a payout means summing referrals across every affiliate in the period. That runs as a batch with its own limits rather than inside somebody's admin request.
Affiliates check their stats far more often than they send traffic, and each of those views is a signed-in page that cannot be cached.
A rate applied to the wrong group is a money problem. Daily backups mean the referral records can be restored rather than recalculated by hand.
Almost never in the payout. Nearly always at the start — a click that arrived, converted, and was never attributed because the landing page came from a cache.
The busiest authenticated pages on an affiliate site are the dashboards, and they aggregate over the fastest-growing tables in the install.
The program is a chain from click to commission, and each row below is a place that chain usually breaks.
| Setting | What we do | Why |
|---|---|---|
| Referral tracking | Recorded even when the landing page is served from cache | Affiliate links point at ordinary marketing pages, and a cached response never runs the code that would have logged the visit. |
| Affiliate tables | Indexed on affiliate, status and date | Visits and referrals grow faster than any other table on the site, and every dashboard and report filters on that combination. |
| Payout generation | Run as a batch with limits of its own | Summing a period across every affiliate is far more work than an admin request allows, and a timeout mid-run leaves some affiliates paid and others not. |
| Affiliate area | Excluded from the page cache | Each dashboard shows one person's earnings, so a shared cached copy is both wrong and a disclosure. |
| Old visit records | Retained, with reports reading a summary | Deleting history breaks the audit an affiliate will eventually ask for, but reading every raw row on every report does not scale. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Move the program across — migration is free, referral history included.