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
Links (11)
- Internal links resolve — no broken same-site links on sampled crawl
- External links checked for rel=noopener on target=_blank
- Nofollow used appropriately — not blanket on all outbound
- No orphan pages among sampled sitemap URLs
- Reasonable internal link depth from homepage
- Redirect chains flagged (>1 hop)
- No redirect loops
- Pagination present where relevant
- Hreflang present and valid where multiple locales exist
- Footer/nav links are crawlable <a href>, not JS-only click handlers
- Outbound links to other sites
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
