Summary
A 916-page Shopify balloon store in Chicago was shrinking: clicks down 39% year on year and 804 product pages earning under one click each per quarter. 482 pages, more than half the store, rendered no title at all. The store’s own data priced it: untitled pages earned clicks at 0.38%, titled pages at 1.28%.
A store that Google kept showing and nobody clicked
The numbers looked like a slow leak. In 90 days, Google displayed the store 234,066 times. People clicked 2,319 times, a 0.99% rate.
The homepage took 61% of those clicks. The 804 product and collection pages, the pages that sell balloons, earned 736 clicks between them. That’s 0.92 clicks per page per quarter.
Meanwhile two Chicago rivals were taking the occasion searches: graduation balloons, baptism, prom, retirement. The store had the inventory and the reputation, including a B Corp certification. It wasn’t getting the click.
Look at every page, then check by hand
I ran my Audit Engine over all 916 URLs in the store’s sitemap. Every one returned successfully, which means no finding here rests on a sample. Then I did what a crawler can’t: I opened the flagged pages and read the code.
One product page returned 652 kilobytes of HTML, a complete header section, a social-sharing title, and no title tag at all. The line that tells Google what to call the page in search results simply wasn’t there.
I split Search Console by branded versus non-branded queries and by page type. I asked 69 live questions across Google’s AI Mode and four assistants.
I ran four checks on whether AI shopping agents could transact with the store. And I tore down both Chicago rivals plus four national competitors.
The store measured its own cost
482 of 916 pages render no title element. 481 of them are product pages. The same 482 URLs are also missing their description. When two faults share an identical count, it isn’t two problems; it’s one broken template branch.
The store’s own data priced the fault. The 370 untitled pages that still drew impressions took 25,799 impressions and earned 98 clicks: 0.38%. The 303 pages whose only title problem was being too long took 160,093 impressions and earned 2,050 clicks: 1.28%.
Same store, same crawl, same 90 days. 3.4 times the click rate. This isn’t an industry benchmark. It’s the store’s own data, comparing its own pages.
537 queries already rank between positions 4 and 20, 329 of them inside the top ten. They drew 81,938 impressions and returned 380 clicks.
At the store’s own observed 1.28% rate, the same impressions return 1,049 clicks. That’s arithmetic on rankings the store already holds, over one quarter, with no new content.
Also found: 747 pages under 300 words, 81 with no main heading, 321 titles past 65 characters.
The door is open and nobody’s home
The store had something most retailers don’t: it was already reachable by AI shopping agents. It served the technical endpoint those agents use to browse and buy, and its robots file blocked none of the answer engines. An AI agent could already purchase from it.
But the file that tells those agents who the store is, the introduction an agent reads before it decides whether to recommend a store, had never been edited. It was the 533-word Shopify default. It mentioned Chicago zero times.
Weddings, corporate events, garlands, the B Corp certification: zero. The access was built. The reason to choose this store over any other was missing.
The engines confirmed it. Across Google AI Mode and four assistants, the store was named in 42% of relevant questions and cited as a source in 10%. Of 655 citations awarded, 7 went to the store.
Recognition without standing. A content problem, not an access problem.
Where the money was
Both Chicago rivals organize their sites by occasion. This store organized by product attribute, and its collection pages ran a median of 238 words against rivals’ 1,600 to 4,700 with FAQ sections. The lost queries were already sitting in Search Console, drawing impressions and zero clicks: bachelorette balloons, happy retirement balloons, welcome home balloon, congrats balloon, balloon arches chicago.
I sized it: 591 content-gap keywords, 116,760 combined monthly searches, 564 of them low-difficulty, 403 with a rival already in the top three. Plus 48 curated link targets across five categories.
What one template fix changes
The title fix is a single template edit. On the store’s own click rate, applied to rankings it already has, it’s the difference between 380 clicks and 1,049 a quarter before a single new page is written.
The occasion collections and the agent introduction are the growth on top. The Audit Engine delivered it as a hosted audit and a deck the owner could act on, with every number linked to the crawl or Search Console row it came from.
At a glance
- The niche: Balloon retail and event decor, Chicago, 916-page Shopify store.
- The problem: On-page (482 pages with no title or description), thin collection pages (238 words against rivals’ 1,600 to 4,700), no introduction for AI shopping agents, clicks down 39% year on year.
- What was built: A full-sitemap crawl with hand verification, brand and page-type splits of Search Console, 69 live AI questions, agent-readiness checks, six competitor teardowns, a 591-keyword content-gap map.
- Implementation: Delivered by my Audit Engine as a hosted audit and a deck, every number linked to its crawl or Search Console row; one template fix, occasion-based collections and an agents file as the first three actions.
- Results: Untitled pages clicking at 0.38% against 1.28% for titled ones, 3.4 times the rate; 537 queries already ranking 4 to 20 worth 1,049 clicks a quarter at the store’s own rate against 380 today; 116,760 monthly searches mapped.
- Built with: my Audit Engine.





