On-page SEO readout

A search engine judges a page largely by a handful of tags in its source code. This check fetches one page, reads those tags and scores them out of 100, with the fix for each weak point.

One page per check. Test the home page first, then the pages you most want people to find.

Or try wikipedia.org, github.com

A crawler reads the source, not the screen

When you open a page you see a layout, with a big headline, a photo and a menu. A search engine crawler gets the same file your browser got, but it never looks at the finished picture. It reads the HTML from top to bottom and leans on a small set of tags to decide what the page is about, what to print in the results list and whether to keep the page at all.

“On-page SEO” is the business of getting those tags right. It’s the one part of search visibility that depends only on you, since it lives in your own markup. This check downloads a single page the way a simple crawler does, without running JavaScript, and goes through the tags one by one.

Where the 100 points go

Every page starts at 100. Each of the seven areas below can take points away once, at the level of its worst finding.

AreaSerious problemWarning
Title (<title>)−20: there isn’t one−7: under 25 or over 65 characters, or more than one title tag
Meta description−5: missing, under 70 or over 160 characters
Headings (h1 to h6)−15: no h1−5: several h1, a skipped level, an empty heading
Image alt text−15: more than one image in five has no alt attribute−6: a few images without alt, or text that is a file name, a single vague word or longer than 150 characters
Links−4: links with no text at all, or text such as “click here” and “read more”
Indexing−30: a noindex directive, or a robots.txt rule that shuts out Googlebot−5: no canonical URL, a canonical that names another page, or no sitemap
Language, phones, content−15: no mobile viewport tag−5: no lang attribute, fewer than 150 words, or JSON-LD that doesn’t parse

The letter follows the total: A from 90, B from 78, C from 64, D from 50, E from 35, F below that. Indexing weighs the most because it works like a switch. You can write the best title in the world, and if the page is marked noindex nobody will ever see it.

For images, an empty alt="" isn’t an error. That’s the correct way to mark a decorative picture, and the check lists it as one. Tracking pixels of 1 × 1 are ignored.

Repairs you can make in the page head

Most findings take one line each to fix. A healthy <head> contains at least this:

<html lang="en">
<title>Oak dining tables made to order | Northfield Joinery</title>
<meta name="description" content="Solid oak tables built to your measurements, delivered in six weeks. See sizes, finishes and prices.">
<link rel="canonical" href="https://www.example.com/dining-tables/">
<meta name="viewport" content="width=device-width, initial-scale=1">
  • Title. Put the subject of the page first and the brand last. Results lists cut long titles at about 60 characters, and you’d rather lose the brand than the subject.
  • Headings. Use one h1 that repeats the subject, then h2 for sections and h3 inside them. Pick the level for its place in the outline and let CSS take care of the size.
  • Alt text. Say what the picture shows in one short sentence, like alt="Round oak table with four chairs". A file name such as IMG_4032.jpg tells a reader nothing.
  • Link text. Name the destination. “See delivery prices” still makes sense out of context, and “click here” doesn’t.
  • An unwanted noindex. It’s often a leftover from before the launch. In WordPress, clear the box under Settings › Reading. Elsewhere, search your templates and server configuration for noindex and X-Robots-Tag.
  • Sitemap. Add a line Sitemap: https://www.example.com/sitemap.xml to robots.txt. To test the file itself, there’s the sitemap check.

What the grade leaves out

The score describes the markup of one URL at one moment. A few things are out of its reach.

  • Text added by JavaScript. We read the page as the server sends it. If your headings and paragraphs are built in the browser, the check sees few words and no outline. The crawler view shows exactly what was received.
  • Quality and reputation. Whether your text answers the question better than other pages, and how many sites link to you, count far more for ranking than any tag. No tool can read that from the source.
  • The rest of the site. Duplicate titles across pages, orphan pages and slow loading need other checks.

An A grade means nothing in the markup is standing in the way. The page is allowed to rank. Whether it does is decided elsewhere.

Questions people ask

How long should a title tag be?

Between 30 and 60 characters is a safe target. Google cuts titles by pixel width, which works out to roughly 60 characters on a desktop screen. This check warns below 25 and above 65.

Does the meta description affect ranking?

No. Search engines don’t use it to order results. It often shows up as the two lines under your title, though, so a clear one brings more clicks. When it’s missing or off-topic, the engine picks a passage from the page instead.

Can a page have more than one h1?

HTML allows it and search engines cope. A single h1 still gives the clearest signal of the main subject, and screen reader users rely on it to find where the content starts.

Do I need a canonical tag on every page?

It’s good practice. The same page can often be reached with and without www, with a trailing slash, or with tracking parameters added. A canonical tag that names the preferred URL keeps those copies from being treated as separate pages.

Why does my page score low when it looks fine in the browser?

It’s usually content built by JavaScript. The check reads the HTML as delivered, before any script runs. If that HTML holds only an empty container, there are no headings, no images and no text to read.

What should alt text say?

Describe what the image shows and why it’s there, in a sentence of 5 to 15 words. Skip “image of” and don’t stuff keywords in. For pictures that are only decoration, use an empty alt="".