AI & GEO

Optimize your website for AI browsers

Where Comet, Claude in Chrome, Gemini and ChatGPT get stuck on your site and how to fix it, usually without a relaunch.

Accessibility TreeForm with labelsCookie banner closableBot protection tuned
Michael WeberFirst published: August 5, 2026Last updated: November 3, 202611 min read
In short
  • AI browsers such as Comet, Claude in Chrome, Gemini in Chrome and the ChatGPT browser operate your site on behalf of a person. They mainly read the structure of the page, the accessibility tree, and add screenshots.
  • Most failures happen in a few places. Typical culprits are buttons and fields without names, overlays such as cookie banners, shifting layouts, hover-only controls and bot protection that locks out all automation.
  • Almost every fix is small and also helps screen readers and search engines. With WebMCP you can additionally offer agents your most important actions directly as tools.

What does this guide cover?

This guide is the hands-on manual. You go through your site area by area and fix what AI browsers get stuck on. What Agentic Engine Optimization means in principle and how to think about agents as a new kind of visitor is covered in the guide Agentic Engine Optimization. Which AI browsers exist and how they are built is shown in AI browsers compared.

The agent clicks like a human and is easily overwhelmed

Perplexity Comet, Claude in Chrome, Gemini in Chrome and the browser in ChatGPT look at the rendered page and click through it the way a person would. That is flexible but error-prone. One ambiguous button, a form field without a label or a layout that jumps while loading, and the task fails. You can be at the top of the AI answer and still lose the sale because the agent gets stuck in checkout.

The good news is that the sources of error repeat. Most fixes are small, targeted changes that do not need a relaunch.

How does an AI browser read your page?

“Like a human” is only true of the result. The agent does not see your page, it reads it in three steps.

  1. Read the page. It fetches the accessibility tree, the structure of roles, names and states of every interactive element, and takes a screenshot when needed.
  2. Match the element. It decides which element fits the task, for example “this field is called Email, so the address goes here”.
  3. Trigger the action. It clicks or types into exactly that element.

Anthropic describes exactly this for Claude. Claude reads pages through their structure, meaning the accessibility tree, elements, forms and tabs, and through screenshots with coordinates. The documentation advises reading the tree first and only then taking a screenshot. Claude falls back to screenshots and coordinate clicks for canvas interfaces, heavily virtualised lists and elements inside cross-origin iframes. Perplexity writes that the Comet assistant takes in the visible text, headings and metadata of the open page with every request. OpenAI names screenshots and the rendered state of the page for the ChatGPT cloud browser. For Gemini in Chrome, Google only documents that auto browse clicks, scrolls and fills in forms.

Whatever is marked up cleanly in the structure, an agent finds reliably. An element that merely looks like a button remains guesswork based on the screenshot, slower and more error-prone. That is where most stumbling blocks arise.

Orientation via screenshot only
  • Elements that look like a button but are not one
  • Layouts that shift, so a remembered position no longer matches
  • Text in images, or content that heavy JavaScript loads later
Found via the accessibility tree
  • Native elements with clear roles and states
  • Fields linked to a descriptive label
  • Content that sits as text in the structure

Where do the agents stop by themselves?

Some interruptions are intentional. Vendors make their agents stop at sensitive points and let the person decide. Plan these handovers into your flows.

AI browserHow it readsWhere it stops or hands over to the user
Claude in Chrome (Anthropic)Accessibility tree first, plus screenshotsDoes not solve CAPTCHAs. Asks before downloads and before entering sensitive data. Asks for permission on financial sites and does not open adult sites or known piracy sites
ChatGPT, cloud browser and desktop app browser (OpenAI)Screenshots and rendered stateWith CAPTCHAs or blocks against automated browsers the task can fail, and ChatGPT then asks you to take over the browser. Logins go through a form whose data the model does not see. ChatGPT asks before a booking or payment
Gemini in Chrome, auto browse (Google)Clicking, scrolling, filling in forms; reading method not documentedThe user takes over for payments, accepting terms and creating accounts. Confirmation required before submitting forms and messages
Perplexity CometVisible text, headings and metadata of the open pagePerplexity gives no information on CAPTCHAs and logins

The table reflects the status on November 3, 2026. OpenAI discontinued the ChatGPT Atlas browser on August 9, 2026. Since then, the browser features live in the ChatGPT Work cloud browser, in the desktop app's built-in browser and in the Chrome extension. Google discontinued Project Mariner in May 2026, and its technology now sits in Gemini. What matters for you as a website owner is therefore that every agent can operate your site.

Common mistakes at a glance

In April 2026, Google published recommendations for agent-friendly websites on web.dev. Together with the patterns agents fail on in practice, they result in this list. The right-hand column tells you how to find each issue on your site.

MistakeEffect on the agentFixHow to check
Unstable layoutElements jump while loading and the click misses. Buttons sit in different places depending on the page typeConsistent layouts, a low CLS score, fixed image dimensions and placeholdersCLS in PageSpeed Insights and Search Console, Lighthouse audit “Cumulative Layout Shift”
<div onclick> instead of <button> or <a>The element barely shows up in the structureNative elements, otherwise at least role and tabindexDevTools, Elements → Accessibility, role must be button or link
Buttons and fields without labelsIcon buttons and fields without a label have no nameDescriptive labels, link fields via for and idThe element has no “Name” in the accessibility tree
Transparent overlaysCovered elements are skippedAvoid them or make them cleanly closableClick through the page with the cookie banner and chat widget open
Heavy client-side renderingThe page is empty until JavaScript runsDeliver core content server-side or high up in the HTMLCompare source code and rendered HTML
Hover-only or mouse-only controlsMenus and drag and drop are unreachableMake them work with focus and clickUse the page with the keyboard only
Infinite scroll without pagesThe agent does not know when it is doneOffer pagination or a clear endCheck whether category pages have their own URL per page
CAPTCHA on every action, hard bot blocksLegitimate agents acting for users failUse them selectively at sensitive pointsReview the bot rules in your CDN and firewall

Google adds two more points. Clickable elements should be recognizable as clickable via cursor: pointer. Interactive elements must be visible and larger than 8 square pixels, otherwise the agent filters them out when analyzing the image.

Clean up the accessibility tree

Open Chrome DevTools, choose the Accessibility tab under Elements and click through your most important elements. Every interactive element needs a role (button, link, textbox, checkbox) and a name. If either is missing, the agent only sees an image at that point. The Lighthouse category “Agentic Browsing” checks this in the audit “agent-accessibility-tree”.

This is what the difference looks like in code.

<!-- Hard for agents: no name, no role --> <div class="btn" onclick="addToCart()"> <svg>…</svg> </div> <!-- Good: native element with a name --> <button type="button" aria-label="Add to cart"> <svg aria-hidden="true">…</svg> </button>

Forms an agent can fill in

Forms are where tasks fail most often, because every field has to be recognized correctly. These rules come from the form recommendations on web.dev and the WCAG 2.2 techniques.

  • One label per field, linked via for and id. Placeholder text disappears when typing and therefore does not replace the label.
  • Set autocomplete values, such as email, name, street-address, postal-code, username, current-password, cc-number. This tells the browser what belongs in which field.
  • Suitable field types. type="email" and type="tel" for contact details, and for card numbers and ZIP codes type="text" with inputmode="numeric" instead of type="number".
  • One name field instead of separate fields where possible, and no drop-down lists for dates.
  • Errors as text next to the field. Mark the field with aria-invalid="true" and link the message via aria-describedby. No agent recognizes a red border on its own.
  • Build custom widgets to a pattern. For choices such as size or color, the WAI-ARIA Authoring Practices offer the Combobox and Listbox patterns. A native <select> is usually the most robust option.
<label for="email">Email</label> <input id="email" name="email" type="email" autocomplete="email" required aria-describedby="email-error" aria-invalid="true"> <p id="email-error">Please enter a valid email address.</p> <label for="postcode">Postcode</label> <input id="postcode" name="postcode" type="text" inputmode="numeric" autocomplete="postal-code">

Overlays are doubly hard for agents. They cover the elements underneath, and the agent first has to work out how to close them. In the 2025 BrowserArena study, removing pop-up banners was one of the three typical failures of the agents tested, alongside CAPTCHAs. A study of deliberately placed pop-ups (ACL 2025) found that agents clicked such pop-ups in 86 % of cases on average and that their task success rate dropped by 47 %. That study looked at targeted attacks. A comparable measurement for cookie banners does not exist yet.

  1. Build the cookie banner as a dialog with the role dialog, a heading as its name and real buttons with clear text such as “Accept all” and “Reject”. The “Dialog (Modal)” pattern in the WAI-ARIA Authoring Practices shows how focus and closing work.
  2. Do not place invisible or semi-transparent layers over the content that remain after closing.
  3. Keep checkout, cart and forms free of newsletter pop-ups and chat widgets that sit on top of buttons.
  4. Check the page once with the banner open and once with it closed. Both states must be usable.

The agent must not invent consent on the user's behalf. A clearly labeled banner helps it pass the question to the person correctly or answer it as instructed.

Tune bot protection for agents

Many AI browsers run in the user's own browser and look like normal Chrome to your server. Others run in the provider's cloud on data center IPs and quickly end up in a blanket block. These cloud agents now have an identifier.

  • The ChatGPT cloud browser signs its requests with Web Bot Auth, meaning HTTP Message Signatures under RFC 9421. It sends the headers Signature, Signature-Input and Signature-Agent with the value "https://chatgpt.com". OpenAI's help explains how to allow it on Cloudflare, Akamai, HUMAN and Vercel, and says that the website decides whether to allow this traffic.
  • Since 1 July 2026, Cloudflare lists such signed agents as part of Verified Bots and distinguishes direct access from access through an intermediary.
  • For Claude in Chrome, Comet and Gemini in the local browser, the vendors document no identifier of their own. They arrive with the user's IP and browser.

So use CAPTCHAs selectively, for example at login after several failed attempts. According to Anthropic, Claude in Chrome does not solve CAPTCHAs, and ChatGPT hands over to the user. A CAPTCHA in the wrong place ends the task. The guide Bot protection and SEO explains how to set up bot protection so that it slows down attackers and lets wanted bots and customers through.

Layout, navigation and rendering

  • Load stably. Give images and ad slots fixed dimensions so nothing jumps. You measure CLS via the Core Web Vitals.
  • Same elements in the same place. The add-to-cart button should sit in the same position on all product pages.
  • Menus via click and focus. A menu that only opens on hover also needs a button with aria-expanded.
  • A clear end. For long lists, offer pages with their own URLs or a “Load more” button.
  • Content in the HTML. Product name, price and availability belong in the delivered HTML. The JavaScript crawling study shows where source code and rendered HTML diverge.

WebMCP as the next step

Removing stumbling blocks means staying out of the agent's way. WebMCP goes one step further. Your page describes its most important actions, such as search or cart, directly as tools. The agent then does not have to guess what a button does.

WebMCP is a W3C Community Group draft and not a standard. Chrome offers it as an origin trial from version 149, and Edge also runs it as an origin trial. The interface is now called document.modelContext. For forms there is a declarative variant with the attributes toolname and tooldescription on the <form>. By default, the user still has to click submit. The first major agent to use such tools is the built-in browser of the ChatGPT desktop app, since 31 August 2026; ChatGPT's Chrome extension does not.

<!-- Declarative: an existing form becomes a tool --> <form action="/search" toolname="product_search" tooldescription="Searches the shop for products by keyword"> <label for="q">Search term</label> <input id="q" name="q" type="search"> <button type="submit">Search</button> </form>

The guide WebMCP explains the setup, the imperative variant and how to measure agent calls.

How much does it matter?

The A11y-CUA study by researchers at UC Berkeley and the University of Michigan, presented at CHI 2026, had a current computer-use agent complete 60 everyday tasks while changing the mode of interaction. In the default mode, which relies on sight and mouse, it completed 78.3 % of tasks. Using only the keyboard, the same path screen readers and the accessibility tree use, it managed 41.67 %, and with a screen magnifier 28.3 %.

The success rate almost halves as soon as the agent has to rely on the structure. Clean markup spares it the guesswork via screenshot, and that often decides whether the task succeeds.

Test, don't guess

  1. Run through with real agents. The agent in Perplexity Comet is free. Let it walk your most important paths, such as search, cart, booking and inquiry. Test several agents, for example Claude in Chrome and ChatGPT as well, because they behave differently.
  2. Set up a fixed test case. Build the most important tasks into a repeatable, automated test. That way you notice when a release or a new feature breaks a path for agents.
  3. Use Lighthouse “Agentic Browsing”. The category is available from Chrome 150. It checks the accessibility tree for agents, WebMCP, layout stability, llms.txt and, since Lighthouse 13.5, a file for Agent Resource Discovery. It is experimental and shows the share of passed audits instead of a score from 0 to 100.
  4. Look at the accessibility tree. In Chrome DevTools under Elements → Accessibility you see the structure the agent encounters and spot missing names or roles.

Common mistakes

  • The team optimizes for one AI browser that is discontinued or rebuilt shortly afterwards.
  • The cookie banner sits as an overlay over the checkout.
  • Variant selection such as size or color is a custom widget without roles.
  • Form errors are shown only as a color on the field.
  • The firewall blocks data center IPs across the board and also hits the cloud agents of real customers.
  • After a relaunch, labels that existed before are missing and nobody checks.

The same effort pays off several times

Almost all of these improvements, semantic HTML, clear labels, content in the HTML and a low CLS score, also make your site better for screen readers and search engines. You already track CLS in PageSpeed Insights and Search Console. You are strengthening foundations that pay off across several channels.

Frequently asked questions

What is an AI browser?

An AI browser is a browser with a built-in agent that operates websites on the user's behalf, meaning it searches, clicks and fills in forms. Examples are Perplexity Comet, Claude in Chrome, Gemini in Chrome and the browser in ChatGPT.

Do I need a separate version of my website for AI browsers?

No. AI browsers operate the same page as people. If structure, labels and layout are clean, people, screen readers and agents all get along.

Do AI browsers respect robots.txt?

Agents acting on behalf of a user treat robots.txt differently from crawlers. OpenAI writes about ChatGPT-User that robots.txt rules may not apply to user-initiated actions. Access is easier to control through bot protection, for example via the ChatGPT cloud browser's signature.

How do I spot AI browsers in my logs?

Agents in the user's browser are hard to tell apart from normal Chrome. The ChatGPT cloud browser can be recognized by its signature with the Signature-Agent header. The guide Log file analysis has more.

Do I need to implement WebMCP now?

WebMCP is a draft and runs as an origin trial. For most websites it pays off more to fix the stumbling blocks in this guide first. If you want to test early, start with the declarative variant on an existing search form.

In its weekly full crawl, searchVIU renders every page with Chrome and shows what is on it after rendering. The WebMCP Audit shows for each URL which forms and tools an agent finds. More on the Agent Readiness page.

Request a demo

Sources

Retrieved on November 3, 2026. If something is out of date or missing, let us know.

  1. Google web.dev, Recommendations for an agent-friendly website (AI agent site UX): https://web.dev/articles/ai-agent-site-ux · April 2026
  2. Anthropic, Browser use tool: https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool · Version browser_toolset_20260801
  3. Anthropic Help, Use Claude in Chrome safely: https://support.claude.com/en/articles/12902428-use-claude-in-chrome-safely · retrieved November 3, 2026
  4. Anthropic Help, Get started with Claude in Chrome: https://support.claude.com/en/articles/12012173-get-started-with-claude-in-chrome · retrieved November 3, 2026
  5. OpenAI Help, Using Cloud browser in ChatGPT: https://help.openai.com/en/articles/20001280-using-cloud-browser-in-chatgpt · retrieved November 3, 2026
  6. OpenAI Help, ChatGPT Work's Cloud browser allowlisting: https://help.openai.com/en/articles/11845367-chatgpt-works-cloud-browser-allowlisting · retrieved November 3, 2026
  7. OpenAI Help, Using site tools in the ChatGPT desktop app: https://help.openai.com/en/articles/20001423-using-site-tools-in-the-chatgpt-desktop-app · August 31, 2026
  8. OpenAI Help, Evolving Atlas into ChatGPT for browser-based agentic work: https://help.openai.com/en/articles/20001371-evolving-atlas-into-chatgpt-for-browser-based-agentic-work · discontinued on August 9, 2026
  9. OpenAI, Overview of OpenAI Crawlers: https://developers.openai.com/api/docs/bots · retrieved November 3, 2026
  10. Google Help, Gemini in Chrome auto browse: https://support.google.com/gemini/answer/16821166 · retrieved November 3, 2026
  11. Perplexity Help, Comet Assistant panel: https://www.perplexity.ai/help-center/comet/en/articles/11734688-assistant-panel · retrieved November 3, 2026
  12. Cloudflare Docs, Signed agents: https://developers.cloudflare.com/bots/concepts/bot/signed-agents/ · updated November 2, 2026
  13. Chrome for Developers, Lighthouse Agentic Browsing: https://developer.chrome.com/docs/lighthouse/agentic-browsing · retrieved November 3, 2026
  14. Chrome for Developers, WebMCP declarative API: https://developer.chrome.com/docs/ai/webmcp/declarative-api · updated September 25, 2026
  15. W3C Web Machine Learning Community Group, WebMCP: https://webmachinelearning.github.io/webmcp/ · Draft Community Group Report, November 2, 2026
  16. web.dev, Sign-in form best practices: https://web.dev/articles/sign-in-form-best-practices
  17. web.dev, Payment and address form best practices: https://web.dev/articles/payment-and-address-form-best-practices
  18. W3C WAI, ARIA Authoring Practices, Dialog (Modal) Pattern: https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
  19. W3C WAI, WCAG 2.2 Technique ARIA21 (aria-invalid): https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA21
  20. Gubbi Mohanbabu et al., A11y-CUA, CHI 2026: https://arxiv.org/abs/2602.09310 · February 10, 2026
  21. Zhang, Yu, Yang, Attacking Vision-Language Computer Agents via Pop-ups, ACL 2025: https://arxiv.org/abs/2411.02391 · May 24, 2025
  22. BrowserArena, arXiv 2510.02418: https://arxiv.org/abs/2510.02418 · October 2025