- Clicks with no sales means something broke. People who click want to buy; your job is to find what stopped them.
- A fitness gear brand I work with sent a restock email that got a 0.40% click rate, double its other sends, and made $0.
- The opposite problem is just as common: about 20 sends across the brands I work with showed opens and revenue but zero clicks. That's broken tracking, not a great email.
- Most of this is caught by one habit: click every link, on your phone, before you hit send.
What does it mean when an email gets clicks but no sales?
It means interest was there and the path to buying wasn't. A click is a person raising their hand. If nobody who raised their hand bought, the email did its job and something after it didn't.
A fitness gear brand I work with sent a restock email that got a 0.40% click rate, double its other sends. It made $0. A restock is usually one of the strongest sends a brand has, so that number isn't a "bad subject line" problem. It's a sign that something between the email and checkout broke.
If your revenue is flat in general, not just on one send, start with the 7 leaks that keep Klaviyo revenue flat. This post is about the single send that should have worked and didn't.
Where do clicks usually die?
These are the usual suspects. Check them in this order.
- The link is wrong or dead. It points to an old product URL, a draft page, a 404, or the homepage instead of the product. One typo in a URL is enough.
- The product is sold out. The email went out before stock landed, or the bestseller you featured sold out mid-send. People land on a page they can't buy from.
- The discount code doesn't work. It's expired, it doesn't apply to the products in the email, it won't combine with another discount, or there's a minimum the email never mentioned.
- The landing page doesn't match the email. The email says one price or bundle and the page shows another. People feel tricked and leave.
- The page is a pain on a phone. A popup covers the add-to-cart button, the page loads slowly, or the variant picker is hard to use on mobile.
Notice that none of these are about copy. That's why rewriting the email rarely fixes a clicks-with-no-sales problem.
What if Klaviyo shows revenue but zero clicks?
That's the other way tracking lies to you. Across the brands I work with, about 20 sends showed opens and revenue but zero clicks. On a send of any real size, that doesn't happen. That's broken tracking.
Here's why it can happen. Klaviyo's help center says a conversion is credited to an email if someone opens or clicks it and then buys within the attribution window, which is 5 days for email by default on newer accounts. So an email can rack up revenue on opens alone, even if click tracking isn't recording anything.
That matters because opens are already shaky. Apple Mail auto-opens pushed open rates past 85% on some segments in my four-brand data. If clicks show zero, you can't tell whether the email drove those sales or just happened to land before them. I explain why I judge by clicks in open rate vs click rate.
If you see a send with revenue and zero clicks, don't celebrate it and don't copy it. Fix the tracking first, then look again.
The pre-send checklist
This is the checklist I'd run before every campaign, and before turning on any new flow email. It takes about ten minutes.
1. Click every link. Send yourself a test and click every link, button and image, on your phone and on a laptop. Make sure each one lands on the right page, not the homepage. Don't trust the preview. Trust the inbox.
2. Check stock on everything you feature. Open every product page linked in the email. If a product is low, swap it out or have a backup ready. For restocks, confirm the inventory is live in Shopify before you schedule, not just "arriving today."
3. Test the discount code at a real checkout. Add the products from the email to a cart and apply the code. Check the minimum spend, which products it covers, whether it combines with other discounts, and when it expires. If you use Klaviyo's unique coupons, two details from Klaviyo's help center to know: they don't work on subscription orders like Recharge's, and Klaviyo uses UTC while Shopify uses your store's time zone, so expiry dates can look different in each.
4. Make sure UTMs are on. UTM tags tell Google Analytics and other tools that a visit came from your email. In Klaviyo, the account setting lives under Settings > Other > UTM tracking. Campaigns have an "Include tracking parameters" toggle in the recipients step, and each flow message has its own "Enable UTM Tracking" box. Klaviyo also notes links need to start with http:// or https:// to be tracked.
5. Confirm clicks are recording. After a test send, click a link and check that the click shows up in Klaviyo. If a recent send shows opens and revenue but zero clicks, stop and fix tracking before the next one goes out.
6. Match the email to the page. Same price, same bundle, same offer, same product name. If the email promises free shipping, the cart should show it.
How do you diagnose a send that already went out?
If the email has already gone out, work backward from the click.
- Look at which links got clicked. Klaviyo shows link-level clicks. If most clicks went to one product, open that page first.
- Check the product's stock history. Did it sell out during the send?
- Check the discount code in Shopify. If it shows zero uses but people clicked, the code likely didn't apply.
- Look at the visits in Google Analytics. If UTMs were on, you can see whether email visitors landed and bounced. If you can't find any email visits at all, your UTMs probably weren't on.
- Expect Klaviyo and Google Analytics to disagree. Klaviyo's help center notes that its conversion tracking and Google Analytics count things differently, so the two numbers often won't match. Use them to find the broken step, not to argue about the total.
Then fix it and resend to the people who clicked and didn't buy. They already told you they're interested. A short "Sorry, that link was broken, here's the right one" email to clickers is one of the easiest resends there is.
How do you stop this from happening again?
Make the checklist a habit, not a heroic effort. A few things that help:
- One person owns the final click-through. Whoever schedules the send clicks every link on a phone first.
- Scan your sends weekly. Sort recent campaigns by click rate and look at revenue next to it. High clicks with low revenue, or revenue with zero clicks, both get flagged. I lay out what I'd check each week in the weekly Klaviyo check.
- Recheck flows every time something changes. A product URL change, a discontinued flavor or an expired flow coupon can quietly break an email that's been running for months.
Where these numbers come from
The open rate figure comes from 4 consumable brands I work with (2,897 campaigns, $17.7M in email revenue), a small sample, so read it as directional. The restock example is from one brand, and the 20 zero-click sends were spotted across the brands I work with.
FAQ
Why does my email have a high click rate but no sales?
Usually because something broke after the click: a wrong link, a sold-out product, a discount code that didn't apply, or a landing page that didn't match the email. Check those before rewriting the email.
Why does Klaviyo show revenue on an email with zero clicks?
Klaviyo credits a sale to an email if the person opened or clicked it within the attribution window. So revenue can show up on opens alone. If a send has revenue but literally zero clicks, treat it as a tracking problem and check your setup.
Do I need UTM tracking turned on in Klaviyo?
I'd turn it on. Without UTMs, Google Analytics can't reliably tell which visits came from your emails, which makes a broken send much harder to diagnose.
Should I resend an email if the link was broken?
Yes, to the people who clicked and didn't buy. Keep it short, own the mistake, and give them the right link.
How often should I check for broken links in flows?
Any time a product, URL or discount changes, and on a regular schedule after that. Flow emails run for months, so one broken link can cost you for a long time before anyone notices.