SEO for a $2.99 product: what 28 days of Search Console data taught me A developer building PetSignal, a browser-based AI that reads dog and cat body language, shared insights from 28 days of Search Console data, revealing that one symptom page carries 54% of all clicks and that rewriting titles on underperforming pages can boost impressions dramatically. The project relies on organic search due to a $2.99 product price, and the developer emphasizes treating SEO as an engineering discipline with structured content and automated indexing. I'm building PetSignal https://petsignal.ai — a browser-based AI that reads dog and cat body language from a photo and flags stress signals whale eye, freezing, lip curl before they escalate. It's a solo project, the core purchase is a $2.99 credit pack, and that one number dictates the entire growth strategy. Here's the math that rules everything: at a ~$3-10 one-time AOV, paid ads can never work. US pet-niche CPC runs $0.5-2; even at optimistic conversion rates you're paying $50+ to acquire a $3 customer. So the product lives or dies on organic search. That constraint turned out to be a gift — it forced me to treat SEO as an engineering discipline with real feedback loops instead of a checklist. Twenty-eight days of Search Console data later: 230 clicks, 15,953 impressions, and impressions in the second half up 105% over the first. Small numbers, real slope. These are the five things the data actually taught me. My content engine is ~35 "symptom pages": Dog Opening and Closing Mouth Repeatedly , Cat Whale Eye , Cat Breathing Fast . Each one answers a moment of owner anxiety that ends with a photo the owner has already taken — which is exactly what the product analyzes. The surprise: one page carries 54% of all clicks. Not the homepage, not the tool pages — a page about dogs opening and closing their mouths. Meanwhile my four "commercial" analyzer pages have CTRs of 6-9% site average: 1.8% but almost no impressions. The lesson: content pages find demand, commercial pages convert it, and internal links are the pipe between them. I spent a day rebalancing internal links after realizing my refund policy — sitemap priority 0.4 — carried roughly twice as many site-wide links as any commercial page, while the general-purpose analyzer had exactly zero editorial links pointing at it. All 35 symptom pages live in one TypeScript file as structured objects: title, quickAnswer, sections, tables, related links. One React template renders them all. This sounds like a detail; it's the whole game: ? automatically joins FAQPage structured data — so writing content in question form is a one-character schema decision.If you're building content SEO as a developer, this is the leverage: don't write pages, write a page system . In mid-July I rewrote titles on underperforming pages into what I call "answer-promise" format: Cat Wagging Tail While Lying Down: 4 Meanings & Vet Red Flags . One page went from 21 impressions to 533 in the following two weeks — Google started testing it against dozens of new queries. Two weeks earlier, I'd changed the meta on a page ranking 7. It dropped to 10 and took two weeks to recover. Same lever, opposite outcomes. The rule I derived: rewrite titles on pages with nothing to lose page 2+ , never touch pages that are already winning. Every title change is a bet, and position is the stake. My top page ranks 2 for its query, but CTR sat under 2%. Live SERP inspection showed why: an AI Overview answers the question above me, citing big veterinary sites. My page wasn't cited because it didn't cover two causes the Overview emphasized. The fix was content, not optimization: I rewrote the opening into a ~100-word extractable answer covering all six causes, added a cause × symptom × urgency table, and added the missing medical content. Whether it wins a citation is still an open experiment — but "be quotable by the machine that's answering above you" is now a design requirement for every page. New pages here get: sitemap entry automatic, since pages are data → IndexNow ping on deploy → Search Console request for stragglers. Result: the last batch of 9 pages was fully indexed within 24 hours; a request-indexing queue I ran over two weeks went 19/19. If your pages sit "Discovered - currently not indexed" for weeks, the answer is usually authority — but the mechanical half of the problem is entirely automatable. Full honesty, because that's the point of building in public: this is still early. The organic curve is compounding — impressions tripled over the month — but compounding from a small base is still small, and the paywall hasn't seen enough traffic yet to say anything meaningful about its conversion rate. The next experiments: a free cat breathing rate counter https://petsignal.ai/tools/cat-breathing-rate-counter tap-to-count, zero AI cost as a link-earning utility, and community distribution where the pet-owner anxiety actually lives. Happy to answer anything about the page-system architecture or the Search Console feedback loops in the comments.