Blog
Tools
עבריתLet’s talk

Agentic Browsing: why did the form fail after passing Lighthouse?

Agentic Browsing means an AI agent operating a browser to complete a task for a user, such as submitting a form or booking. It is also an experimental Google Lighthouse category (introduced in 13.3, requiring Chrome 150+) that checks the accessibility tree, CLS, llms.txt and WebMCP, reporting a pass ratio rather than a 0 to 100 score.

Follow us on GoogleFollow on LinkedIn

TL;DR

Download the article as Markdown ↓

  • The original failure: ␠SEO␠ (␠ denotes one space) passed browser length validation but was rejected after the server trimmed spaces. The form gave no useful correction, while Lighthouse still showed 2/2.
  • The homepage scored 2/2 in Lighthouse and 20/100 in a September 10 Cloudflare scan; on October 12 the homepage and article scored 3/3 after llms.txt went live. Neither Lighthouse run submitted a form.
  • Matching client and server validation, an associated field error and restored focus fixed the recovery path; one corrected inquiry reached the local test receiver.
  • Readiness scans, deterministic browser tests and agent attempts answer different questions. Verify the destination record, not only the click or success message.
  • One failed attempt and one successful retest are case observations, not a generalizable agent completion rate.

The original finding: the audit passed, the form failed

In the local test on 10 September 2026, a field with minlength="5" accepted ␠SEO␠ (␠ means one space: three letters and two spaces) because the browser counted the spaces. The server trimmed them, rejected the inquiry and showed a generic failure message without correction guidance. Codex ran the test on a local copy with a test receiver.

Lighthouse Agentic Browsing · ExperimentalDocumentation and test details
Feature
Lighthouse Agentic Browsing
Vendor
Google
Documented status
Experimental
Version in the recorded test
Lighthouse 13.4.1 / Chrome 152
Recorded test date
Follow-up audit
· Lighthouse 13.4.1 / Chrome 154 · 3/3 · Public homepage and article; llms.txt check became applicable. No form was submitted.
Documentation last checked
Official documentation
Lighthouse Agentic Browsing ↗

Chrome documentation was checked on 12 October 2026. The historical 10 September Lighthouse run used Chrome 152. An independent follow-up on the two live public pages on 12 October used Lighthouse 13.4.1 and Chrome 154. The local form experiment was not repeated by Lighthouse.

What changed
  • : Added a card separating the documented feature status from the historical test version.
  • : Added the 3/3 follow-up Lighthouse results after /llms.txt went live, kept the September 2/2 record, distinguished scans from task completion and repaired the archived scanner citation. On 12 October the same article was also restructured around the form defect, test layers, verified completion and Chrome sources.
The article in 15 seconds: A summary separating the September 10, 2026 homepage audit scores from verification of a task in its destination system.
Transcript
  1. Agentic Browsing: An audit score is not the finish line
  2. Homepage · 10 Sep 2026: Lighthouse: 2/2 Cloudflare: 20/100
  3. What can we learn?: Same site. Different checks.
  4. How do we verify success?: Inspect the result in the destination system.
  5. Task verification: The right record. Correct content and count.
  6. Full article: nirlevi.com
Download video ↓

12 October 2026 update: After llms.txt was published, Lighthouse 13.4.1 reported 3/3 for the homepage and article. The October reports and September local case remain available below with their respective dates and conditions.

How this was tested: On 10 September 2026, Codex ran the controlled experiment on a local build using Chrome 152, fictitious inputs and a test receiver instead of email. The case was chosen after reading the code. The live-page scan and local case are documented separately; see the full form case and the working checklist.

Where to start testing a browser agent on your site

I recommend starting with one task whose outcome you can inspect. For an inquiry form, check that visitors can recover from an error and that a valid inquiry reaches the receiving system.

I recommend starting with the action that matters most to your customer. For SaaS, that might be trial registration; for services, requesting a quote.

Define the finish line first. “The agent clicked submit” records an action. “The receiving system contains the correct inquiry” defines a checkable result.

The work also helps human visitors. An unclear field or unhelpful error message makes recovery harder for anyone using the form.

WebsiteFirst task to testVerify
SaaSTrial registration or demo requestAn account or request with the right details
ServicesInvalid inquiry input followed by correctionOne accepted inquiry after recovery
CommerceChoose options, use the cart and place a test orderCorrect item, price and quantity
Content and documentationFind an answer or download a documentThe right document and supported answer

Lighthouse: 2/2 in September, 3/3 in October; Cloudflare 20/100

The public homepage at https://nirlevi.com/ was also audited directly. Agentic Browsing returned 2/2, with CLS measuring 0.

Lighthouse report for nirlevi.com showing 2/2 and both passing audits
Live homepage, 10 September 2026: Lighthouse 13.4.1, Chrome 152, mobile emulation. The report identifies nirlevi.com. Open full size ↗

The accessibility tree passed. WebMCP checks and llms.txt were N/A. Inspect the complete report and raw JSON.

Other categories returned Performance 75, Accessibility 97, Best Practices 100 and SEO 100. These are homepage lab results, not measurements of this article.

Follow-up, 12 October 2026: The new Lighthouse 13.4.1 record shows 3/3 for both the homepage and this article. The accessibility-tree audit still passed and CLS remained 0. Because /llms.txt is now published, its audit changed from N/A to a pass. The three WebMCP checks remained N/A.

Date and pageLighthousellms.txtWhat the result establishes
10 Sep 2026 · homepage2/2N/A (file absent)Accessibility tree and CLS passed; no form submission
12 Oct 2026 · homepage3/3PassA further audit became applicable; task completion untested
12 Oct 2026 · article3/3PassPublic-page readiness check, not an inquiry test

The move from 2/2 to 3/3 changed the denominator: a new check became applicable after publishing the file. The first two checks were still good.

The 12 October 2026 follow-up reports are available for inspection: homepage HTML and JSON; article HTML and JSON. These were collected using Lighthouse 13.4.1 and Chrome 154 against the live pages; they are not form-submission tests.

The same URL received 20/100, at Basic Web Presence, in the Cloudflare Agent Readiness scan. This is the archived 10 September result, not a new Cloudflare score from October.

Cloudflare showing 20 out of 100 for nirlevi.com
Live-site scan, 10 September 2026. Commerce was not checked; results reflect the displayed scan configuration. Open full size ↗

Passing checks by scan category

Scan categoryResultWhat it means here
Discoverability2/4robots.txt and sitemap passed; dedicated discovery headers and DNS-AID were absent
Content0/1A Markdown request returned HTML
Bot access control1/2Wildcard rules applied; Content Signals were absent
API, auth, MCP and skill discovery0/8The tested discovery interfaces were not found
CommerceNot checkedThis is neither a passing nor failing payment test
Homepage scan from 10 September 2026. Each bar shows the share of checks passed in that category. Commerce was not checked. These bars do not reconstruct the weighted 20/100 score. Scan record ↗

I would not turn the tool’s 12 recommendations into an automatic development backlog. First decide which capabilities this site should provide.

An API catalog adds little without a public API. A useful form error, on the other hand, immediately helps a visitor recover.

The scan observation record preserves the displayed results. The local recovery experiment follows, with reproducible input and a verified repair.

The case: rejected input with no useful explanation

The inquiry form on this site had a small mismatch between browser and server validation. The input was ␠SEO␠: the symbol ␠ denotes one space before and after the three letters.

The browser required minlength="5", which that value satisfied. The server trimmed the outer spaces, counted three characters and rejected it.

Rejecting the request was correct. The defect was the explanation: the form said sending was unconfirmed and suggested retrying or emailing directly.

Hebrew inquiry form showing SEO and a generic unconfirmed-send message
Before: the Hebrew message at the bottom gives no indication that the request is too short. Original local reproduction. Open full size ↗

Retrying unchanged input cannot solve this. The visitor needs to know which field to correct, and an agent needs that same information.

This edge case was selected after inspecting the code. It exposes an existing recovery defect; it does not measure how often visitors encounter it.

Meanwhile, Lighthouse returned 2/2 on the same code: the accessibility tree passed and CLS measured 0. Four additional checks were N/A.

Original Lighthouse report showing 2/2, a passing accessibility tree and CLS of zero
The baseline report passed both applicable checks without exercising the form’s error path. Open full size ↗

Inspect the complete baseline report or its raw JSON. Other categories remain visible as measured in the local environment.

The fix: identify the error and let the visitor recover

The fix keeps the server rule and applies it in the browser too. Short input stops at the field before submission.

  • Browser and server share the same message validation function.
  • The field receives aria-invalid and an explanation connected with aria-describedby.
  • Focus returns to that field, while existing entries remain intact.
  • The interface shows success only after the server confirms acceptance.
Focused Hebrew message field with a specific instruction to enter at least five characters
After: the error appears beside the field. The same invalid input produced no POST request. Open full size ↗

In the retest, invalid input stopped in the browser. Replacing it with “בדיקת נראות האתר בחיפוש” produced one accepted inquiry in the test receiver.

StageObservationWhat it establishes
Before the fix5 browser characters, 3 after trimming; generic sending errorNo useful recovery instruction
After the fix, identical inputAssociated field error, focus and 0 POST requestsInvalid input can be corrected before submission
After correcting the messageOne POST, HTTP 200 and one record with matching contentThe local receiver accepted the inquiry

The completion evidence is the accepted record, alongside the request log. A success message alone would not establish that.

The follow-up report stayed at 2/2. What changed was the ability to correct the form and continue.

I would keep this case in the form’s regression checks. It exercises a recovery path that the initial page audit never entered.

Measure verified completion, not just a passing audit

An operational completion measure is the number of tasks verified in the destination system divided by the number of documented attempts. In the controlled September 10 case, the invalid input yielded 0 accepted inquiries from one attempt. After the correction, one corrected inquiry was accepted from one attempt in the local receiver. Each is a single case observation, not an estimated success rate for browser agents.

Testing layerWhat it can establishEvidence from this case
Lighthouse readinessPage structure, layout stability, llms.txt and applicable WebMCP checksMeasured: 2/2 in September; 3/3 on live public pages in October, without submitting the form
Deterministic browser test (such as Playwright)A defined input/error/recovery/submit flow behaves consistentlyRecommended regression layer; no separate historical Playwright run is claimed here
Browser-agent attempt + result verificationThe agent completed the steps and the destination record matches the requestCodex-assisted controlled local test accepted one corrected record; repeat across tasks and agents to estimate reliability

To estimate a meaningful completion rate, define tasks, conditions, model/browser versions and repeated attempts first. Count only outcomes checked at their destination. Chrome's evals guidance explains why AI-driven outcomes need repetition; the accepted test inquiry here supports only this case.

The audit checklist: concrete fixes and the next test

Lighthouse helps identify technical obstacles. Open the finding, repair its cause, then exercise the task that depends on it.

Chrome’s documentation describes an experimental category requiring Chrome 150 or later. Its fraction counts passing checks; it is not a weighted 0 to 100 score.

1. Accessibility tree: names, roles and fields

Lighthouse 13.4.1 groups 33 accessibility rules into its tree check. These include button names, field labels and valid ARIA roles.

For an unnamed control, use a real button with clear text. An icon-only button needs an accessible name that explains its action.

Connect a label with matching for and id values, or wrap the field inside label. Both approaches are valid.

HTML example: a field in an error state, with a connected explanation

<label for="request">What should we review?</label>
<textarea id="request" name="goal"
  aria-invalid="true" aria-describedby="request-error"></textarea>
<p id="request-error">Write a few words about your request.</p>

Application code must clear the error state after correction and manage focus where needed. This example shows the error state only.

Passing does not establish: that the visitor can correct invalid input or that the form saves it. Trigger an error and test recovery.

2. CLS: keep the action in place

CLS measures unexpected layout shifts. An image without reserved space or a late-loading banner can move a button during interaction.

Set image dimensions or aspect-ratio, and reserve space for delayed content. These are established CLS fixes.

Passing does not establish: stability after selecting a plan, loading a price or displaying an error. Exercise those states too.

3. llms.txt: distinguish missing, malformed and irrelevant

The file is optional. Chrome’s documentation says a 404 is N/A, while a server failure is flagged.

For a returned file, version 13.4.1’s implementation also checks for an H1, a Markdown link and at least 50 characters.

What changed here: By 12 October 2026, nirlevi.com/llms.txt was live and passed the Lighthouse 13.4.1 checks (H1, Markdown link and at least 50 characters). The public-page audit then reported 3/3 rather than 2/2, without measuring task completion.

Basic structure, if you choose to maintain this file

# Example company

Product documentation and support for customers.

## Documentation
- [Getting started](https://example.com/docs): Setup instructions.

If you provide it, check both the server response and content. Creating a file simply to replace N/A with a pass is a weak priority.

Passing does not establish: that an agent read it, relied on it or completed a task. Test the system you intend to support.

4. WebMCP: registration, form coverage and schema validity

WebMCP exposes structured actions to a supporting agent. Availability search, for example, can accept defined inputs and return a clear result.

CheckInspect and repairStill exercise
Tool registrationRegistration timing; a name and description that explain the actionThe supporting consumer discovers and selects the right tool
Form coverageThe intended form is correctly exposed through the declarative implementationInputs map to the correct business fields
Schema validityInput types and required fields match the action’s contractInvalid input has a useful error; valid output is saved

Current JavaScript registration uses document.modelContext.registerTool. Feature-detect support and follow the current API documentation.

For HTML integration, see the declarative API. Define the action before adding tool names to forms.

WebMCP audits require the relevant trial setup. In the tested release they have zero weight in the fraction; this local report marked them N/A.

Passing does not establish: authorization, acceptance by the destination system or duplicate prevention. Test each in the action you expose.

Agent Readiness vs Agentic Browsing vs a task test

To choose the next check, I would start with what remains unknown: can the agent access the page, discover the capability it needs, or complete the task? Each question calls for a different test.

QuestionLighthouse Agentic BrowsingCloudflare Agent ReadinessTask test
12 Oct 2026 follow-up3/3 on the homepage and article after llms.txt was publishedNot rescanned; 20/100 is from 10 SeptemberNo inquiry was attempted in the Lighthouse rerun
Unit testedA page in the chosen audit modeA URL and discovery resourcesA predefined journey and outcome
Main purposeStructure, stability and WebMCP integrationDiscovery mechanisms and protocol supportWhether the user achieves the intended result
Accessibility tree and CLSDirect auditsNot the measures in its scan summaryObserve their effect during interaction
robots.txt and sitemapOutside the Agentic categoryDiscovery checksCheck only if relevant to the task
Markdownllms.txt checking is not format negotiationTests Accept: text/markdown responsesCheck the content and output the task requires
WebMCPRegistration, coverage and schema checks under supported conditionsCapability discoveryInvoke an action with a supporting consumer
Errors and retriesA navigation audit does not submit the formA standards scan does not complete an inquiryCorrect input; check acceptance and duplicates
Results recorded on September 10, 20262/2 on the live homepage20/100 in the live scanLocal defect fixed; one inquiry accepted
Closure conditionTechnical finding resolvedDesired capability is available and discoverableCorrect output exists in the destination system

The results complement each other. A low Cloudflare score does not invalidate the passing Lighthouse checks: the tools examine different capabilities. Use the table to choose the check that answers your question.

How to run a test you can repeat

Open the exact page in Chrome, enter DevTools and select Lighthouse. Enable Agentic Browsing, run the audit and save the report.

If the category is absent, check your Chrome and Lighthouse versions. The CLI is another option, used for this example.

Export JSON and HTML; replace the URL with your page

npx lighthouse@13.4.1 https://example.com/ \
  --only-categories=agentic-browsing \
  --output=json --output=html --output-path=./audit

Record the URL, date, versions, authentication state and emulated device. Otherwise, changed conditions can be mistaken for the effect of a repair.

  • Submit valid input and inspect the record in the receiving system.
  • Enter invalid input: is the required correction clear, and are the other entries retained?
  • Correct and resubmit: does the exact requested result exist?
  • Test a retry after a delay or disconnection, checking for duplicate outcomes.
  • Also test dropdowns/date pickers, slow responses and network interruptions; ensure retries don't create duplicate outcomes.
  • If a CAPTCHA or human-verification step blocks the run, record it as BLOCKED with the reason, not as a confirmed agent task failure.
  • For WebMCP actions, inspect tool exposure, input and results in Chrome DevTools for agents and repeat the evaluation.

Use a test environment or coordinated test data for commercial forms. A booking test should produce a test booking without an accidental charge.

Chrome’s agent-ready toolkit can help choose which scenarios to run after each change and where to include an agent.

Is the defect in the website or the testing tool?

An agent failure starts an investigation. First check whether the tool supports the action and whether its instruction matched the interface.

FailureInspectClose when
Field not foundAccessible name, label, loading state and the tool instructionThe correct field is identified
Submission rejectedServer response and the visible field explanationCorrection and resubmission preserve other entries
Success shown without an outcomeServer response and destination recordThe correct content exists in the receiving system
A retry creates two actionsSubmission locking and server-side duplicate preventionRetrying does not create a duplicate result
Agent cannot access a downloadTool download support and whether the file actually existsA missing file is distinguished from a tool access limitation

The form mismatch appeared in both the code and the interface. That supports a site fix. A failed tool instruction alone would not.

How does this relate to GEO, and what comes first?

Agentic Browsing concerns completing actions. GEO concerns visibility in AI answers. They address different goals, even when they involve the same website.

Google Search says its AI features need no special files and that it ignores llms.txt. An audit pass promises neither a mention nor a ranking.

My recommended order: choose a valuable action, fix its obstacles, then decide whether WebMCP adds something useful to that path.

Use the test template to hand development an actionable finding: input, defect, repair and acceptance criteria. For answer visibility, use the AI measurement guide.

Frequently asked questions

How do you verify that the agent actually completed the task?

Inspect the destination record, test booking or downloaded file, including its content and count. Then check that the agent received a matching confirmation. A screenshot of a click or success message cannot replace the actual outcome.

How did Lighthouse reach 3/3 when Cloudflare showed 20/100?

The tools measure different things, and the dates differ. On 10 September Lighthouse reported 2/2 and Cloudflare showed 20/100. On 12 October Lighthouse reported 3/3 after llms.txt was added; the Cloudflare score shown here is still the September observation. Neither scan proves a successful form submission, which was investigated separately in a local test.

Does an agent need WebMCP to use a website?

No. A browser-capable agent can operate ordinary fields, buttons and links. WebMCP adds a structured action interface for supporting consumers. Implement it when you have a defined action and a benefit you can test.

Does a content website need task testing?

Yes, when readers need to find a document, download a file or locate specific information. For a reading-only site, define a retrieval and comprehension task. Do not invent a checkout or public API just to satisfy a score.

How should you test login or payment flows?

Use a test account with defined permissions and a payment sandbox. Record where human participation is required. A CAPTCHA or confirmation step is not automatically a defect because the agent must stop and hand control back.

Should you fix every failed Agent Readiness check?

No. Start with the user’s need and the capabilities the site actually offers. An API catalog adds little when there is no public API. Content-use preferences belong to the site owner; do not copy them merely to improve a score.

When should you repeat the test?

After changing forms, navigation, input validation, consent banners or components that move the layout. Repeat the same scenario against the same acceptance criteria. Browser and agent updates also justify retesting important journeys.

Who should own the findings?

Product or the site owner defines success; developers repair behavior and validation; QA checks completion and recovery. SEO helps select journeys tied to customer demand. Assign an owner and a clear closure condition to each finding.

How do you test whether your site works for AI browser agents?

Choose a real task, run a Lighthouse audit and a deterministic browser check with valid and invalid inputs, then attempt it with an agent. Verify the actual destination record, document BLOCKED states and repeat under known conditions. Lighthouse alone cannot confirm task completion.

Sources & further reading

Plan a task-completion audit for your website
Nir Levi

About the author

Nir Levi has worked in SEO since 2008. He founded Godrank in 2015 and Madrank in 2018, and advises SaaS companies, startups and large organizations on SEO, GEO and AEO. His approach starts with the business problem and available evidence, then develops priorities, tasks for the team and measurement suited to the question being investigated.

A question about your website?

Share your site and what is getting in the way. We’ll work out what to check.

Let’s talk
Let’s chat on WhatsApp