Designing for an audience without eyes
I’ve been designing for the agents that arrive before people do. Here’s what I’m doing, what’s working, and what I still can’t answer.
Somewhere in the middle of rebuilding my website last year, I noticed something in the logsthat changed how I think about my own work: the visits that mattered were increasingly arriving without eyes. ChatGPT, Perplexity, Claude — agents were reaching my site beforepeople did, reading it on behalf of someone who might never click through, and deciding, inplain text, whether I exist.
For 25 years I designed for one reader: a person, with a viewport, a scroll gesture and some patience. Now there’s a second reader, and it behaves like the first browser I ever designed for in 1999 — it renders no JavaScript, it has no patience, and it takes my HTML at its word. The difference is that this reader answers questions about me to other people. When someone asks a model “who is Pablo Zárate,” the model composes an answer from whatever it managed to read. That answer is now part of my interface, and I never get to seeit ship.
So I started treating the machine as a first-class reader, with its own interface. I’ve been calling it machine experience. This is a report from the middle of the experiment.
The numbers that convinced me this is the right place to be
I want to dimension this, because it sounds like a niche obsession and the data says it’s theopposite. According to Cloudflare’s own network measurements, automated requests crossed 57% of HTML web traffic this year — the first time in the web’s history that machines outnumber people as readers. And within that automated traffic, AI crawlers are now the largest single category. My logs are a small mirror of the same shift: the fastest-growing reader of pablozarate.com runs on GPUs.
Designing for the majority reader of the web feels less like a bet and more like arriving early to a room everybody is walking toward.
What I actually did
I wrote the answer I want models to give. My llms.txt opens with framing notes: who I am, what I do, where the case studies are. Plain declarative sentences, because a model quoting me will quote structure before it quotes poetry. The insight that took me longest: an llms.txt is positioning work disguised as a technical file. You are literally drafting the model’s answer about you. Most people let the crawler improvise it.
I gave each bot its own contract. In robots.txt I set a Content-Signal per crawler — search yes, AI input yes, training no — so GPTBot, ClaudeBot and Perplexity each know what they’re allowed to do with what they read. It’s the same courtesy I’d extend to any collaborator: clear terms, stated upfront, in the format they parse.
I kept the HTML honest. Agents don’t render JavaScript, so everything that matters ships server-side, in clean semantic markup, with the schema describing me as one consistent entity across every page. If your best content only exists after hydration, for the majority reader it doesn’t exist.
I kept it fast. The site holds a PageSpeed of 100, and part of the reason is unglamorous: crawlers work on budgets. A machine that has to wait is a machine that leaves, and itdoesn’t come back out of nostalgia.
Tips, if you’re starting your own version of this
Read your site the way an agent does — curl it, no JavaScript, no CSS — and see what survives. That text is your machine interface, whether you designed it or not. Write an llms.txt as if it were your bio for a reader with no context and total recall. Make your name, role and place consistent everywhere, because entity consistency is to models what visualconsistency is to people: the difference between recognition and doubt. And decide your training policy on purpose, per bot, instead of by default.
What I still can’t answer
I’m being honest about the open questions, because this is an experiment and the instrument panel is half-built.
The biggest one is the crawl-to-click gap. Cloudflare’s data shows AI bots reading enormously more than they refer back — thousands of pages crawled per visit sent. I can see the machines reading me; I can’t yet see how often they say my name. There is no Search Console for LLMs, so my current measurement is artisanal: I ask the models a fixed set of questions every week and log whether I appear. It works, and it’s a proxy, and I know it.
The second one is a real tension I haven’t resolved: my Content-Signal says no to training, while my whole strategy wants models to know who I am. Visibility through retrieval, without donating the work itself — today that line feels right, and I reserve the opinion to change as the tools for consent mature.
And the third: how much do you optimize the text for the machine before the person reading it feels the room got colder? My rule so far is that clarity serves both readers, and the moment a sentence exists only for the crawler, it goes.

Where this leaves me
The reader changed and the discipline barely did. Machine experience turned out to be an old job with a new audience: say the true thing, say it plainly, structure it so it survives quotation, and be the same person everywhere. That’s writing. That’s typography. That’scraft.
The web’s biggest audience doesn’t have eyes now. Design accordingly.
With love,
PabloZarate™



