CheckVibeCodeCheckVibeCode
Checks/SEO & AEO
SEO & AEOLive75 checks

SEO Scanner

Grade your search visibility with 75 checks — indexability, metadata, structured data, content, links, and Core Web Vitals — plus a live preview of how the page renders when shared.

Indexability (13)

  • robots.txt present & valid
  • Not blocking the whole site
  • Sitemap referenced in robots.txt
  • sitemap.xml present & valid XML
  • Sitemap URLs return 200
  • <meta name=robots> not noindex
  • X-Robots-Tag header not noindex
  • Canonical tag present
  • Canonical resolves to itself — no chain
  • Canonical isn't cross-domain unexpectedly
  • No conflicting canonical vs. robots.txt
  • HTTPS is the canonical/indexed version
  • Clean URL structure — no session IDs, query params, or excessive path depth

Metadata (17)

  • <title> present
  • Title length 30–60 chars
  • Title unique vs. sampled sibling pages
  • <meta name=description> present
  • Description length 70–160 chars
  • Description unique
  • Open Graph og:title/og:description/og:image/og:url/og:type present
  • Twitter Card tags present
  • og:image resolves and is a reasonable size
  • Viewport meta present
  • Charset declared
  • HTML5 doctype declared first
  • No frameset markup
  • Title has no repeated words

Structured data (10)

  • JSON-LD present
  • Valid JSON syntax
  • schema.org @type recognized
  • Organization/WebSite schema on homepage
  • BreadcrumbList where breadcrumbs exist
  • Article/Product/etc. matches page content type
  • Required fields present per schema type
  • No deprecated schema fields
  • Rich-result eligibility per Google's supported types
  • Structured data doesn't contradict visible content

Content (16)

  • Exactly one <h1>
  • Heading hierarchy is logical — no skipped levels
  • Word count is substantive for the page type
  • Content-to-code ratio isn't code-dominated
  • Duplicate content check against sampled sibling pages
  • Thin-content flag on near-empty pages
  • Image alt text present
  • Descriptive, non-generic internal link anchor text
  • Language declared (lang attribute) matches detected content language
  • No keyword-stuffing signal
  • Readable URL slugs
  • Mixed content check — HTTP assets on an HTTPS page
  • Broken-image check on sampled images
  • Text is real text, not rendered only via client-side JS with no fallback
  • Body content uses paragraphs, not bare divs
  • Title matches the page content

Core Web Vitals (8)

  • LCP measured (lab)
  • CLS measured (lab)
  • INP/FID measured (lab)
  • Field data pulled from CrUX where available
  • Mobile and desktop scores both captured
  • Render-blocking resources flagged
  • Image formats/sizing flagged where oversized for display size
  • Font-loading strategy flagged if causing layout shift

More checks in SEO & AEO