Skip to main content
The AI Visibility Health Check measures how ready a site is to be discovered, understood, cited, and used by search engines and AI assistants. It combines technical crawlability, structured machine-readable signals, content quality, and agent-readiness checks into a practical view that teams can act on. The methodology is designed around two separate outputs:
OutputWhat it means
Obvlo AI Visibility ScoreA weighted 0-100 readiness score focused on commercial AI visibility.
Agentic Browsing parityA separate pass-ratio style signal for applicable agent-readiness checks.

Overview

The health check audits a submitted page and its domain across 3 categories and 23 individual check results. Some checks are informational and do not affect the 0-100 score.
CategoryChecksRaw maxDisplayed weight
InfrastructureSSL, Sitemap, Robots.txt, Indexability, AI Crawler Accessibility, PageSpeed Performance, Layout Stability, PageSpeed Accessibility, PageSpeed Best Practices, PageSpeed SEO4525
AI readinessStructured Data, FAQ Markup, WebMCP Schema Validity, llms.txt*, Registered WebMCP Tools*, Forms Missing Declarative WebMCP*2225
Page analysisSemantic HTML, Content Structure, Content Depth, Content Freshness, Citation Readiness, Internal Linking, Accessibility for Agents6850
Total23 check results135100
*These checks are informational or non-scoring. They can still appear in Agentic Browsing parity when the implementation marks the signal as applicable.

How the score works

Each scored check produces a raw score. Raw scores are summed within their category, then normalized to that category’s displayed weight. This keeps the headline score on a stable 0-100 scale even as individual check weights change. The category weights are:
CategoryScore weight
Infrastructure25 points
AI readiness25 points
Page analysis50 points
For example, an Infrastructure raw score of 36 out of 45 becomes round((36 / 45) * 25) = 20 of the 25 Infrastructure points. The three normalized category scores are then added together and capped at 100. Individual check statuses usually follow these thresholds:
StatusThreshold
PassAt least 90% of the check’s max score
WarnAt least 50%, but below pass
FailBelow 50%
InfoInformational signal with no score impact
Some checks have explicit outcome-based statuses where the implementation needs to distinguish blocked, unavailable, or not-applicable results.

How we fetch pages

Most checks need the submitted page’s HTML. Obvlo uses a two-layer fetch model:
  1. Direct HTTPS fetch with realistic browser headers. This mirrors the kind of request many search and AI crawlers send.
  2. Residential proxy fallback when direct fetches are blocked by WAF or bot-protection systems such as Cloudflare or Sucuri.
When fallback is triggered, the result is flagged. If both the direct request and fallback fail, Obvlo reports the page as blocked because crawlers and agents are unlikely to reach the content reliably. Infrastructure checks can be cached briefly at domain level, while page-level analysis uses the submitted entry URL so the result reflects the actual page the user asked to test.

Infrastructure

Infrastructure checks verify whether crawlers and agents can reach, trust, render, and revisit the page reliably.

1. SSL certificate

Max score: 3 This check establishes a TLS connection to the domain on port 443 and reads the certificate expiry and issuer chain.
OutcomeScoreStatus
Valid certificate, at least 14 days until expiry3Pass
Valid certificate, fewer than 14 days until expiry2Warn
Certificate expired0Fail
Incomplete certificate chain0Fail
No certificate or connection refused0Fail
HTTPS is a prerequisite for modern search and AI crawler access. A missing, expired, or incomplete certificate can make a site unreachable to automated clients even when it appears to load in a human browser. Incomplete certificate chains matter because browsers often cache or fetch missing intermediate certificates automatically. Standard crawler clients often do not. The fix is to configure the server or CDN to present the full certificate chain.

2. Sitemap

Max score: 4 This check probes common sitemap locations, then falls back to sitemap directives inside robots.txt:
  • /sitemap.xml
  • /sitemap_index.xml
  • /wp-sitemap.xml
  • Sitemap: entries in robots.txt
OutcomeScoreStatus
Valid XML sitemap found4Pass
Blocked by WAF or bot protection0Warn
No sitemap found0Fail
A sitemap gives crawlers a machine-readable index of the pages a site wants discovered. Without one, crawlers must rely on links alone, which can miss new, deep, or orphaned pages.

3. Robots.txt

Max score: 4 This check fetches /robots.txt and evaluates validity, sitemap references, blanket blocking, and AI crawler directives.
SignalScore impact
Valid robots.txt with a sitemap reference+2
AI directives present and no search-mode bots blocked+2
AI directives present but some search-mode bots blocked+1
No AI-specific directives+0
Blanket Disallow: /Fails the check
Obvlo distinguishes search-mode bots from training-mode bots:
CategoryExamplesBlocking impact
Search-mode botsOAI-SearchBot, PerplexityBot, BingbotPenalized because content may lose AI answer visibility.
Training-mode botsGPTBot, ChatGPT-User, Google-Extended, ClaudeBotTreated as a legitimate content-protection choice.
Robots.txt is the gatekeeper for automated access. A forgotten staging rule or overbroad AI-blocking policy can quietly remove a site from AI discovery.

4. Indexability and snippet eligibility

Max score: 4 This check scans the entry page for directives that prevent indexing or prevent the page from being shown with snippets. It checks:
  • <meta name="robots">
  • <meta name="googlebot">
  • X-Robots-Tag response headers
  • data-nosnippet attributes in page content
OutcomeScoreStatus
Indexable, no snippet restrictions4Pass
data-nosnippet present on some content3Warn
Restrictive max-snippet from 1 to 49 characters2Warn
nosnippet or max-snippet:00Fail
noindex or none0Fail
WAF or SSL issue prevents verification0Warn
Google’s AI features require pages to be indexed and eligible for snippets. These directives are easy to leave behind from staging builds, CMS defaults, or privacy settings, and they can cap visibility regardless of content quality.

5. AI crawler accessibility

Max score: 5 This check tests whether the submitted page is reachable by a simple HTTP client similar to those used by many AI crawlers.
OutcomeScoreStatus
Direct fetch returns valid HTML content larger than 5 KB5Pass
Direct fetch returns HTTP 200 but a small likely challenge page3Warn
Direct fetch is blocked, but headless fallback recovers the page2Warn
Direct fetch is blocked and fallback cannot recover the page0Fail
Direct fetch returns a non-blocked error such as 404 or 5000Fail
This check separates pages that are available to browsers from pages that are available to programmatic clients. If a site only works after JavaScript challenges or residential fallback, many AI crawlers may never see the real content.

6. PageSpeed and layout stability

Max score: 25 total, split across 5 sub-checks Obvlo runs the submitted page through the Google PageSpeed Insights API in mobile mode. Four Lighthouse categories are scored, and the Performance response also provides the Cumulative Layout Shift signal used for Layout Stability.
Sub-checkSourceMax score
PageSpeed PerformanceLighthouse Performance score5
Layout StabilityLighthouse Cumulative Layout Shift audit5
PageSpeed AccessibilityLighthouse Accessibility score5
PageSpeed Best PracticesLighthouse Best Practices score5
PageSpeed SEOLighthouse SEO score5
For the four Lighthouse category scores, percentages are mapped to 0-5 points:
Lighthouse scoreMapped scoreStatus
90-1005Pass
50-893-4Warn
20-491-2Fail
0-190Fail
If a PageSpeed category request fails, the check returns a warning result worth 2 out of 5 rather than failing the whole health check. Layout Stability maps the Lighthouse Cumulative Layout Shift audit score to 0-5 points. A stable layout helps agents click and type into intended elements reliably, because buttons and fields are less likely to move between detection and interaction.

AI readiness

AI readiness checks evaluate whether the page provides structured signals that help AI systems understand content, extract answers, and identify agent-usable actions.

7. Structured data

Max score: 12 This check extracts JSON-LD structured data from the homepage and the submitted entry page. Schema types are grouped into site-level and page-level signals.
GroupSchema types scoredPurpose
Site-levelOrganization, LocalBusiness, Hotel, LodgingBusiness, WebSite, WebPageEstablishes entity identity.
Page-levelArticle, BlogPosting, NewsArticle, HowTo, FAQPage, BreadcrumbList, TouristDestination, Event, Product, ReviewDescribes the page content type.
ConditionScore
2 or more site-level types6
1 site-level type4
2 or more page-level types6
1 page-level type4
No structured data0
Structured data is not a special prerequisite for Google’s AI features, but it does help with rich results and entity understanding. It is especially useful for non-Google AI engines and travel or hospitality pages where business, location, property, event, review, and article entities need to be unambiguous.

8. FAQ markup

Max score: 6 This check looks for machine-readable FAQ schema and visible FAQ-style HTML.
OutcomeScoreStatus
FAQPage JSON-LD found6Pass
FAQ-style HTML found without schema3Warn
No FAQ content or schema0Fail
FAQ-formatted content gives AI assistants liftable question-and-answer units. Google has deprecated FAQ rich results for most sites, so this check has a moderate weight. The broader value is in clear, question-led content that can be extracted and cited.

9. llms.txt

Max score: 0 This check requests /llms.txt and, when present, also checks for /llms-full.txt.
OutcomeScoreStatus
llms.txt found0Info
llms.txt and llms-full.txt found0Info
llms.txt missing0Info, not applicable
Retrieval blocked or server error0Warn
The file is treated as optional because evidence of broad crawler adoption is still mixed and Google does not require special AI files. Missing llms.txt does not reduce the AI Visibility Score. Retrieval failures can still produce a warning because they may indicate that machine-readable resources are not consistently reachable.

10. Registered WebMCP tools

Max score: 0 This informational check looks for WebMCP-style tool registration signals:
  • Declarative elements with a toolname attribute
  • Imperative calls to document.modelContext.registerTool(...)
Registered tools help capable agents understand which site actions exist, but the signal is experimental and currently does not affect the 0-100 score.

11. Forms missing declarative WebMCP

Max score: 0 This informational check counts page forms and whether each form includes both:
  • toolname
  • tooldescription
If the page has no forms, the signal is not applicable. If forms exist but lack complete declarative WebMCP metadata, the result explains how many are missing it. This does not affect the AI Visibility Score, but it helps teams identify where agent-readable form metadata could improve future interaction readiness.

12. WebMCP schema validity

Max score: 4 This scored check validates whether WebMCP-style form metadata is complete enough for agents to understand.
OutcomeScoreStatus
Valid WebMCP tool forms found4Pass
No forms found4Pass
Plain forms found but no WebMCP tool metadata2Warn
Metadata is usable but has warnings2Warn
Blocking metadata issues found0Fail
Page cannot be fetched for validation0Warn
Blocking issues include a tool form with toolname but no tooldescription, a tool form with tooldescription but no toolname, or user-supplied fields in a tool form without a name attribute. Warnings include named fields that lack a label or toolparamdescription. This check is scored because incomplete action metadata can make agent-operated forms unreliable.

Page analysis

Page analysis checks evaluate the actual content and HTML structure that determine whether AI systems can select, summarize, cite, and operate the page. Where possible, these checks focus on the primary content area rather than site chrome such as headers, navigation, and footers.

13. Semantic HTML and meta

Max score: 10 This check evaluates page structure and metadata signals.
AspectMaxWhat is checked
Semantic elements3Presence of elements such as <article>, <main>, <section>, <nav>, <aside>, <header>, and <footer>.
Title and meta description2Title exists and is no more than 70 characters; meta description is 50-160 characters.
Canonical URL1<link rel="canonical"> is present.
Open Graph and Twitter cards2At least three of og:title, og:description, og:image, and twitter:card.
Language declaration1lang attribute on the <html> element.
ARIA landmarks1Explicit landmark roles or implicit landmarks such as <main>.
Semantic markup helps AI systems identify primary content, navigation, supporting sections, and page summaries instead of treating the page as one undifferentiated text block.

14. Content structure

Max score: 12 This check evaluates how well the content is organized for fragment extraction.
AspectMaxCriteria
Heading hierarchy3Single H1, no skipped heading levels, descriptive heading text.
Q&A format2Headings phrased as questions.
Snippable content3Lists, tables, <details> elements, and inline-list paragraphs.
Front-loaded answers2Section-opening paragraphs are concise and answer-bearing.
Self-contained sections2Sections make sense without relying on phrases such as “as mentioned above”.
AI systems extract fragments rather than whole pages. Clear headings, lists, tables, and concise section openings make content easier to match to user queries and cite in answers.

15. Content depth

Max score: 10 This check evaluates whether the page has enough substance to serve as a credible citation source.
AspectMaxCriteria
Word count3At least 800 words = 3, at least 500 = 2, at least 300 = 1.
Topic coverage3Unique H2/H3 sub-topics: at least 5 = 3, at least 3 = 2, at least 1 = 1.
Factual density2Statistics, percentages, dates, measurements, or currencies.
Content visibility2Penalizes substantive content hidden in accordions, tabs, or collapsed elements.
If a page returns fewer than 300 words and shows client-side application fingerprints such as empty root containers, __NEXT_DATA__, Nuxt markers, React root markers, or Angular ng-version, Obvlo flags a high-impact recommendation to add server-side rendering or pre-rendering.

16. Content freshness

Max score: 8 This check evaluates whether the page shows current and recently reviewed signals.
AspectMaxCriteria
JSON-LD date metadata3Recent dateModified earns the highest score; older or publish-only dates earn less.
Last-Modified HTTP header2Recent server-level modification headers earn more.
Visible dates1Publication or update dates visible to users.
Time-sensitive signals2Current year, “updated” language, or seasonal context.
Freshness helps retrieval systems choose content that is likely to be current. The dateModified signal is especially useful because it indicates active review rather than one-time publication.

17. Citation readiness

Max score: 10 This check evaluates whether an AI system can confidently cite the page with attribution.
AspectMaxCriteria
External references3Outbound links to authoritative external domains from primary content.
Statistics and data2Percentages, measurements, study references, or “according to” phrases.
Quotations2Blockquotes, <q> elements, or meaningful inline quotes.
Author and expertise signals2Author schema, byline elements, or rel="author" links.
Marketing fluff penalty-1Penalizes excessive vague superlatives.
Social media, CDN, font, and self-referencing links are excluded from the external reference count. The goal is to measure verifiable supporting sources, not navigation or branding links.

18. Internal linking

Max score: 10 This check evaluates whether the page connects to other useful pages on the same site.
AspectMaxCriteria
Internal link count3Links from primary content to other pages on the same site.
Link text quality2Descriptive anchor text instead of generic labels such as “click here”.
Breadcrumb navigation2Breadcrumb schema and visible breadcrumbs.
Linked page quality3Up to five linked pages are fetched to verify they are reachable.
Internal links help crawlers and AI systems discover related pages and understand how topics connect. Descriptive anchor text helps them decide which links are worth following.

19. Accessibility for agents

Max score: 8 This check evaluates a focused accessibility subset that matters for agents using the accessibility tree to identify controls and operate pages.
AspectMaxCriteria
Named interactive elements3Links, buttons, inputs, selects, textareas, and role-based controls have accessible names.
Labelled form fields2User-supplied form fields have labels or equivalent accessible names.
Visible interactive elements2Interactive elements are not hidden from the accessibility tree.
Valid role relationships1For example, menuitem roles appear inside menu or menubar containers.
ScoreStatus
7-8Pass
4-6Warn
0-3Fail
This is separate from the Lighthouse Accessibility score. Lighthouse measures a broader accessibility baseline; this check focuses on whether agents can name, find, and operate key controls.

Agentic Browsing parity

Google’s Lighthouse Agentic Browsing category is experimental. Obvlo does not fold it directly into the 0-100 AI Visibility Score. Instead, Obvlo reports Agentic Browsing parity separately. The parity result counts applicable agent-readiness checks and reports:
FieldMeaning
PassedApplicable checks with pass or info status.
WarningsApplicable checks with warn status.
FailedApplicable checks with fail status.
ApplicableTotal checks included in the parity calculation.
Ratiopassed / applicable, rounded to two decimal places.
Statuspass, warn, fail, or not-applicable.
The current parity calculation considers these check IDs when they are marked applicable by the health-check implementation:
CheckCategoryScore impact
llms.txtAI readinessNo 0-100 score impact. Missing files are not applicable; found files and retrieval warnings are applicable.
Registered WebMCP ToolsAI readinessInformational. Currently surfaced as a discovery signal rather than a scored requirement.
Forms Missing Declarative WebMCPAI readinessInformational. Applicable when forms exist.
WebMCP Schema ValidityAI readinessScored, max 4.
Layout StabilityInfrastructureScored, max 5.
Accessibility for AgentsPage analysisScored, max 8.
Parity status is intentionally stricter than the 0-100 score summary:
ConditionParity status
No applicable checksNot applicable
Any applicable check failedFail
No failures, but at least one warningWarn
All applicable checks passed or were informationalPass
Agentic Browsing parity is a methodology signal. It is not a promise that any specific AI assistant will use a site in a specific way.

Score interpretation guide

The overall score is normalized to a 0-100 scale.
Overall scoreRatingInterpretation
90-100ExcellentThe site is highly ready for AI visibility. Content should be competitive in AI-generated answers.
75-89GoodStrong foundation with specific areas to improve.
50-74Needs workSignificant gaps remain. Competitors with stronger foundations may be cited more often.
25-49PoorMajor crawlability, structure, or content issues are limiting AI visibility.
0-24CriticalThe site may be effectively invisible or unusable for many AI systems.

What changed in the latest methodology update

The latest implementation update added Agentic Browsing parity while keeping the AI Visibility Score normalized to 100. Added
  • AI Crawler Accessibility as a scored Infrastructure check worth 5 raw points.
  • Layout Stability as a scored Infrastructure sub-check worth 5 raw points, derived from Lighthouse Cumulative Layout Shift.
  • Registered WebMCP Tools as an informational AI readiness signal.
  • Forms Missing Declarative WebMCP as an informational AI readiness signal.
  • WebMCP Schema Validity as a scored AI readiness check worth 4 raw points.
  • Accessibility for Agents as a scored Page Analysis check worth 8 raw points.
  • Agentic Browsing parity as a separate stored and streamed result with passed, applicable, warning, failed, ratio, and status fields.
Changed
  • Infrastructure raw max increased to 45.
  • AI Readiness raw max increased to 22.
  • Page Analysis raw max increased to 68.
  • llms.txt remains non-scoring and optional, but blocked or server-error retrieval can now count as an applicable warning for parity.
  • The 0-100 score remains category-normalized at 25 / 25 / 50, so new raw checks do not make the overall score exceed 100.

Why scores may change over time

Scores can change when:
  • A site changes templates, content, redirects, firewall rules, or analytics setup.
  • Search engines and AI assistants change how they fetch and interpret pages.
  • Obvlo updates the methodology to reflect stronger evidence or new public guidance.
  • Optional emerging checks move from informational to warning-capable or scored once the underlying standard becomes more stable.
When methodology changes affect customer interpretation, Obvlo documents the change and keeps the 0-100 AI Visibility Score separate from experimental parity signals.

How to improve your score

The most reliable improvements come from practical fundamentals:
  • Keep pages crawlable without blocking legitimate search and AI crawlers.
  • Publish clean sitemaps and avoid accidental noindex or nosnippet rules.
  • Use HTTPS with a complete certificate chain.
  • Improve mobile performance and reduce layout shift.
  • Add structured data for key page types and business entities.
  • Write useful, specific content with clear headings and citation-ready facts.
  • Use semantic HTML, descriptive links, and accessible labels for controls and forms.
  • Keep content fresh and internally linked.
  • Treat WebMCP and llms.txt as emerging enhancements, especially for important forms and workflows.
The health check recommendations show which actions are most relevant for the specific page being tested.