Apparently there's a thing called GEO — setting up for AI search, unsure as I go
The series (4 parts) on building and shipping crofty is finished; this is a bonus. The finale, Designing a CLI on the premise that an AI will drive it, was about “the AI that uses it”; this one is about “the AI that arrives via search.”
Search itself is more and more often done by an AI.
Tuning a site for that AI is apparently called GEO (Generative Engine Optimization) — the generative-AI counterpart of SEO. crofty was built from the start on the premise that a person’s AI agent operates it, so I extended that premise to “the AI that finds it” too.
That said, I don’t really know yet what works, or how much. So I’ll sort it into what I know and what I don’t, in three buckets.
What’s settled
- That AI has entered search is plain to see. GEO is a fairly new name for tuning toward that AI.
llms.txtand structured data (JSON-LD) are standard, low-cost ways to present a site in a form an AI can read. There’s no real reason not to add them.- Roughly two kinds of AI visit. Both answer based on what they can read off the site.
| The AI that visits | Examples | What I want it to do |
|---|---|---|
| Conversational AI search | ChatGPT, Perplexity, Google’s AI answers | name and recommend crofty in its answer |
| Coding agents | terminal companions like Claude Code | carry “I want to build a site” through to install |
What I did this time
In a form an AI can read, I placed checkable facts — free, no account, supported OSes — rather than slogans like “fast” or “easy.” Two forms.
llms.txt — an index for LLMs, in one page of Markdown
llms.txt is a single-page index of the site’s essentials, written in Markdown for LLMs. I put it at https://crofty.site/llms.txt: a one-line definition, the main facts, install commands, and links to each page, in that order. It opens like this.
# crofty
> crofty is a command-line tool that turns plain Markdown into a static
> website you own — write, build, and publish, with no account and no server
> in between. Free and open source; runs on macOS, Windows, and Linux.
llms.txt is itself just Markdown, so writing it and fixing it later took the same effort as an ordinary post.
JSON-LD — the site’s content as structured data
The other is JSON-LD. I embedded the site’s content in each page’s <head> in a form an AI or search engine can read programmatically (structured data). Two of them: a WebSite for the site as a whole, and a SoftwareApplication for the product itself on the top page.
{
"@type": "SoftwareApplication",
"name": "crofty",
"operatingSystem": "macOS, Windows, Linux",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"sameAs": ["https://github.com/ShiroDoromoto/crofty"]
}
Free, the supported OSes, the GitHub it ships from — each is material for an AI to describe crofty in a line.
What I can’t judge yet
From here on, it’s unverified. I set it up expecting the flow below, but whether it actually goes that way is another matter.
- Hypothesis — place checkable facts in an AI-readable form, and crofty gets named, and described correctly, more often.
- How I’d check — look at referrers in crofty’s own analytics. One config key connects Google Analytics (GA4) and Search Console, so I can watch whether visits from
chatgpt.comorperplexity.airise. - Result — none yet, as of this post.
It should be worth doing, so I’ve put it in and I’ll watch for a while. If referrers shift, or anything else turns up, I’ll write a follow-up.