Skip to content
All posts

·6 min read

We built a version of our company page for AI to read

What we learned rebuilding this site around llms.txt and structured data. Search engines and generative AI read the same page for different things.

  • GEO
  • llms.txt
  • Structured data
  • SEO

The question this answers

What does it take for generative AI to quote your site accurately?

Ask ChatGPT or Perplexity about a company and you sometimes get an answer that is confidently wrong. Usually the information is on the site. It is just only in a form built for people.

We took this on directly while building lightoflife.work. The short version: search engines and generative AI take different things from the same page. A search engine decides which queries the page belongs to. Generative AI looks for a sentence it can paste into an answer.

1. Write sentences that survive being quoted

The sentences AI lifts have something in common. They do not open with a pronoun, and one sentence carries both the subject and the fact.

"We run three businesses" tells a reader nothing once it is lifted out. "LIGHT OF LIFE is a creative venture company that plans and runs its own products, spaces, and experiences" still stands on its own.

So the FAQ is data, not page decoration, and the same sentence goes to the screen and to the structured data from one source. The moment the visible copy and the search result diverge, one of them is lying.

2. llms.txt: the summary AI reads

llms.txt sits at the root of a site the way robots.txt does. It strips out the furniture and states, in markdown, what the site is and which pages exist.

# LIGHT OF LIFE

> A creative venture company building products, spaces, and experiences.

## Pages
- [Business](https://lightoflife.work/en/business): ...

## FAQ
### What is LIGHT OF LIFE?
...

It is not a ratified standard. But it costs almost nothing to produce, and it is the only place where you get to say how you would like to be summarised. Publish nothing and the model will cut up your HTML on its own terms.

One thing matters more than the format: maintain it by hand and it will drift from the site. Ours is generated from the same copy the pages use, so editing a sentence updates both.

3. Name the crawlers you allow

AI crawlers arrive under their own user agents, separate from the usual search bots. With no rule at all, some of them back off. If you want to be read, say so by name.

  • GPTBot · OAI-SearchBot · ChatGPT-User — OpenAI
  • ClaudeBot · Claude-SearchBot · Claude-User — Anthropic
  • PerplexityBot · Perplexity-User — Perplexity
  • Google-Extended — Google's separate switch for generative training

If you would rather not be used for training, this is where you say that instead. The point is to decide and write it down.

4. One graph, not scattered blobs

Instead of sprinkling JSON-LD around a page, everything goes into a single @graph where nodes reference each other by @id. If Organization, WebSite, and WebPage are strangers, a parser has to guess the relationship. Stating it removes the guess.

Then sameAs. Listing your official accounts lets a search engine confirm they are the same organisation. That is only half of it: each profile has to point back at the domain before the link actually forms. It is an easy place to do one side and wonder why nothing happened.

5. The biggest variable is somewhere else

With all of this in place, a new domain still stays quiet for a while. Getting indexed takes time, and it takes longer when nothing links to you.

Which makes the order matter. The technical work is a day. For that day to pay off, the site has to give people a reason to arrive, and a company page is not that reason. Writing down the problems you actually solved is. This post is us doing that.