Five top-3 Google rankings across 7 cities and 1 country. Under 2 months. Zero ad spend.
That's what the AEO Copilot partner directory produced. And it's been one of the most effective growth moves I've made since launching the product.
Here's exactly how I built it, why it worked faster than I expected, and what I'd do differently.
The problem with being in a new category
AEO — Answer Engine Optimization — is a real thing. Brands are losing visibility in ChatGPT, Claude, and Perplexity because nobody has optimized their content for AI answers. But in 2025, almost nobody was searching for "AEO tool."
The category didn't exist in search yet. You can't rank for a keyword nobody types.
Traditional SaaS SEO advice says: write blog posts, build topical authority, wait 6–12 months. That works when the category is established. When you're trying to explain what your product does while also trying to rank for it, you need a different angle.
I asked a simpler question: where is there already search intent from people who care about AEO?
The keyword pattern that opened everything up
People don't search for "AEO tool." But they do search for "best SEO agency in London" — thousands of times a month. And as AI search grows, a new version of that query is forming: "best AEO agency in London."
That keyword gets almost no searches today. It also has zero competition. And the people searching it are already sold on the category — they're ready to hire someone, which means they understand the problem my tool solves.
I built a directory targeting exactly that pattern:
Best AEO [agencies / freelancers] in [City / Country]
URLs like:
aeo-copilot.com/partners/agencies/france/paris
aeo-copilot.com/partners/freelancers/uk/london
aeo-copilot.com/partners/agencies/germany/berlin
23 countries. 79 cities. 204 pages. One React template.
Why this is different from a thin doorway page
Programmatic SEO has a bad reputation because most implementations are lazy. Hundreds of near-identical pages with swapped location names and nothing else. Google penalizes them, readers bounce immediately, and they don't convert.
I made every page earn its place.
Each location page includes:
A short intro paragraph that puts the location name and keyword in the first two sentences. A "What does an AEO agency do?" section with six service categories: audit, content optimization, structured data, visibility monitoring, competitive intelligence, strategy. A "How to choose the best AEO agency in [City]" section — that exact keyword in an H2, followed by five numbered evaluation criteria. A six-question FAQ, where question one is always "What makes the best AEO agencies in [City] stand out?" FAQPage JSON-LD schema on every page, making each one eligible for Google rich results. BreadcrumbList schema for sitelink navigation in the SERP.
It's templated. It's also genuinely useful to someone searching that query.
The technical decision that actually mattered
AEO Copilot is a React single-page application. That creates a problem most people don't think about until after launch: when LinkedIn, Twitter, or Slack scrapes a URL for a preview, it reads raw HTML. It doesn't execute JavaScript.
Without intervention, every directory page would show the same generic og:image — the site logo. Not the Paris skyline for /france/paris. Not the Tokyo skyline for /japan/tokyo.
The fix: server-side meta injection.
Before the HTML gets served, the Express server intercepts requests to /partners/:type/:country/:city and injects the correct meta tags directly into the HTML string. Title, description, canonical URL, og:title, og:description — and the og:image.
I built 23 country photos and 74 city photos, stored at /locations/france-paris.jpg, /locations/uk-london.jpg, and so on. When someone shares a city page, they see that city. Every share looks specific because it is.
I also submitted a 204-URL sitemap to Google Search Console on launch day with weekly changefreq. That's the other piece that accelerated indexing.
The part I didn't expect
Honestly, I expected to wait 3–4 months before seeing any movement. The niche is new, the domain isn't old, and I'd heard plenty of stories about programmatic SEO taking forever to gain traction.
Instead, Google picked it up fast. Within 6 weeks, pages were ranking. Within 2 months, five of them were in the top 3 for their target queries across 7 cities and 1 country.
I think the speed came from two things. First, there was genuinely no competition. Nobody else was targeting "best AEO agencies in [city]" because the category is too new. Second, the pages had real content — structured, specific, schema-marked-up. Google didn't have to guess what they were about.
The directory also had an immediate effect on signups. AEO professionals found their city pages while searching their own niche, listed their profiles, and converted to paid users. The directory became a recruitment channel for the tool itself.
The dog-food angle
AEO Copilot is a tool for improving your visibility in AI-generated answers. So I optimized the directory for exactly that.
Every page has FAQPage JSON-LD, which makes it eligible for Google AI Overview extraction. The FAQ answers are written to stand alone — no "as mentioned above," no context required. The content uses numbered lists, short definitions, and direct sentence structure — the formats LLMs prefer when extracting answers for a user query.
The goal is that when someone asks ChatGPT "where do I find an AEO agency in London?", the directory shows up. That's the strongest possible product demonstration: the tool's methodology working on the tool's own website.
What I'd do differently
Start with 10 pages, not 204.
The programmatic approach was the right call, but I could have validated it with the 10 highest-intent markets first. London, Paris, New York, Berlin, Amsterdam. Get them ranking, prove the conversion rate, then scale. Going to 204 pages immediately wasn't wrong — it just meant I was maintaining a lot of pages before I had signal on what was actually working.
I'd also add social proof earlier. The directory currently lists profiles but has no reviews or verified client outcomes per location. That's the next lever. City-specific testimonials would significantly increase both the content depth per page and the trust signal for someone looking to hire.
The numbers, plainly
- 204 pages from 1 template
- 23 countries, 79 cities
- 74 city-level og:images for social sharing
- 5 top-3 Google rankings across 7 cities and 1 country
- Under 2 months from launch to those rankings
The keyword pattern still has near-zero competition in most markets. If you're building in the AEO space, or any emerging category where people hire help, this is the window.
If you're an AEO agency or freelancer, list your profile on the directory — it's free and takes five minutes.
If you want to track how your brand shows up in ChatGPT, Claude, and Perplexity, AEO Copilot is free to start.