# How to make your website usable for AI agents: a checklist

Published 2026-10-21 by the Axpecto team. Source: https://www.axpecto.com/blog/how-to-make-your-website-usable-for-ai-agents

**Key takeaways**

- AI agents read a page much like a screen reader: names, labels, links and structure.
- Give every control a clear accessible name, and use real links for navigation.
- Label every form field, and keep important content in the page, not only in images or hover states.
- Test with a real agent attempting real tasks, not only a static checklist.

AI agents, such as ChatGPT's agent mode and browser-using assistants, open websites and click, type and navigate on a person's behalf. They read the page much like a screen reader does: through element names, labels, links and structure. A site is usable by an agent when every control has a clear name, navigation uses real links, forms have labels, and the content is in the page without needing a human to interpret visual cues.

You can test your own site with our free [AI agent readiness audit](https://www.axpecto.com/ai-agent-readiness), which also sends a real agent to attempt tasks when you sign in.

## 1. Give every button and icon a name

An icon-only button has no name an agent can read, so it has to guess what the cart icon or the three dots do.

```
<!-- Before: an agent sees an unnamed button -->
<button><svg>...</svg></button>

<!-- After -->
<button aria-label="Add to cart"><svg aria-hidden="true">...</svg></button>
```

## 2. Use real links for navigation

A clickable div that runs JavaScript has no address, so an agent can't see where it goes, open it directly, or come back to it.

```
<!-- Before -->
<div class="nav-item" onclick="go('/pricing')">Pricing</div>

<!-- After -->
<a href="/pricing">Pricing</a>
```

## 3. Label every form field

Placeholder text disappears once typing starts and often isn't treated as a label. Tie a visible label to each field.

```
<label for="email">Work email</label>
<input id="email" name="email" type="email" autocomplete="email" required>
```

Show errors as text next to the field ("Enter a valid email"), not only as a red border.

## 4. Serve your content in the HTML

Agents usually run JavaScript, but AI crawlers and assistants reading a link often don't. Server-render or prerender your main content so both get the page, not an empty shell.

## 5. Make the main actions easy to find

- One clear primary action per page, named the same everywhere (not "Get started" here and "Try it" there).
- Don't hide key actions in hover-only menus.
- Keep search visible and working, with results on a URL that can be shared.

## 6. Handle errors and dead ends

- Return a real 404 status with links back into the site.
- Fix broken internal links; an agent following one loses the task.
- Avoid flows that only work with a mouse, such as drag-only controls with no alternative.

## 7. Don't wall off public pages

CAPTCHAs and aggressive bot challenges on public pages stop agents working for real customers. Keep challenges for sensitive actions such as sign-up abuse or checkout fraud, not for reading a product page.

## How do you test it?

Try one real task yourself with only the keyboard and a screen reader: what it can't name, an agent can't either. Then run an automated check. Axpecto's [AI Usability audit](https://www.axpecto.com/ai-agent-readiness) crawls up to 25 pages for free and reports where an agent gets stuck, and signed in, a real AI agent attempts tasks on your site and is judged on what the page actually shows.

## Common questions

### Is making a site usable for AI agents the same as accessibility?

Largely. Agents read pages through the same names, labels and structure that assistive technology uses, so most accessibility fixes are agent fixes too. Agents add their own problems, such as bot walls and flows that depend on visual cues.

### Will AI agents buy things on my site?

They already browse and fill carts for people, usually stopping for the person to confirm payment. A site an agent can't navigate loses those visits to one it can.
