scanned Apr 25, 2026

Lattis

lattis.dev

Lattis provides a platform that grades how well a website answers questions that AI agents ask, serving as an interface between websites and AI agents.

46/100

Tier 3 · Agent-Accessible

Content answers34/100
Protocol plumbing73/1008 of 11 checks pass

Scored by asking 15 questions a buyer of a ai-ml product asks, then grading this site’s own pages: answered, hedged (partial or vague), or silent (no page answers it). How scoring works

The fix queue

54 points sit between lattis.dev and 100: 14 open questions and 3 missing protocol checks, ordered by estimated payoff.

Point estimates are per fix under scoring v2. They are not additive to a promised total.

01integration · importance highGoes silent+7 content pts est.

I see you have an MCP server at mcp.lattis.dev. We're implementing Model Context Protocol support in our own tooling. Which MCP protocol version are you targeting—2024-11-05 or the newer 2025-03-26 spec—and do you support streaming?

What the pages say

No page on the site addresses this.

The fix

Add a dedicated MCP protocol specification page or section to docs.lattis.dev that explicitly states: (1) which MCP protocol version(s) are supported, (2) whether the 2025-03-26 spec is targeted or if both versions are supported, and (3) streaming capabilities (HTTP SSE vs non-streaming JSON-RPC). Consider adding this to the server-card.json or as a /.well-known/mcp/metadata.json endpoint for programmatic discovery.

confidence high · grounding world-knowledge · weight 0.00 · Absent

02technical · importance highGoes silent+7 content pts est.

My AI Visibility Score came back as 72. I want to prioritize fixes, but I can't tell if 'crawlability' or 'semantic structure' counts more toward the final number. What are the exact weightings or is it a simple average of the sub-scores?

What the pages say

No page on the site addresses this.

The fix

Create a dedicated methodology or FAQ page explaining how the AI Visibility Score is calculated, including the specific weightings of sub-components (crawlability, semantic structure, etc.) and whether the final score is a weighted sum or simple average.

Where we looked: lattis.dev, /sites/namedesk.app

confidence high · grounding synthesized · weight 0.00 · Page missing

03limits · importance mediumGoes silent+7 content pts est.

I want to build a dashboard showing AI Visibility Scores for our 200+ client sites. Before I architect this, what's the rate limit structure—requests per minute, per hour, or per API key? And is there a bulk/batch endpoint to avoid hammering your servers?

What the pages say

No page on the site addresses this.

The fix

Create a dedicated 'API Limits & Quotas' documentation page at lattis.dev/docs that specifies: (1) requests-per-minute/hour limits per API key or tier, (2) whether limits vary by free vs paid plans, (3) burst allowance policies, (4) bulk/batch endpoint availability for scoring multiple sites, and (5) any throttling behavior for high-volume use cases like 200+ client site dashboards.

confidence high · grounding world-knowledge · weight 0.00 · Absent

04operations · importance lowGoes silent+7 content pts est.

I see 'The Lattis index' mentioned in the app but no details on exporting or syncing. Can I push score changes to a Slack webhook, or do you have a Zapier integration? If not, is there a webhook URL I can configure for my own notification system?

What the pages say

No page on the site addresses this.

The fix

Add documentation covering webhook/notification integrations: whether Slack webhooks are supported, if a Zapier integration exists, and how users can configure custom webhook URLs for score change notifications.

confidence high · grounding world-knowledge · weight 0.00 · Absent

05operations · importance lowGoes silent+7 content pts est.

Our score dropped 12 points last month with no site changes. I suspect your scoring model updated. Do you publish a changelog or version your scoring methodology so I can correlate score shifts with your releases rather than debugging my own code?

What the pages say

No page on the site addresses this.

The fix

Create a dedicated changelog or release notes page that documents scoring methodology updates, model version changes, and their effective dates so buyers can correlate score shifts with Lattis releases rather than debugging their own code.

confidence high · grounding synthesized · weight 0.00 · Absent

06technical · importance lowGoes silent+7 content pts est.

We use a lot of client-side React for our documentation. Does your crawler execute JavaScript to index dynamic content, or do I need to implement SSR/prerendering to get accurate scores? If you do render JS, what's the timeout—5 seconds or longer?

What the pages say

No page on the site addresses this.

The fix

Add technical documentation explaining the crawler architecture: whether JavaScript is executed, what rendering engine is used (if any), and specific timeouts for dynamic content. This is critical for buyers with client-side rendered documentation to understand if they need SSR/prerendering.

confidence high · grounding synthesized · weight 0.00 · Absent

07support · importance lowGoes silent+7 content pts est.

My report flagged 'missing semantic headings' but we actually use aria-label attributes extensively for accessibility. Is there a way to dispute or override specific findings, or at least annotate them so they don't keep showing up in subsequent scans?

What the pages say

No page on the site addresses this.

The fix

Create documentation or an FAQ section explaining how users can dispute or annotate specific findings in their reports, including whether there's a way to mark findings as false positives, add explanatory notes for accessibility implementations like aria-label attributes, or prevent specific findings from recurring in future scans.

confidence high · grounding world-knowledge · weight 0.00 · Absent

08security · importance lowGoes silent+7 content pts est.

We're SOC 2 prep and need to document our vendors' data handling. When I submit my site for scoring, how long do you retain the crawled page content, the generated embeddings, and my email address? Is there a self-service deletion option?

What the pages say

No page on the site addresses this.

The fix

Create a dedicated privacy policy, data retention policy, or security/trust page that specifies retention periods for crawled page content, generated embeddings, and user email addresses, plus documents any self-service deletion or data export capabilities.

confidence high · grounding world-knowledge · weight 0.00 · Absent

Hedged · 6 of 15 questions

A buyer gets something, then has to guess the rest. Expand any row for the evidence and the fix.

09I'm running a site with about 50,000 pages. The free tier mentions it's free 'for the score' but I need ongoing monitoring and API access. At what exact page count or usage level do I get pushed to a paid plan, and what's the monthly cost?pricingHedges+2 pts est.

I'm running a site with about 50,000 pages. The free tier mentions it's free 'for the score' but I need ongoing monitoring and API access. At what exact page count or usage level do I get pushed to a paid plan, and what's the monthly cost?

What the pages say

Lattis does not have traditional paid plans with monthly subscriptions. The product is free for any public website with automatic re-crawls, but with page limits: 500 pages for unverified sites and 2,000 pages after domain verification via DNS. For sites larger than 2,000 pages, there is no automatic ongoing monitoring tier—you must use on-demand re-crawls at $5 per crawl, which supports up to 5,000 pages per crawl. There is no subscription, no seats, and no rate cards. Your 50,000 page site would require multiple $5 re-crawls to fully cover, with no ongoing monitoring option currently offered.

The fix

Create a dedicated pricing page or FAQ entry that explicitly addresses: (1) whether sites over 5,000 pages are supported, (2) if there are any plans for subscription-based ongoing monitoring for large sites, and (3) how customers with 50,000+ page sites should think about coverage (multiple crawls, enterprise options, etc.). Currently the 'no subscription' messaging conflicts with buyer expectations for ongoing monitoring at scale.

Where we looked: /pricing, /pricing, lattis.dev, lattis.dev, /pricing

confidence high · grounding synthesized · weight 0.70 · Vague

10I'm confused about whether I need an llms.txt file, a robots.txt modification, or both to maximize my score. Your docs mention both but don't clearly state which is required versus recommended. What's the minimum viable implementation?technicalHedges+2 pts est.

I'm confused about whether I need an llms.txt file, a robots.txt modification, or both to maximize my score. Your docs mention both but don't clearly state which is required versus recommended. What's the minimum viable implementation?

What the pages say

The chunks confirm that llms.txt is part of Lattis's scoring system under "Technical hygiene" (30% of score), with specific point values assigned (+1 to +3 pts depending on the site). However, the chunks do not explicitly state whether llms.txt is required versus recommended, nor do they clarify the relationship to robots.txt modifications. The "Protocol fix list" UI frames llms.txt as "Missing" when not installed, suggesting it's expected for a complete score. One chunk [18] shows a passing site with both "✓ robots.txt" and "✓ llms.txt" as separate checklist items, indicating they are distinct components. The minimum viable implementation appears to be llms.txt alone (since it's the only item with point values and explicit "Missing" status in the fix lists), but the docs don't clearly state this hierarchy.

The fix

Add explicit documentation clarifying: (1) whether llms.txt is required or recommended for scoring, (2) how robots.txt relates to llms.txt (separate, complementary, or alternative), and (3) what constitutes minimum viable implementation for users who want to maximize their score with least effort.

Where we looked: /sites/tempo.xyz, /sites/render.com, /llms-txt

confidence medium · grounding synthesized · weight 0.65 · Vague

11I fixed the issues from my last report three days ago, but my score hasn't updated. How often does Lattis re-crawl sites for the free score versus the paid monitoring tier? Is it on-demand, daily, or weekly?operationsHedges+2 pts est.

I fixed the issues from my last report three days ago, but my score hasn't updated. How often does Lattis re-crawl sites for the free score versus the paid monitoring tier? Is it on-demand, daily, or weekly?

What the pages say

For the free tier: Lattis uses "Auto re-crawl on natural change signals" — not on-demand, daily, or weekly. For paid/on-demand: re-crawls cost $5 each and are explicitly on-demand ("Full-depth crawl on demand" / "Ship a feature, hit re-crawl, your score updates within minutes"). There is no mention of a "paid monitoring tier" with scheduled re-crawls — the only paid option appears to be per-crawl billing, not a subscription tier with automatic refresh schedules.

The fix

Clarify whether there's a subscription monitoring tier with scheduled re-crawls (daily/weekly) or if all re-crawls are strictly per-crawl $5 charges. If scheduled re-crawls are only 'coming' as stated in chunk [8], make this explicit on the pricing page.

Where we looked: /pricing, /pricing, lattis.dev, /skills.md

confidence medium · grounding synthesized · weight 0.65 · Vague

12My report shows I'm at 68 while 'industry average' is apparently 54. But I can't tell if that's all sites in your index or just my category. Can I filter to see scores specifically for B2B SaaS companies with 10-50 employees, or is the benchmark global?getting-startedHedges+2 pts est.

My report shows I'm at 68 while 'industry average' is apparently 54. But I can't tell if that's all sites in your index or just my category. Can I filter to see scores specifically for B2B SaaS companies with 10-50 employees, or is the benchmark global?

What the pages say

Lattis generates a 0–100 AI Visibility Score that is weighted by question importance and rolls up into a single number you can track over time. The score is category-aware: a 'category-aware model writes the questions actual buyers in your space ask' (chunk [2], [6]). The site shows category-specific rankings (e.g., 'Top in SaaS', 'Top in Marketing Tools') with filtering and sorting by category (chunk [8], [11]). However, the chunks do not explicitly confirm whether the 'industry average' of 54 shown in individual reports is global across all indexed sites or scoped to the site's detected category, nor do they document filtering benchmarks by company size (10–50 employees) or B2B SaaS specifically.

The fix

Create a documentation page or FAQ entry that explicitly explains how the 'industry average' benchmark is calculated (global index vs. category-scoped), and whether users can filter benchmarks by company size, category, or other dimensions.

Where we looked: lattis.dev, lattis.dev, lattis.dev, app.lattis.dev, app.lattis.dev

confidence medium · grounding synthesized · weight 0.65 · Vague

13I'm evaluating whether to use your MCP server versus just calling your REST API directly. What specific tools does the MCP server expose—can it retrieve historical scores, trigger new crawls, or is it read-only current data only?integrationHedges+2 pts est.

I'm evaluating whether to use your MCP server versus just calling your REST API directly. What specific tools does the MCP server expose—can it retrieve historical scores, trigger new crawls, or is it read-only current data only?

What the pages say

The MCP server exposes these specific tools: lattis_search (semantic search across indexed sites), lattis_list_sites (list all indexed sites with metadata), lattis_get_site (metadata and AI Visibility Score for a single site), and lattis_get_page (full markdown of a specific page). The REST API has additional endpoints including POST /analyze to trigger new crawls and GET /analyze/:domain/status to poll indexing status. The chunks do not explicitly confirm whether the MCP server can retrieve historical scores or trigger new crawls—the documented MCP tools appear focused on current data retrieval (search, list, get) rather than write operations or historical data access. The REST API clearly supports triggering new crawls via POST /analyze.

The fix

Add explicit documentation clarifying whether the hosted MCP server supports triggering new crawls (lattis_analyze or similar) and retrieving historical score data, or confirm it is read-only current data only.

Where we looked: /docs, /docs, /docs

confidence medium · grounding synthesized · weight 0.65 · Vague

14Your /builders page says 'Stop burning tokens' but doesn't quantify it. For a typical Next.js marketing site, what percentage reduction in LLM context window usage should I actually expect if I implement your recommendations?technicalHedges+1 pt est.

Your /builders page says 'Stop burning tokens' but doesn't quantify it. For a typical Next.js marketing site, what percentage reduction in LLM context window usage should I actually expect if I implement your recommendations?

What the pages say

Lattis provides a specific comparison for a 40-page site: ~80k tokens of raw HTML without Lattis vs. ~2k tokens for the same answer with Lattis. This represents a 97.5% reduction in token usage. However, the site explicitly states these 'numbers are characteristic, not measured against a formal benchmark' and does not provide a specific percentage figure for Next.js marketing sites specifically.

The fix

Add a dedicated section with benchmarked percentage reductions for common site types (Next.js marketing sites, docs sites, e-commerce), including methodology. The current 'characteristic, not measured' disclaimer undermines buyer confidence in the 97.5% figure.

Where we looked: /builders

confidence high · grounding stated · weight 0.80 · Vague

What the pages already answer cleanly

1 of 15. Answered with enough specificity for a buyer to act on. This is the bar the queue above is chasing.

integrationAnswered

I'm connecting Claude Desktop to your MCP server. The URL pattern shows {your-domain}—is that authenticated via my Lattis account token, or is it an unauthenticated public endpoint that anyone could query for my site's data?

What the pages say

The per-site MCP endpoint (https://mcp.lattis.dev/s/{your-slug}/mcp) is an unauthenticated public endpoint — no API key or Lattis account token is required. Multiple chunks explicitly state "No API key required" and show the endpoint pattern as publicly accessible. The data served is the publicly indexed content of that site, not private account data.

Source: /.agents/skills/lattis/SKILL.md, /.agents/skills/lattis/SKILL.md, lattis.dev

confidence high · grounding stated · weight 1.00 · Answered

Protocol plumbing · 73/1008 of 11 checks pass · each fix +9 protocol pts est.

The other half of the score: 11 checks for the files and headers agents look for. The 3 below are installs, not judgment calls, and most are an afternoon. Expand any for the snippet and the standard it follows. They sit after the queue because none of them changes what your pages say.

Markdown negotiationRendering+9 pts est.

StandardRFC 9110 + 7763IETF RFC

Server-rendered contentRendering+9 pts est.

StandardSitedex metricSitedex metric

OpenAPI specInteraction+9 pts est.

StandardOpenAPI SpecIndustry standard

Already passing 8 of 11: robots.txt, sitemap.xml, llms.txt, AI crawler access, Content signal, Clean crawl, MCP card, WebMCP widget.

Ask this site’s index

Sitedex already serves lattis.dev as an MCP endpoint. Ask lattis.dev anything an AI agent might ask, and see what its index returns. (To score your own site, use the form below.)

Snippets & configs

For developers and the engineer-on-call: copy these into your tools or your site.

Files from this audit

Built from this crawl. Download or copy each, then install it at the path noted.

llms.txt

Built from this crawl. Install at /llms.txt so agents start here.

organization.json

Organization JSON-LD, pre-filled from this crawl. Wrap in a ld+json script.

server-card.json

MCP server card built from this crawl. Host at /.well-known/mcp/server-card.json.

webmcp.json

WebMCP discovery manifest built from this crawl. Host at /.well-known/webmcp.json.

MCP endpoint

https://mcp.sitedex.dev/s/lattis-dev/mcp

The URL anyone's agent points at. Read-only; safe to share.

Claude Code

claude mcp add lattis --transport http https://mcp.sitedex.dev/s/lattis-dev/mcp

One command, then the agent has it.

Cursor / Continue

{
  "mcpServers": {
    "lattis": {
      "url": "https://mcp.sitedex.dev/s/lattis-dev/mcp"
    }
  }
}

Drop into mcp.json.

WebMCP: two parts

WebMCP-capable browsers run the widget at runtime. Crawlers without JS rendering need the discovery manifest to find your tool surface. Install both.

1 · Widget script

<script async src="https://sitedex.dev/widget.js"></script>

Drop in <head>. WebMCP-capable browsers (Chrome 146+ Origin Trial) call navigator.modelContext.provideContext() via this script.

2 · Discovery manifest

{
  "$schema": "https://wellknownmcp.org/schemas/webmcp.json",
  "name": "lattis.dev",
  "tools": [
    { "name": "search", "description": "Search lattis.dev's indexed content." },
    { "name": "get_page", "description": "Fetch a page from lattis.dev as markdown." }
  ]
}

Host alongside the script at /.well-known/webmcp.json. Crawlers that don't render JS rely on this.

Your turn

See which of these questions your site goes silent on.

Free, about 5 minutes. We crawl your site, test it against the buyer questions your category asks, and name what’s vague, contradictory, or missing, plus the files AI agents look for.

ComingEmbeddable grade badgeScore history and deltasOpt-in public board