Free tool

Free SEO Checker

Eleven technical checks on a single page: indexing directives, XML sitemap, canonical tag, title and description length, links, alt text, mobile viewport and more. Each is read live and weighted into a score out of 100. No API calls, no cost.

SEO

  • — Indexing directives (noindex, nosnippet)
  • — XML sitemap presence
  • — Canonical URL tag
  • — Title tag length
  • — Internal linking
  • — Image alt text coverage
  • — Meta description length
  • — Mobile viewport tag
  • — Descriptive link text
  • — Image width and height
  • — Page language (html lang)

This scan checks SEO only. Want the rest? See the — AEO and GEO checkers, or use “Check the other two” after a scan.

Enter a URL above — free, rule-based, no API cost.

Free · rule-based · no API cost

Last updated

About the SEO checker

This is the traditional counterpart to the AEO checker: the technical basics search engines have cared about for years, and which still matter in an AI-search era. It runs eleven checks: indexing directives, an XML sitemap, a canonical tag, title and meta description length, internal links, image alt text, the mobile viewport tag, descriptive link text, image width and height, and the page language. It checks on-page technical SEO only. It doesn't look at backlinks, page speed or content quality, so a good score means the foundations are sound, not that the page will rank.

How the SEO checker scans your page

  1. You submit a page URL, and Half Dev fetches the page and looks for a sitemap, declared in robots.txt or at a standard path such as /sitemap.xml.
  2. It runs 11 weighted checks. Indexing directives count most (15 points) and page language least (3). Most checks give full, half or no credit, and alt text and title length can earn part of their points. A check that does not apply, such as image sizes on a page with no images, is left out and the other weights are scaled, so the score stays out of 100.
  3. You get a score out of 100 with a note on each check.

How to read your SEO score

The SEO score is out of 100 and comes from eleven weighted checks: indexing directives (15 points), XML sitemap (14), canonical URL (13), title tag length (11), internal linking (10), image alt text (8), meta description length (8), mobile viewport tag (7), descriptive link text (7), image width and height (4) and page language (3). Most checks give full, part or zero credit, so one weak spot costs you a slice of that check's points, not the whole score.

A check that does not apply to the page, such as image sizes on a page with no images, is left out and the remaining weights are scaled, so the score is still out of 100. A score of 85 or more reads as search-engine ready, 60 to 84 as partially optimized, and under 60 as needing SEO work. It is a technical health check of one page. It says nothing about content quality, backlinks or how competitive your topic is.

85+ score

Search-engine ready

Most checks earn full or near-full credit.

60–84 score

Partially optimized

A few weak spots are costing you part of their points.

Under 60 score

Needs SEO work

Several checks are losing points. Start with the fixes below.

How to fix each SEO check

Indexing directives

A noindex directive for all search engines, in a meta robots tag or the X-Robots-Tag header, scores 0 of 15. A noindex that names only some crawlers, or a nosnippet or max-snippet:0 limit, scores half. No such directive scores 15.

Fix: Remove noindex from any page you want found. A staging setting carried over to the live site is a common cause. Check both the page source and the response headers.

XML sitemap

No sitemap found scores 0 of 14. A file that does not look like a sitemap scores 7. A valid sitemap or sitemap index scores 14.

Fix: Generate a sitemap with your CMS or framework. The checker looks for one declared in robots.txt, then at /sitemap.xml and /sitemap_index.xml, so any of those works. Then submit it in Google Search Console.

Canonical URL

No canonical link tag in the page head scores 0 of 13. A canonical that points at a different host scores half, because that is right only for a copy of content published elsewhere. Any other canonical scores 13.

Fix: Add a link tag with rel="canonical" to every page, pointing at the preferred version of that page's own URL. The checker confirms the tag exists and stays on the same site, with or without www. It does not check that the exact path is the right one.

Title tag length

50 to 60 characters scores 11 of 11. 30 to 49 or 61 to 70 characters scores 60% of that. Anything else scores 20%, and no title tag scores 0.

Fix: Rewrite the title to say what the page is in 50 to 60 characters, with the main topic first. That range is a rule of thumb for how titles display in results, not a rule set by Google.

Internal linking

Counts links on the page that point to the same site. Three or more scores 10 of 10, one or two score 5, none scores 0.

Fix: Link to related pages from your body text, using descriptive link text rather than "click here". Links in menus and footers count too.

Image alt text

The checker counts images with descriptive alt text, and counts an empty alt attribute as decorative, which is correct for images that add nothing. 90% or more covered scores 8 of 8. Below that you get a share of 8 equal to the share covered. A page with no images passes.

Fix: Give each meaningful image a short description of what it shows. Leave alt empty only for purely decorative images. An image with no alt attribute at all counts as missing.

Meta description length

A description of 70 to 160 characters scores 8 of 8. No description, or one shorter or longer than that, scores half.

Fix: Write a description that says what the page offers and for whom, in 70 to 160 characters, with the key point first. Search engines may still rewrite it.

Mobile viewport tag

No viewport meta tag scores 0 of 7. A tag that lacks width=device-width, or that stops visitors zooming, scores half. A tag that sets width=device-width and allows zooming scores 7.

Fix: Add <meta name="viewport" content="width=device-width, initial-scale=1"> to the page head, and avoid user-scalable=no and maximum-scale=1.

Descriptive link text

Judged only when the page has at least 3 text links. If 2 or more links, and at least a fifth of all links, use generic text such as "click here" or "read more", it scores half of 7. Otherwise it scores 7.

Fix: Replace generic link text with words that describe the destination. This also helps screen-reader users who move through a page by its links.

Image width and height

Judged only when the page has images. If 90% or more set both width and height attributes, it scores 4 of 4. Otherwise it scores half. It is capped at half because a stylesheet can do the same job and the checker cannot read stylesheets.

Fix: Add width and height attributes to each image tag, or set a CSS aspect-ratio, so the browser reserves the space and the page does not jump while it loads.

Page language

No lang attribute on the html tag, or a value that is not a valid language code, scores half of 3. A valid code such as en or en-GB scores 3.

Fix: Add a lang attribute to the html tag, for example <html lang="en">, so search engines and screen readers know the language of the page.

Example SEO score for an online shop

A sample result for a made-up online shop. The live tool shows the status and a note per check. Points are shown here only to explain the total.

SEO score

80 of 100
  • Pass:Indexing directives (noindex) · 15/15 No noindex, nosnippet or max-snippet:0 directive found.
  • Partial:XML sitemap · 7/14 A file exists at /sitemap.xml but doesn't look like a valid XML sitemap.
  • Pass:Canonical URL · 13/13 Canonical URL set.
  • Pass:Title tag length · 11/11 Title is 56 characters, in the ideal 50 to 60 range.
  • Partial:Internal linking · 5/10 2 internal links found.
  • Partial:Image alt text · 6/8 3 of 4 image(s) have descriptive alt text.
  • Partial:Meta description length · 4/8 The meta description is 48 characters, shorter than the 70 to 160 that usually gives a useful snippet.
  • Pass:Mobile viewport tag · 7/7 The viewport tag sets width=device-width and allows zooming.
  • Pass:Descriptive link text · 7/7 All 18 links have descriptive text.
  • Partial:Image width and height · 2/4 2 of 4 images lack width and height attributes.
  • Pass:Page language (html lang) · 3/3 The page declares its language as en.

Total: 80 of 100 — Partially optimized for search

Who should run an SEO check

  • Someone has just published a new page and wants a quick check before promoting it.
  • A site owner who suspects duplicate-content problems checks that canonical tags are set correctly.
  • A content team runs a regular technical check on its most important pages.

What the SEO checker does not check

  • It checks one page, the one you submit, plus the sitemap and robots.txt. It does not crawl your site.
  • It reads the HTML your server returns. Content added by JavaScript after the page loads may not be seen.
  • It does not measure page speed, backlinks, keywords or content quality. It checks that a mobile viewport tag is set, not how the page looks on a phone.
  • A good score does not mean you will rank. Search results depend on far more than these eleven checks.

FAQ

No. It checks on-page technical SEO only: indexing directives, sitemap, canonical tag, title and description length, links, alt text, mobile viewport tag and page language.

Search results show only part of a long title. Titles of about 50–60 characters usually display in full; this tool treats 30–70 as acceptable and flags anything outside that.

It tells search engines which URL is the main version of a page when several URLs show the same content, such as with and without a trailing slash. A wrong or missing one can split ranking signals across duplicates.

It matters for two reasons: screen-reader users rely on it, and search engines use it to understand what an image shows.

No. It scans one page for foundational checks. A full audit also covers backlinks, speed, content depth and more.

The score reflects the page at the moment of the scan. If you edited the page, a plugin changed a tag, or your server returned a different version, the score moves.

No. Google does not set a fixed limit. Titles are cut by display width, and 50 to 60 characters is a common rule of thumb for staying inside it.

No. Treat the result as a to-do list. Fix the checks marked fail first, then the warnings.

Terms explained: XML Sitemap · Canonical URL · Title Tag · Image Alt Text · Internal Linking

Want the whole picture? See all three checkers.