Everyone tells you SEO is a long game. Publish, wait, compound. That advice is true and it almost ruined my launch, because it gave me a comfortable explanation for a problem that wasn't slow — it was broken.
Here's what actually happened, and the growth lesson I'd hand to anyone launching something new.
The symptom
I launched. I wrote real pages — long ones, researched, not filler. I submitted a sitemap. Google accepted it. Status: Success.
Then nothing. Weeks of nothing.
Search Console showed my most important page — the actual product page — as "URL is unknown to Google." Not "low quality." Not "crawled, not indexed." Unknown. As if it didn't exist.
The comfortable story was right there: new site, no authority, be patient. I almost took it. That's the trap. "SEO takes time" is the most expensive excuse in growth, because it's indistinguishable from "your site is silently broken."
The actual cause
I stopped guessing and inspected every URL individually.
Three of my content pages came back "Duplicate, Google chose different canonical." Google had decided my pages were copies of something else. My product page wasn't even that — it was invisible.
The cause was one missing function.
My framework generates page metadata per route. The product page didn't define any. So it silently inherited the parent layout's — including the canonical tag. Every visitor and every crawler that hit that page was handed a tag that said, in effect: this page is a duplicate of the homepage, don't index it.
I had spent weeks writing content for a page that was telling Google not to index it. No error. No warning. Valid HTML. Perfect Lighthouse score. A sitemap reporting Success.
That's the part worth internalizing. The bug didn't look like a bug.
What I fixed, and how I proved it
I found three more problems in the same audit:
Redirect chains. www → apex, http → https, trailing slash, and a legacy ?lang= parameter each triggered its own redirect. Chained together, a crawler hit four hops before reaching content. Crawlers give you a budget. I was spending it on hops. I collapsed all four into exactly one 301.
Language sniffing. I routed visitors by browser language. Elegant for humans, poison for crawlers — Googlebot crawls from one place, so it only ever saw one version of my site. I removed the sniffing entirely and routed on path alone.
Cross-language duplication. My English pages echoed fragments of the other language. Enough for Google to read them as near-duplicates of each other.
Then — and this is the part most people skip — I verified every single fix against production. Not locally. Not in staging. Against the live site, from outside.
Every hostname variant, every scheme, every trailing-slash and parameter combination: exactly one hop. Every sitemap URL: zero redirects, HTTP 200. I checked those same invariants again today, weeks later, and they still hold. A fix you haven't verified from the outside isn't a fix. It's a hypothesis.
The result
The product page went from "unknown to Google" to indexed, with Google selecting the correct canonical — itself. The duplicate verdicts cleared. Impressions started flowing within days.
Then the part I didn't plan.
I'd been treating classic SEO as the goal. But my first confirmed AI citation — an assistant pulling my page as a source — didn't land on a product page or a landing page. It landed on a concept page. A page that just explains an idea, patiently, with no sales motion in it.
That reframed my whole content strategy. Assistants don't cite your pitch. They cite your explanation.
The five things I'd tell you
1. Rule out broken before you accept slow. If a page isn't indexed after a few weeks, inspect that exact URL before writing another word. "Unknown to Google" is a bug report, not a waiting period.
2. Read what your pages actually ship. Not what your framework should generate — what it does. curl your own page and look at the canonical tag. Mine was lying about my most important page for weeks.
3. Count your redirect hops. From every variant: www, non-www, http, https, with and without a trailing slash. Each one should reach the destination in a single hop. This is a fifteen-minute audit that most sites fail.
4. Verify from the outside, and re-verify later. Production is the only environment that counts, and a fix that held in July can quietly regress in August.
5. Start before you feel ready. The pages I published in week one outrank the pages I published last week. Same effort. Different age. Indexing age is the one growth input you cannot buy, borrow, or accelerate later — you can only start earlier. Publishing on day one is a decision that pays out in month six.
The real lesson
The growth hack isn't a trick. It's this: when something isn't working, the most likely explanation is not the most comfortable one.
"SEO takes time" let me feel patient for three weeks while my site quietly told Google to ignore it. The moment I replaced that story with a URL inspection, the problem took an afternoon.
Patience is a strategy for things that are working. Diagnosis is what you owe everything else.
Top comments (0)