Free SEO audit

Check the on-page SEO fundamentals search engines actually read: title, meta description, headings, canonical tags, and indexability, in one scan, no signup.

We read one page, in one state, without signing in. Being clear about the edges is the point: a scanner that implies it sees everything is the one to distrust. See exactly what we can't see →

  • 11 checks each pass, fail, or needs review
  • Under a minute one page, one scan
  • No signup no account, no email

What we check

  • Page title

    <title>...</title> in the document head

    Present, with any non-empty text after decoding HTML entities and collapsing whitespace, the same text a browser tab or a search result actually shows.

    Without a title, a search result falls back to whatever text Google decides to pull from the page instead, and you lose control of the first thing a searcher reads about you.

    Learn more about Page title →
  • Title length

    Character count of the decoded <title> text

    Ideal range is 10 to 65 characters. Outside that range is flagged, but never as severely as a missing title.

    A title much longer than about 65 characters gets truncated with an ellipsis in a search result, often cutting off the part written to make someone click.

    Learn more about Title length →
  • Meta description

    <meta name="description" content="...">

    Present, with non-empty content.

    Without one, Google writes its own summary by pulling text from the page, frequently an awkward mid-sentence fragment instead of a sentence written to earn the click.

    Learn more about Meta description →
  • Description length

    Character count of the meta description content

    Ideal range is 50 to 160 characters.

    A description over about 160 characters gets cut off mid-sentence in a search result, and one far under 50 leaves space Google will fill with its own text instead.

    Learn more about Description length →
  • Single H1

    Count of <h1> elements on the page

    Exactly one. Zero or more than one is flagged.

    Multiple or missing H1s leave both search engines and screen reader users without a clear signal of what the page's main heading actually is.

    Learn more about Single H1 →
  • Viewport meta tag

    <meta name="viewport" content="...">

    The tag exists. We do not read its content attribute, so a viewport tag carrying the wrong value still passes here.

    Without it, mobile browsers render the page at desktop width and shrink it to fit, which Google treats as a mobile usability problem, not just a cosmetic one.

    Learn more about Viewport meta tag →
  • Canonical link

    <link rel="canonical" href="...">

    The link element exists. We do not fetch the href or confirm it points back at this page, so a canonical aimed at the wrong URL still passes.

    Without one, a search engine has to guess which URL is the real, indexable version when the same content is reachable at more than one address, and it can guess wrong.

    Learn more about Canonical link →
  • Indexable

    <meta name="robots">, the X-Robots-Tag response header, and a Disallow rule in /robots.txt, each read for a directive that keeps the page out of search

    Three sources, and the most restrictive of them decides. Every robots meta on the page is read rather than only the first, in whatever order its attributes are written, and content="none" counts because it means the same as noindex, nofollow. The header is read the same way. /robots.txt is fetched at the one address every crawler fetches it from and matched against this page, honouring the Googlebot group and the * fallback. Flagged critical, because each of the three is a deliberate instruction to drop the page. If robots.txt cannot be read at all we report the check as not determined rather than assume it permits everything.

    A stray noindex left over from a staging deploy silently removes a page from search results with no error and no warning, often unnoticed until traffic is already gone.

    Learn more about Indexable →
  • Lang attribute

    <html lang="..."> attribute on the root element

    Present, with any non-empty value.

    Without it, search engines have to infer the page's language from its content alone, which can misroute the page to the wrong language's search results.

    Learn more about Lang attribute →
  • Open Graph tags

    At least one <meta property="og:..."> tag

    At least one og: property is present. We do not require any particular one, so a page carrying only og:type passes while its shared links still render without a title or image.

    Without Open Graph tags, a link shared on Slack, LinkedIn, or social media renders as a bare URL instead of a title, description, and image, which measurably changes whether anyone clicks it.

    Learn more about Open Graph tags →
  • Favicon

    <link rel="icon"> or <link rel="shortcut icon">

    A link element with rel="icon" or rel="shortcut icon" is present. We match on the rel value only and never request the file, so a declared icon that 404s still passes.

    A missing favicon shows a generic blank icon in every browser tab and bookmark, a small but constant signal that the site is unfinished or unmaintained.

    Learn more about Favicon →

What we can't see

  • Your actual search rankings, or how any of this affects them: we check on-page technical signals, not position in search results.
  • Structured data (JSON-LD, schema.org markup) beyond what this scan lists: this check reads the tags above, not your full structured-data coverage.
  • Content quality, keyword targeting, or backlinks: those are the parts of SEO this scan does not attempt.
  • SEO tags on pages other than the one scanned.

Ready to see where you stand?

Scan your site and get your Engineering Score with a prioritized roadmap in under a minute, no signup required.

Scan your site