Why Your 404 Page Is Firing a Google Ads Conversion
Somewhere in your Google Ads account, there may be a conversion that never happened. A customer landed on a broken link, hit a "Page not found" screen, and your tracking counted it as a win. No order. No revenue. Just an error page quietly telling Google it did a great job.
It sounds absurd. It happens more than you would think. And once you see how it works, you will understand why so many accounts optimize toward events that are pure noise.
How a broken page ends up counting as a conversion
A conversion is just a signal you send to Google. It fires when a certain thing happens on your site: a purchase, a form submit, a page load. Google does not verify the thing actually happened. It trusts the signal.
Most conversion tracking gets attached to a page or an action. The classic setup is the thank-you page. Someone buys, they land on /order-confirmation, the tag on that page fires, and Google records a purchase. Clean and simple.
The problem starts when the rule that decides "did this count" is sloppier than it looks.
Here are the common ways a 404 page gets pulled into your conversion count:
- A URL rule that is too loose. If your conversion fires on any page whose address "contains" a certain word, and your 404 page reuses that word, it fires.
- A tag that lives on every page. If the purchase tag is loaded site-wide instead of only on the confirmation page, your error page loads it too.
- A soft 404. This is a page that looks like an error to a human but returns a normal "everything is fine" status to the browser. Your tracking treats it like any other working page, so the tag runs.
- A redirect gone wrong. A dead link that should send people to the confirmation page instead dumps them on a broken version of it, tag still attached.
None of these are exotic bugs. They are the ordinary result of tracking that was set up once, wired to the URL, and never checked against what the URL actually does.
Why a soft 404 is the sneakiest version
A real 404 tells the browser, in plain terms, "this page does not exist." That status code is a signal search engines and tools can read.
A soft 404 lies. The page shows an error message to the visitor, but behind the scenes it reports "200 OK," which means "here is your page, all good." Shopify themes and custom setups do this all the time without anyone noticing.
So now you have a page that:
- Shows a human a dead end.
- Tells Google the page loaded fine.
- Runs whatever tags are set to run on a normal page.
If your conversion tag is one of those tags, congratulations, your error page is a salesperson.
What this quietly does to your ads
A few stray conversions from a 404 page might sound harmless. It is not, because of what Google does with that data.
Google Ads does not just count conversions. It learns from them. Smart Bidding studies which clicks turned into conversions and spends more to find people who look like those clicks. When a chunk of your "conversions" are actually people hitting broken pages, you are teaching the machine to chase the wrong audience.
Think about who ends up on a broken link. Often it is a bad ad destination, a mistyped URL in an old campaign, or traffic that never had a chance to buy. If those visits get scored as wins, Google leans into whatever produced them. Your cost per real sale creeps up while your dashboard looks fine.
The dashboard looking fine is the whole trap. The number goes up. The number is fake. You make decisions on the fake number.
We lived this with our own store
We are not lecturing from the outside here. Our own store, Outer Envy, ran with broken conversion tracking for a long stretch, and the numbers got ridiculous before anyone caught them.
The account reported 67,184 conversions against roughly 900 real orders. That worked out to a reported 145% conversion rate, which is mathematically impossible, since you cannot convert more people than you have visitors. Google happily showed a cost per purchase of $0.06, which anyone would love if it were real.
It was not real. We spent 16 months optimizing toward events that never happened and burned about $3,200 a year in wasted paid search spend chasing ghosts.
After we fixed the tracking, the reporting matched reality to the cent. A $269.90 order showed up as $269.90. No inflation, no phantom purchases, no error pages posing as sales.
A 404 conversion is a smaller version of the same disease. Something is firing that should not, and the account is learning from it.
How to check your own account
You do not need to be an analytics engineer to spot this. You need about twenty minutes and a little suspicion.
- Visit a page that does not exist. Type your domain followed by something random, like
/thispagedoesnotexist123. You should see your 404 page. - Watch what fires. Install Google's Tag Assistant (a free browser extension) and reload that fake page. If your purchase or conversion tag lights up on an error page, you found it.
- Check the status code. Use any free "HTTP status checker" and paste in that broken URL. If it says 200 instead of 404, you have a soft 404, and that is why tags are running.
- Look at your conversion action rules in Google Ads. Open the conversion, check what triggers it. If it fires on a URL that "contains" a word rather than an exact confirmation page, tighten it.
- Compare counts to reality. Pull your Google Ads conversions for last month and set them next to your actual Shopify orders. If the ad number is meaningfully higher, something is inflating it.
If those two numbers do not line up, every bid decision built on top of them is guessing.
The fix is boring, which is good
The repair is not glamorous. Fire the conversion tag only on the real confirmation page, verify the page actually returns a normal status, and make sure your 404 page returns a true 404 so nothing treats it as a working page. Then watch your counts fall to something honest and useful.
Boring is the goal. You want reporting that matches the money.
If you are not sure what your tracking is actually counting, that is exactly what the AdProof Audit is for. We look at what your setup reports, compare it to what really happened, and hand you a plain-English findings report plus a short recorded walkthrough. We touch nothing. You just get to see the truth about your own numbers.