SearcherVision

Googlebot · GPTBot · ClaudeBot · PerplexityBot

See your page the way Google and AI assistants do

Rendering, indexing, W3C, structured data and speed — every problem highlighted right on the page, in a 3D cross-section of its DOM.

Free during beta · interface in Russian for now

olive-tattoo.rua real check

What it looks like

A recording of a real check of a live site, sped up.Interface in Russian during beta.

raw HTML ⇄ after JavaScriptrecording · ×1

Raw vs rendered

What ChatGPT sees vs what Google sees

Raw HTML is what GPTBot, ClaudeBot and PerplexityBot read. Rendered HTML is what Googlebot indexes. The Diff tab puts them side by side, line by line.

olive-tattoo.ru · 1,135 elements · render 10.8 srecording · ×1.15

Report

A report: every problem on the page

Hover a problem in the list and the element lights up in the 3D cross-section. Pick one and the source opens at the exact line.

115 pages in 10 s · sitemap: 24 URLsrecording · ×1.3

Site crawl

A site crawl in 3D

Breadth-first from the homepage, like Googlebot. Pages sit on rings of click depth, color shows whether they’re indexable, and a site issue lights up its pages.

raw HTMLafter JavaScriptGooglebot · AI crawlers

What crawlers see that you don’t

The page looks fine in a browser, but crawlers get something else. Four cases SearcherVision finds and points to in the code.

  1. raw HTML14 lines

    <body>
      <div id="app"></div>
      <script src="/app.js"></script>
    </body>

    after JavaScript+318 lines

    <h1>Sofas & armchairs</h1>
    <p>Delivered in 2 days…</p>

    ▲ main text appears only after JavaScript

    Content that only exists after JavaScript

    Googlebot renders it. GPTBot, ClaudeBot and PerplexityBot never do — to them, that text isn’t there.

  2. JSON-LD · FAQPage1 of 4 questions

    {
      "@type": "Question",
      "name": "How much is delivery?",
      "acceptedAnswer": {
        "text": "Free on orders over $300"
      }
    }

    ▲ the answer isn’t in the page text

    FAQ markup with no answers on the page

    Google requires marked-up content to be visible. We check every answer against the page text.

  3. <head>line 12

    <meta name="yandex" content="noindex">
    Googlebot
    ● indexable
    YandexBot
    ● not indexable

    noindex for one crawler only

    A header or meta tag that hides the page from one search engine and not the other.

  4. after JavaScript<nav>

    <nav>
      <a href="/catalog/chairs">Armchairs</a>
      <a href="/catalog/sofas">Sofas</a>
    </nav>

    ▲ this link isn’t in the raw HTML

    Links that appear only after JavaScript

    Crawlers that don’t render will never follow them.

GooglebotGPTBotClaudeBotPerplexityBot

Google and AI crawlers, side by side

Googlebot renders JavaScript before indexing. AI crawlers — the ones behind ChatGPT, Claude and Perplexity — read only the raw HTML. SearcherVision shows both versions of your page and the exact difference between them.

Googlebot Smartphone

Googlebot/2.1 · renders in Chromium

JavaScript
executed
Reads
rendered HTML
Catalog text
present

●Sees the full page

AI crawlers

GPTBot · ClaudeBot · PerplexityBot

JavaScript
not executed
Reads
raw HTML only
Catalog text
missing

●Sees an empty catalog

  • Raw HTML vs rendered HTML, line by line

    See exactly what exists only after JavaScript — the part AI assistants never read.

  • robots.txt rules for each crawler

    Who is allowed in: GPTBot, ClaudeBot, PerplexityBot, Google-Extended — and whether the server really lets them through.

  • Also YandexBot

    For sites in Russia and CIS — a separate Yandex verdict.

Why AI crawlers skip JavaScript →

What we checkdeterministic rules

What we check on every page

Every check is deterministic. Each problem points to a line and column in the source and to the element in the 3D cross-section.

Indexing

  • robots.txt, redirects, noindex and canonical in meta and headers.

Method: Googlebot Smartphone and YandexBot user agents

Rendering

  • Mobile Chromium at 412×915, like Googlebot Smartphone.
  • Resources blocked in robots.txt aren’t loaded; the page isn’t scrolled.

Method: Chromium · Playwright

Code & W3C

  • Nu Html Checker errors tied to the exact element — in the code and in 3D.

Method: Nu Html Checker — the validator.w3.org engine

Structured data

  • JSON-LD and Microdata against Google’s rules, shown as readable blocks: FAQ, prices, organization.

Method: schema.org vocabulary · Google rich result rules

Speed

  • TTFB, FCP, LCP, CLS, TBT, plus PageSpeed Insights and real-user Chrome data when available.

Method: Chromium · PageSpeed Insights

Semantics

  • What the page is about to a crawler: topic by zones — title, h1, URL, JSON-LD, headings.

Method: Deterministic rules: every issue has a place in the code

breadth-first crawlup to 1,000 pages

Crawl a whole site — and see it in 3D

Breadth-first from the start page, like Googlebot: up to 1,000 pages from raw HTML or 300 with rendering. Broken pages and who links to them, redirects, duplicate titles, orphans, sitemap gaps, keyword cannibalization — on a 3D map of click depth.

Try the beta

example.com · 134 pages
raw HTML crawl · 41 s

  • indexable · 93
  • not indexable · 16
  • ▲redirect · 12
  • ●4xx/5xx error · 7
  • ○orphan · 6

rings — clicks from the homepage

Pages on rings of click depth; color shows whether a page is indexable; lines are links. The app also lists every page in a table.

MCPStreamable HTTP

Your coding agent fixes the SEO bugs

Connect SearcherVision to Claude Code, Cursor or any MCP client. The agent checks a page and gets every problem with its position in the code — then fixes it.

Server tools · 7
analyze_page
checks a page: Google and Yandex verdicts, top problems with their place in the HTML, a link to the 3D report
get_report
every problem in a report, filtered by category and severity
get_html
the source around a line and column — to find and fix it
get_structured_data
the structured data found on the page
crawl_site
crawls a site, up to 1,000 pages: broken pages, duplicates, orphans, cannibalization, sitemap, depth
get_crawl
crawl problems with every affected URL
list_recent
recent checks

Server address: https://api.searchervision.com/mcp

Claude Code · setup

claude mcp add --transport http searcher-vision https://api.searchervision.com/mcp

Check the homepage and fix the markup errors

searcher-vision · analyze_page(https://example.com/)

Google: indexable · Yandex: indexable
Problems: 3 errors, 5 warnings, 12 notes

Errors:
- [HTML (W3C)] Bad value "dialog" for attribute "role"
  after JS 107:33498 <aside> cid=412
- [Structured data] Product › offers: "price" is missing
  raw HTML 41:5

get_html(cid=412) → editing components/Sidebar.vue

Pricing

Free during beta. Pro is coming.

Use SearcherVision free while it’s in beta. Pro and Agency are in development — join the list for early access.

  • Free

    $0

    Works today, no sign-up.

    • 40 page checks per hour
    • 6 site crawls per day
    • MCP for your agent
    Try the beta
  • Pro

    in development

    $19/mo

    For people who check sites every day.

    • Higher limits
    • Search Console integration
    • AI crawler checks
    • Client-ready reports
    Get early access
  • Agency

    from $99/mo

    For teams that run client sites.

    • Team seats
    • White-label reports
    • API
    Talk to us

Prices are a hypothesis — join the list and tell us what you’d pay for.

FAQPagemarkup matches the text

FAQ

The answers on this page and in its structured data match word for word — exactly what SearcherVision checks for FAQ markup.

How is this different from Google Search Console?

Search Console shows only your own verified sites and only Google. SearcherVision checks any URL, shows Google and AI crawlers side by side, and points to the exact element in the code.

Do I need access to the site?

No. Any public URL works.

Why might results differ from Google?

We emulate crawlers from our server. Geo rules and bot protection see our server, not Google. Search Console integration (coming in Pro) adds Google’s own data.

Do AI crawlers really skip JavaScript?

GPTBot, ClaudeBot and PerplexityBot fetch raw HTML and don’t execute JavaScript, according to Vercel’s analysis of their traffic. Google-Extended is the exception: it uses Google’s rendering.

What are the limits?

40 checks per hour and 6 crawls per day per IP during beta.

Why is the interface in Russian?

We started in Russia and CIS. The English interface is next — join the list and we’ll tell you when it’s ready.