I'm building PetSignal β 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 (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.