That longwinded title—you might recognize it—is a play on Henrik Karlsson’s essay, A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox. I link to and tell people about Henrik’s essay often, because it’s an important idea to me: write in public about what interests you, and over time people who you’ll enjoy talking to will find you.
I am less enchanted by the newer, analogous pattern: AI agents finding your website on behalf of their human. But AEO (longhand: Answer Engine Optimization, or Agentic Engine Optimization) is here, and I’ve started to pay attention. Google’s AI Overviews—which, btw, could be wrong about half the time—have severely cut into clicks on top search results. Of course, many “searches” don’t reach Google at all. People increasingly stay home in ChatGPT, Claude, or somesuch. So it’s with some mourning and some spirited optimism that I’m giving AEO the old college try. LLMs seem to like lists, so I’ll start with my own:
Step 1: Measure the bots Step 2: Only let in the good bots Step 3: Attract more good bots
Ok, but how did you really hear about Val Town? (Step 1)
In July, we noticed that the majority of new Val Town Pro users were referred by AI (among users whose referral source we knew), mostly Claude. This was before our concerted effort to “optimize.” SEO begets AEO, as the gurus will tell you, so having good stuff on your website that search engines have indexed and other sites link to means you’re already optimizing for agents.
Up until last week, our source data for those referrals was utm_source and Referer , plus a freeform textbox in our onboarding flow. But we couldn’t square Claude being the most cited referral source against the sparse referral numbers from claude.ai in our traffic. Not all agent referrals are in the form of web search links and citations—many come from the model’s memory, its training weights, as plain text mentions. So it’s possible that Claude is mentioning Val Town without linking to val.town. But it seems more likely that Anthropic just doesn’t pass along a utm_source .
In any case, analytics can’t tell the whole story, so we updated that onboarding question, first by naively laying out the ~dozen most probable referrers in a fixed-order list.
That change alone doubled response rate, but a fishy portion of new users were selecting ChatGPT, the first option. It was plain to see as the Slack alerts rolled in.
Steve bragged about it on Twitter, which is a good way to draw constructive criticism: we got helpful feedback that survey rotation is important to head off ordering bias. So now we’re shuffling the list order. Of course people could still be clicking any option willy nilly to speedrun the survey, but still, it gives us a directional sense of our AEO starting point. That was Step 1A.
To measure which language models are citing Val Town and when, Step 1B would/will be to create our own eval suite. We’d have a set of questions, asked of several models, for which we’d like Val Town to appear in the AI replies.
... continue reading