If you've ever put a discount code on your sales page footer, in your Instagram bio or at the bottom of an old blog post, there's a good chance it's still out there. Anyone who finds it can use it any day of the year, so the lower price stops being a reason to buy now and turns into the price people expect to pay.
This post walks you through how to find every public code you have out there, take them down without upsetting anyone and move the lower price into short funnel windows that give people a real reason to buy today. It's one of the ideas from my full list, 99 Ways to Make Sales Every Day Without Launching. It's also one I've done in my own business. I took the permanent public discount codes off my pages and moved the lower prices into funnel windows, so these are the steps I'd walk you through.
Why a code that never ends works against you
A discount works because it's a little bit special. Someone sees a lower price, they know it won't be there next week and that gives them a reason to make a decision today instead of saving the tab for later.
When a code lives on a public page forever, that reason goes away. People who were going to buy at full price use the code anyway because it's right there. People who weren't ready yet don't feel any push to decide, because they know the code will still work next month. You end up giving the discount to everyone and getting none of the urgency back.
There's another problem too. Public codes get copied onto coupon sites and shared in groups. Once that happens you can't control where they show up. Your full price starts to look like a price only people who didn't search for a code pay.
What a funnel window is
A funnel is just the path someone takes after they find you, like signing up for a freebie, getting your welcome emails and then seeing an offer. A funnel window is a short stretch of time inside that path when a lower price is available to that one person.
Here's how it works in plain words. Someone joins your list on a Tuesday. Over the next few days your welcome series teaches them something useful and then offers them your product at a lower price for a set number of days. The lower price lives on its own checkout page that isn't linked anywhere public. When their window ends, the emails stop mentioning it and they see your regular price from then on.
Every person gets their own window based on the day they joined, so the deadline is real for each of them. If you don't have a welcome series yet, start with The Welcome Series That Makes Your First Sale for You, because that's where your first funnel window usually lives.
I took the permanent public discount codes off my pages and moved the lower prices into funnel windows. For my memberships, I'm building offer windows with a lower funnel-only price that lives on its own checkout.
Step one: find every code you have out there
Before you change anything, make a list of every discount code that's live right now and every place it shows up. This can take a while, because codes end up in places you forgot about.
Open a simple spreadsheet with four columns: the code, what it takes off, which product it works on and where it appears. Then go looking in these places:
- Your checkout tool's list of coupons, including old ones you thought you'd turned off
- Your sales pages, including the bottom of the page and any pop ups
- Your website footer, banner bars and your shop page
- Old blog posts, especially ones that rank in search
- Your social profiles, pinned posts and link-in-bio pages
- Your welcome series and any automated email sequences
- Your freebies and lead magnets, since a lot of people put a code on the last page
- Podcast show notes and YouTube descriptions
- Pages you made for affiliates, partners or summits you spoke at
Search your own name or product name plus the word "coupon" or "discount code" too. If a code shows up on a coupon site, write that down. You can't take it off their site, but you can turn the code off at your checkout.
Step two: decide what stays and what goes
Not every code has to disappear. Go through your list and sort each one into three groups.
Codes to retire
These are the public, always-on codes. Anything sitting on a page that anyone can visit, with no end date and no reason tied to it, goes in this group.
Codes to keep with a limit
Some codes have a job. An affiliate might have a code their audience uses, or you might have a code you give to a speaker's attendees after a summit. Those can stay, but give each one an end date or a use limit if your checkout tool allows it. Then make sure each partner has their own code so you can see where sales come from. If you run an affiliate program, How to Run an Affiliate Program That Sells All Year walks through how to give partners what they need without handing out a public code.
Codes to replace with a window
These are codes that were doing something useful, like nudging new subscribers to buy, but doing it the wrong way. Instead of a code, you'll build a funnel window that does the same job with a real deadline.
Step three: set up the funnel-only checkout
Once you know which lower prices you want to keep offering, set each one up on its own checkout page. This is a separate checkout from your regular one, with the lower price built in, so nobody has to type a code at all.
A few things to get right here:
- Don't link this checkout from any public page, menu or social profile. It should only appear inside the emails for that funnel window.
- Name it clearly inside your checkout tool so you can tell it apart from your regular checkout later.
- Make sure it delivers the same product and tags people the same way as your full price checkout, so buyers get everything they paid for.
- Decide what happens when the window ends. Some creators turn the email links off and others send the person to the regular price page after the deadline.
A funnel-only checkout also works well for memberships. The lower price can be a lower first month, a lower yearly price or a bonus that only comes with that checkout. If you sell a membership, Why Your Membership Should Be the Upsell on Every Product shows where else that membership offer can show up.
Step four: write the window emails
The emails inside your funnel window do the work the code used to do, but with a reason to act today. You don't need many. Three or four emails is plenty for most products.
The offer email
Say what the product is, who it's for and what it helps them do. Give the lower price, say how long it lasts and link to the funnel-only checkout.
The help email
Answer the questions people usually ask before they buy, like what's inside, how long it takes and whether it works for their kind of business.
The reminder email
Send this the day before the window ends. Keep it short and say plainly that the price goes back up tomorrow.
The last day email
Send this on the final day with the price, the time it ends and the link. After this one, stop mentioning the lower price.
Because these emails go out based on when each person joined, they're true for everyone who reads them. Keep dates and day names out of the copy and use phrases like "for the next three days" or "until tomorrow night," so the email reads right no matter when someone joined.
Step five: take the old codes down
Once your funnel window is live and tested, you can turn off the old codes. Doing it in this order means you never have a stretch of time with no lower price option at all.
- Remove each code from every page on your spreadsheet. Check pages on your phone too, since some banners only show up on mobile.
- Update your email sequences so nothing points to an old code.
- Edit old blog posts, show notes and freebies. If a freebie has a code on its last page, swap it for a link to the product at full price or a line inviting them to watch their inbox.
- Turn the code off in your checkout tool, or set it to expire. Do this last, after the pages are cleaned up.
- Write a short reply you can paste when someone emails to say a code stopped working.
What to say when someone asks for the old code
Someone will email you about a code they found. That's normal and you can answer it simply. Tell them the code has ended, give them the current price and the link. If they're on your list, let them know your lower prices show up in your emails from time to time.
You don't have to explain your whole pricing plan or apologize. A short, friendly answer is enough. If you'd like to give them the lower price as a one-time thank you, that's your call, but you don't have to.
Mistakes to avoid
- Turning codes off before you clean up the pages. People land on a page, try a code that's shown right there and get an error. Clean up the pages first and turn the code off last.
- Making the funnel-only checkout easy to find. If the link ends up in a menu, a public post or a pinned comment, it becomes the new public code.
- Running a window with no end. If the emails keep mentioning the lower price after the window, people learn to wait.
- Making the window too long. A lower price that lasts a month doesn't give much reason to act. Three to seven days is a common range.
- Using the same lower price everywhere. Save your lowest price for one or two places, like your welcome series or an event replay offer, so it still means something.
- Forgetting affiliate and partner pages. These are the easiest places for an old code to keep living.
A hypothetical example
This is a made-up example with round numbers so you can see how the pieces fit together.
Say you sell a $97 course and a $29 a month membership. For the last year you've had a code called SAVE20 on your sales page and in your Instagram bio that takes $20 off the course. You also have a code in the last page of your freebie for 50% off the first month of the membership.
Here's what you'd do. First, you'd set up a funnel-only checkout for the course at $77 and a second funnel-only checkout for the membership with a lower first month. Then you'd write a welcome series where day four offers the course at $77 for three days, with a reminder on day six and a last day email on day seven. Later in the series, after the course window has closed, you'd open a short window for the membership.
Once that's tested, you'd remove SAVE20 from the sales page and your bio, swap the code in your freebie for a line telling people to watch their inbox, then turn both codes off in your checkout tool. Every new subscriber now sees the $77 price once, inside their own window. Everyone else sees $97.
If you want to bring older subscribers into a window too, you could add the course to a flash sale inside a weekly product email every few weeks, the way I describe in One Email a Week, Forever. That gives your whole list a chance at the lower price for a short time, with a real end.
"Every person gets their own window based on the day they joined, so the deadline is real for each of them."
Dr. Destini CoppHow this fits with the rest of Sales on Repeat
Taking your public codes down works best when you have somewhere else for the lower price to live. That's usually your welcome series, an event replay funnel or a flash sale in your weekly email. If you haven't built those yet, set one of them up first, then come back and take the codes down.
If you're not sure which idea to start with, the free Sales on Repeat skill can help. It's a Claude skill that asks a few questions about your business and picks the first three Sales on Repeat ideas you should set up. It also tells you why each one fits.
Wrapping up
Start with the spreadsheet this week and find every code you have out there. Then build one funnel-only checkout and a short set of window emails. Take the old codes down once that's tested. You can see every other idea in the series on the full list of 99 ways to make sales every day without launching.
Not sure which Sales on Repeat idea to start with?
Grab the free Sales on Repeat skill. It's a Claude skill that asks a few questions about your business and picks the first three ideas you should set up.
Get the free Sales on Repeat skill →Frequently asked.
Should I stop using discount codes on my digital products?
You don't have to stop using discounts, but it helps to take down codes that live on public pages with no end date. Those codes give the lower price to everyone, any day, so nobody has a reason to buy now. Move the lower price into short windows with a real deadline instead.
What is a funnel window for a discount?
It's a short stretch of time inside your email funnel when a lower price is available to one person. It usually starts a few days after someone joins your list and lasts three to seven days. The lower price lives on its own checkout page that isn't linked anywhere public.
How do I find all my old discount codes?
Start with the coupon list in your checkout tool, then check your sales pages, footer, banners, old blog posts, social bios, freebies, email sequences, show notes and partner pages. Put each code and where it appears in a spreadsheet. Search your product name plus coupon to see if it's on any coupon sites.
What do I say when a customer asks for an expired code?
Tell them the code has ended, give them the current price and the link. If they're on your list, you can mention that lower prices show up in your emails from time to time. A short, friendly reply is enough.
Can affiliates still have their own discount codes?
Yes. Give each partner their own code so you can see where sales come from. Add an end date or a use limit if your checkout tool allows it. That keeps partner codes from turning into a public code anyone can find.
Dr. Destini Copp helps digital product creators build sustainable, systems-based businesses through the Creator Growth Flywheel framework. She's the founder of Creator's MBA and HobbyScool, and has been teaching online business strategy for over a decade. Learn more →

