# A website for humans and agents

> What I changed so AI agents and answer engines can read this site accurately, what the evidence says actually works, and what I skipped.

- Author: Andrei Teodor (https://aiia.ro/about/)
- Published: 2026-09-23
- Topics: AI agents, GEO, Web standards

More of the visits to a website now come from software acting for a person: a coding agent looking something up, an assistant building a shortlist, a browser agent filling in a form. When I rebuilt this site I treated those visitors as a second audience with their own needs. Humans want a clear page. Agents want clean text, stable URLs and facts they don't have to infer from the layout.

This is what I implemented, and why.

## Start with the boring part: real HTML

Every page on this site is plain, server-rendered HTML with a sensible heading order. Nothing important depends on JavaScript or animation, so a crawler that doesn't run scripts sees the same content a person does. That still matters more than anything else on this list. Google's own guidance for its AI features says the usual SEO fundamentals apply, and that no special markup is needed to appear in them ([Google Search Central](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)).

## Markdown for anyone who asks for it

Every page has a Markdown version. You can get it two ways:

- add `index.md` to the URL, for example [/ai-automation/index.md](https://aiia.ro/ai-automation/index.md)
- or request any page with the header `Accept: text/markdown`

The second one is content negotiation, and it isn't hypothetical. In a February 2026 test, Claude Code, Cursor and OpenCode all sent `text/markdown` in their `Accept` header when fetching pages ([Checkly](https://www.checklyhq.com/blog/state-of-ai-agent-content-negotation)). Cloudflare now offers the same conversion at the edge ([Cloudflare](https://blog.cloudflare.com/markdown-for-agents)). I write the Markdown myself from the same source as the HTML, so it is shorter than an automatic conversion and can't drift out of sync.

Markdown responses carry a canonical link back to the HTML page and a `noindex` header, so search engines don't treat them as duplicates.

## A brief written for agents

The [For agents](https://aiia.ro/agents/) page is the whole site in one Markdown document: who I am, what I offer, what I have built and how to reach me. Each project is labelled with the kind of evidence behind it: live, open source, or a private build. An assistant that reads it shouldn't have to guess which claims can be checked.

## llms.txt, with honest expectations

There is an [/llms.txt](https://aiia.ro/llms.txt) file too, but I don't expect much from it. Ahrefs looked at 137,000 domains and found that 97% of llms.txt files got no requests at all in May 2026, and none of the major AI companies has said its crawlers use the file ([summary of the evidence](https://mecanik.dev/en/posts/does-llms-txt-do-anything-yet)). It costs almost nothing to keep, and coding agents sometimes read it as a table of contents, so it stays. It just isn't the strategy.

## Structured data that matches the page

Each page carries Schema.org JSON-LD: a Person, the service I offer, the software I have built, and articles with their authors and dates. Every entity has a stable ID, so the pages describe one connected set of facts rather than a pile of separate snippets. The rule I followed is Google's: markup has to describe what is visible on the page ([Google Search Central](https://developers.google.com/search/blog/2025/05/succeeding-in-ai-search)). There is no FAQ markup on pages without a visible FAQ, and no ratings I can't show.

## Tools for browser agents

Chrome is testing [WebMCP](https://developer.chrome.com/docs/ai/webmcp), which lets a page register tools that an agent in the browser can call instead of guessing where to click. This site registers five read-only tools: get the profile, list services, list projects, list articles, and draft an inquiry. The last one only returns links. It never sends anything, because contacting someone is a decision the person should make.

## What I left out

I didn't add files just because they sounded AI-related. There is no `ai.txt` and no invented `.well-known` manifest, because nothing I could find reads them. The usage preferences in [robots.txt](https://aiia.ro/robots.txt) use Cloudflare's Content Signals, which are widely deployed, while the IETF works on a standard version.

> The useful part isn't a special file. It's making the facts easy to find, easy to check and the same in every format.

That is the same thing I try to do with automation: [leave a trail](https://aiia.ro/blog/automation-should-leave-a-trail/) that someone else can follow.

---
Canonical: https://aiia.ro/blog/a-website-for-humans-and-agents/ · Author: Andrei Teodor · Site brief: https://aiia.ro/agents/index.md
