How to Make a Coupon Website in WordPress: Codes, Store Pages and Three Ways to Build It
By Mark Fail ·

A coupon website looks simple from the outside. There's a search box, a page for each shop, and a button that shows a code and sends the shopper to the store. The work sits behind that button. Codes have to come from somewhere, they expire every week, and you only get paid when the store can tell the sale came from your click.
This guide follows the order you'd build one in WordPress. First, where codes come from and how the four big affiliate networks hand them over. Then store pages, expiry and click tracking. After that we compare three ways to build the site, from a free plugin to a full coupon theme, including our own. We checked the networks' help pages and every product on 1 October 2026.
At a glance
| Route | Cost | Code import | Store pages | Expired codes |
|---|---|---|---|---|
| WP Coupons and Deals | Free, Pro from $19 a year | Typed in by hand | Pro archive only | Shows an expiry message |
| Couponis | $39 on ThemeForest | CSV or XML through WP All Import | Yes | Dates and countdowns |
| PremiumPress Coupon Theme | $99 one-time | Awin and Rakuten feeds, CSV | Yes, with logos | Flagged on each import |
Where codes come from
Almost every working coupon site gets its codes from affiliate networks. A store joins a network, uploads its codes and sales, and publishers like you pick them up. You apply to each store's programme one at a time. Until a store accepts you, most networks hide the code or the tracking link, so a new site starts with fewer codes than you'd expect.
The four networks most coupon sites start with are Awin, CJ, Impact and Rakuten Advertising. They don't hand codes over in the same way.
Awin
Awin publishers can pull offers through its Offers API. You can filter by joined or not-joined advertisers, by country, by voucher or promotion, and by whether an offer is active, expiring soon or upcoming. Each voucher comes with its code, start date, end date and a tracking URL. Awin's documentation says the code field is empty for advertisers you haven't joined, so you see the offer but can't use it until you're accepted.
CJ
CJ's Link Search API returns promotional links, and one of its promotion types is "coupon". Results carry a coupon code field plus promotion start and end dates. It's limited to 25 calls a minute. The link code fields come back blank for advertisers you don't have a relationship with.
Impact
Impact shows partners a Promo Codes screen that can be filtered by brand, with a column for the dates each code is valid. You can also ask a brand for a unique code of your own. Read the credit rule on each code. Impact's help page lists three, and only "Always Credit" pays you every time a shopper uses the code. The other two need your click to be involved in the sale.
Rakuten Advertising
Rakuten has a Coupon Feed API. It returns XML only, with up to 500 results per call and up to 100 calls a minute. It mixes codes with promotional links that have no code, and all dates are in GMT. Offers that haven't started yet don't appear at all.
There are also paid services that gather codes from many networks into one feed. CouponAPI has a WordPress.org plugin with 200+ installs and a 3.4 rating from 5 reviews. Most people still begin with one or two networks and a few dozen stores they know well.
Store pages
Store pages bring in most of the search traffic on coupon sites. People search "[store] discount code", and the page that ranks lists every current code for that shop, the store's logo, and a short note on how its codes work.
A good store page has more than the feed text. Add which products are usually excluded, whether codes stack with sale prices, the delivery threshold, and when you last checked a code at the store's own checkout. Feed text is the same on every site that takes the feed, so it gives Google no reason to pick yours.
What Google says
Google's spam policies cover this under thin affiliation. Pages count as thin when product descriptions and reviews are copied straight from the merchant with nothing added. A coupon site that publishes raw feeds looks exactly like that, because hundreds of other sites receive the same feed. Google's own examples of good affiliate pages include extra information about price, original reviews, testing, and navigation by product or category.
Google's site reputation policy is a different rule and is often misread. It covers third-party content placed on an established site to borrow its ranking, such as a news site renting out a coupons folder. Its own coupon example is a section Google is "not likely to take action" against, because it is disclosed, edited by the publisher and has a way to report broken codes. A standalone coupon site isn't the target of that policy, but those same habits are worth copying.
Expiry and clicks
An expired code that still looks live is the fastest way to lose a visitor. You need two checks. The first is the end date the network sends. The second is whether the code is still in the feed at all, because stores often pull a code early without changing its date.
Show expired codes greyed out rather than deleting them. The page keeps its URL, shoppers can see the store has had codes before, and you avoid a pile of 404 errors.
For clicks, the common pattern is "reveal code". The shopper clicks, the code appears in a new tab, and the original tab goes to the store through your affiliate link. Mark those links with rel="sponsored", as Google asks for paid links. Count reveals and clicks per code, then add a "did it work?" vote. Those numbers tell you which codes to move to the top and which stores aren't worth the space.
Say on each page that you earn a commission. The FTC's guidance for affiliates says the disclosure should sit close to the link, and that a "buy now" button by itself doesn't count.
WP Coupons and Deals

If you already run a blog and want to add codes to your posts, start here. WP Coupons and Deals adds a Coupons menu where you type in each code, discount, affiliate link and expiry date. A shortcode then drops a coupon box into any post. When a reader clicks to copy the code, your affiliate link opens in a new tab.
It has 1,000+ active installs and a 4.7 rating from 125 reviews, and version 3.2.8 came out on 23 May 2026. The free version has voting, categories, an expiry message and printable image coupons. Pro adds an archive page, front-end submission, countdowns and filters by vendor. It was $19 a year for one site at a discount when we checked, or $99 for unlimited sites for life.
It's a coupon box, not a coupon site. There's no feed import on its WordPress.org page, so every code is typed by hand, and only Pro gives you something close to a store page. The top sample on the developer's own demo page reads "Expired on: 12/31/2025", which shows how fast hand-entered codes go stale. A support thread from May 2026 reports new coupons showing only a button after the 3.2.7 update. It was still marked unresolved after 3.2.8.
Pros
- Free, light, and works with the theme you have
- Click-to-copy that opens your affiliate link
- Lifetime Pro licence for unlimited sites costs $99
Cons
- No import from affiliate networks
- Store and archive pages need Pro
- An open display bug report from May 2026
Couponis

Couponis is a ThemeForest coupon theme by spoonthemes. It costs $39 for the Regular Licence, has 1,999 sales and a 4.87 rating from 97 reviews, and was last updated on 9 June 2026. It handles three kinds of offer. There are online codes, online sales that link straight to a sale page, and printable in-store coupons.
Codes come in through WP All Import, and the free version of that plugin is enough. You map the CSV or XML file your network gives you, or let members submit codes that you approve first. The theme cloaks links, shows expiry dates with a countdown, and asks shoppers whether a code worked. ClipMyDeals and CouponXL often come up in the same searches. CouponXL's demo now redirects to an unrelated site, and ClipMyDeals is sold from its own website rather than ThemeForest.
Two things to check before you buy. The theme had a critical SQL injection flaw, CVE-2023-49750, which was fixed in version 2.2 in December 2023, so keep it updated. And when we visited, the demo's security certificate had expired in August, so browsers show a warning before the page loads. Envato's licence FAQ says a site where visitors pay to see it needs the Extended Licence, which is $2,500 for Couponis. A coupon site that charges stores for featured listings isn't covered by that wording, so ask Envato before you build that model.
Pros
- Cheap, with codes, sales and printable coupons
- Member submissions with approval
- Imports any network file through WP All Import
Cons
- No direct API connection to any network
- Demo shows a certificate warning
- Check Envato's licence terms before charging stores for listings
PremiumPress (ours)

We make the PremiumPress Coupon Theme, so read this section knowing that. It ships with 30 homepage designs across 10 coupon niches, from fashion and travel to pets and web hosting.
The main difference is the feed import. The theme connects to Awin's offers API and can be limited to programmes that have accepted you. It also reads Rakuten's coupon feed and generic CSV files, and it can pull products from Google Merchant feeds. Imports run daily through WP-Cron and update existing codes rather than adding duplicates, so a code's page URL stays the same. A dry run lets you preview a feed before anything is saved. Each store gets a page at /stores/name/, and logos and descriptions can be filled in from Awin's programme data.
When a code drops out of a full import, it's flagged as expired and taken off the homepage and sidebar lists. Codes whose end date has passed show an "Expired" label, and the reveal button is switched off. Shoppers get the reveal-and-copy flow with the store opening in the other tab, plus a "did it work?" vote and a running count of uses. Local businesses can also join on a membership and post their own codes, and the sample plans cap them at 12, 50 or unlimited live codes.
It has gaps. There's no built-in CJ or Impact connection, so codes from those networks come in by CSV. A code that leaves a feed but still has a future end date can stay visible on search and store pages. Outbound links aren't cloaked, and there's no affiliate disclosure setting, so you write your own. The email widget collects subscribers but doesn't send new-code alerts. The theme costs $99 once for unlimited sites you own, with six months of updates and then $49 for each further six months.
Pros
- Direct Awin import, filtered to joined programmes
- Daily imports that keep each code's URL
- Paid business memberships built in
Cons
- CJ and Impact only through CSV
- Expiry is not shown everywhere when a code drops out early
- No disclosure text or new-code emails
Cashback instead

Some people start with codes and end up wanting to pay shoppers back. That's a different business. A cashback site needs member accounts, a tracked click for each member, a ledger of pending and confirmed amounts, and a way to pay people.
Our separate Cashback Theme does that. Signed-in members get a tracking tag added to the store link for Awin, Impact, Rakuten, Admitad, CJ and ShareASale. Impact and Rakuten can confirm or decline sales by postback. The other four need you to upload their sales report before anything is confirmed. By default members get 80% of your commission. They request withdrawals, and you pay by PayPal, bank or Wise and mark them paid, since nothing is paid automatically. It doesn't show coupon codes on store pages, and guests earn nothing. If codes are your traffic plan, start with a coupon site and add cashback later on a separate domain.
Final thoughts
To add a few codes to an existing blog, WP Coupons and Deals is enough, and the free version will tell you whether readers use them.
For a small coupon site on a budget, Couponis is the cheapest full theme that's still being updated. Be ready to manage imports through WP All Import yourself.
If you'll rely on Awin or Rakuten and want codes to refresh and expire without daily work, our Coupon Theme does most of that from its own admin. Check whether your best stores are on CJ or Impact first.
Whichever you choose, most of your traffic will land on store pages. Join a handful of programmes, write those pages properly, and remove dead codes before shoppers find them.
FAQ
Sources
- WordPress.org plugin data for WP Coupons and Deals and Coupon API.
- WordPress.org support: After update to 3.2.7 codes do not show properly, May 2026.
- Google Search Central spam policies on thin affiliation and the site reputation policy, and qualifying outbound links.
- FTC: FTC's Endorsement Guides, What People Are Asking.
- CVE-2023-49750 on NVD and the Patchstack entry.
- Network documentation, checked on the networks' own help sites: Awin "Retrieve Offers" API reference, CJ Developer Portal "Link Search" REST API, Impact "View and Request Promo Codes as a Partner", and Rakuten Advertising Publisher Help Center "Coupon Feed API".
- PremiumPress Coupon Theme and Cashback Theme. Features are described from the released 12.0.44 and 12.0.55 builds.
Checked on 1 October 2026.





