Single-product Shopify store: why paid traffic was not converting
Paid conversion rate moved from about 0.4% to about 3% in a week.
The situation
This is a single-product Shopify store selling rechargeable desiccant packs. Google Ads had been running for about a month and the reports were poor: the Search campaigns had produced 331 clicks and no conversions in 30 days, and Performance Max had produced a handful. Site conversion had dropped from about 2.5% to 0.4% as ad traffic arrived.
What the diagnosis found
The search terms and landing pages were good. Gun-safe-intent searches landed on the right product page. The problem was the page and the offer.
- A cookie box appeared after 2.5 seconds and an email popup after 8 seconds, stacking over the mobile gallery.
- A tall announcement bar carried a "Shop now" link that pointed at the page the visitor was already on.
- The entry price for the main pack sat well above the anchors shoppers had just seen on competitor listings, and gun-safe buyers usually want one or two packs, not five.
- The product template was stacking two full layouts on top of each other, a native one and one from a page-builder app.
What we changed on the page
All edits went to a draft theme and were reviewed before anything was published. The live theme was never edited.
- Pushed the email popup from 8 to 45 seconds, removed the decorative cookie popup for a US-only audience and shrank the announcement bar.
- Replaced the duplicated layout with the native product page and moved the buy box above the fold on mobile. The durable fix was a product-level template setting, because the page-builder regenerates its own template file when you edit it.
- Reconciled the trust badges. Demo defaults promised worldwide shipping, 60-day returns and a 24-month warranty. The store's real policy is free US shipping, 30-day money-back and no warranty. We showed what is true.
What we changed in Google Ads
- Paused the Competitors campaign, cut Category Generic from $25 to $12 a day, and added tracking parameters at the account level.
- Paused the Brand campaign, which was paying $5.55 a click on the brand's own name while serving close variants.
- Switched both remaining campaigns to optimize on purchases only. They had been optimizing for add-to-cart and video views as well.
- Added ten search themes and an audience signal to Performance Max, and added negative keywords. The account had none.
- Wrote a kill rule in advance: Category Generic folds into Performance Max if its return is under 1.0 by a set date.
The results, and their limits
In the first week after the page changes, conversion on paid traffic rose from about 0.4% to about 3%. Account return on ad spend moved from 0.21 to 0.98, and Performance Max reached 1.86 and hit its daily budget, so we raised it. Later, Performance Max settled around 1.44 and stayed budget-limited, while Category Generic spent about $74 with no revenue and failed its kill rule.
A return near 1.0 is not yet a profit, and we do not present it as one. The biggest remaining lever is a lower-priced two-pack entry variant, followed by product ratings for Google's star display and better product photography. We also wait for around 30 purchases in 30 days before setting a target return on ad spend, then ratchet it up gradually.
The takeaway
When ads do not convert, check the page before the campaigns. Here the page was the bigger leak, and the fix cost less than any amount of bid tuning.