Skip to content

A website for readers who are not people

AI assistants read websites on behalf of people, and some ask for Markdown over HTTP. Why answering is cheap, what llms.txt does, and what is left over.

3 min read
Eine Website für Leser, die keine Menschen sind

Your website has readers who never see a pixel of it. An assistant comparing three offers for someone fetches the pages itself and reads whatever the server sends. It reads differently from a person, and it even tells the server what it would prefer. Whether the site listens is a decision, and a cheap one.


A reader who sees nothing

Ask an assistant to summarise a page or compare three providers, and it goes off to fetch pages. What comes back is the source: navigation, styles, scripts, footer, and somewhere in between the three paragraphs that mattered. It does not see the layout, the images or the animation. It gets the scaffolding they hang on.

And it pays for every character of it. A language model has a limited working memory, and whatever does not fit is dropped. A common fetch tool, handed a 565,000-character page, read the first 100,000 characters and left the rest. To its credit, it said so.

I measured it on this site. A post weighs about 350 kilobytes as HTML and 4.5 as Markdown. A good third of the difference is the stylesheet, built into every page on purpose so a phone shows the headline sooner; nearly all the rest is scripts for the browser. For people, that is the right call. For the other reader, it is ballast in front of the first sentence.


It says what it wants

The odd part is that this reader asks politely. HTTP has had a header for it since 1997: Accept. The client lists the formats it would like and which it prefers, and the server picks the matching version. The current standard, RFC 9110 from 2022, calls this proactive negotiation. Markdown has had its own media type, text/markdown, since 2016.

Some agents already use it. Claude Code, for one, sends "Accept: text/markdown, text/html, */*": Markdown first, then HTML, anything as a fallback. You can check it against a service that simply echoes back the headers it receives. Other tools ask for HTML, or for nothing in particular. That will change, and the server does not care: it answers what it is asked. Ask for nothing and you get the page as always.


One source, two views

There are two obvious alternatives: a separate "AI version" at its own address, or a tool that turns the finished HTML back into text. Both fail quietly. The second version says something different from the first after the third edit, and nobody notices, because no person reads it. The conversion produces something for every new section, not necessarily anything useful, and nothing reports that either.

Here it is built differently: the same address, the same content, two renderings from one source. Every section of the site has a view for machines beside its view for people, and a new section without the second one does not build at all. That has a cost: two views have to agree, and nobody proofreads the second. Why I pay it anyway is written down with the decision.

The same address is the actual point. An agent is handed a link and fetches exactly that. I would not build on it going looking for a second one. Anyone who wants the Markdown directly can append ".md".


What about llms.txt?

In September 2024 Jeremy Howard proposed a file at the root of a website that tells language models, in Markdown, what is there: a table of contents for machines. It is a proposal, not a standard, and whether an assistant reads it is up to whoever makes the assistant. This site has one, because it costs next to nothing.

But a table of contents does not help a reader who arrives with a single link. You can argue for a long time about which new file is the right one. I would answer the question that is already being asked first.


What is left

The second view puts an awkward question to every section: what does it say to someone who cannot see it? On this site the Markdown loses the tower, the stones, all of the motion. What is left are the sentences, and they have to carry the point without the picture.

For a page meant to sell something, that is the more interesting half. If the argument lives only in an image, an animation or a chart, it reaches this reader as alt text at best. It then summarises for its person whatever is left.


Ask the assistant you already use to summarise your own home page in three sentences: what you offer, and to whom. Compare that with what you meant. The difference is what it tells anyone who asks it about you. And if you want to see what this post looks like to it, append ".md" to this address.

A similar problem?

A problem, a sketch or a question is enough. I reply within two working days.

Get in touch