How to do an on-page SEO audit of a single page
An on-page SEO audit looks at what's inside one page's HTML and asks whether search engines and people can tell what the page is about. It doesn't cover backlinks, site speed or keyword research. It's a narrow job, but most fixes that a client can make the same day come from it.
You need the page's HTML, which you can get with View Source (Ctrl+U / Cmd+Option+U) or with curl -s https://example.com/page, and a place to write notes.
1. Check the title tag
Find <title> in the <head>.
- Is there exactly one? Missing or duplicate titles are common on CMS templates.
- Does it describe this page? "Home" or "Untitled" tells nobody anything.
- Is the important part first? Google doesn't publish a hard character limit, but long titles get cut off in results, so put the subject before the brand name.
- Is it unique across the site? Template titles like
Products | Acmerepeated on 200 pages are a typical finding.
Google may rewrite the title it shows from other text on the page, so a clear title and a matching <h1> work best together.
2. Check the meta description
Look for <meta name="description" content="...">.
- It doesn't directly affect rankings, but Google may use it as the snippet under your result. A good one is a plain summary of the page that someone would want to click.
- Flag descriptions that are missing, duplicated across pages, or just a list of keywords.
- Google may show other text from the page instead. That's normal, so don't report it as an error.
3. Check the heading structure
List every <h1> to <h6> in order.
- One clear
<h1>that matches the page topic. Zero is a problem. Several aren't technically invalid, but they usually mean the template is using headings for styling. - No skipped logic. An
<h4>straight under the<h1>usually means headings were picked for font size. - Empty headings (
<h2></h2>) and headings holding only an image with no alt text are worth reporting.
4. Check image alt text
Find every <img>.
- Content images need an
altthat describes the image in context:alt="Red trail running shoe, side view", notalt="IMG_4032". - Purely decorative images should have an empty
alt=""so screen readers skip them. A completely missingaltattribute is different from an empty one, and only the missing one is a problem. - Don't stuff keywords into alt text.
5. Check links
- Anchor text: "click here" and "read more" tell nobody where a link goes. Descriptive anchors help users and search engines.
- Empty or broken
hrefs:href="#",href=""orjavascript:void(0)on real navigation links. - Internal links: a page with no links to other pages on the site is a dead end. Note it.
- External links that open in a new tab should have
rel="noopener". That's a security habit, not a ranking factor, so give it low priority.
6. Check the canonical tag
Look for <link rel="canonical" href="...">.
- It should point to the preferred URL for this content, usually the page itself.
- Use an absolute URL (
https://example.com/page). Google warns that relative canonicals can resolve to the wrong address. - Common mistakes: every page on the site canonicalising to the homepage, canonicals pointing to
http://or staging domains, or two canonical tags that disagree. - A canonical is a hint, not a command. Google may choose a different URL, but a wrong canonical still makes that more likely.
7. Check the viewport tag
Mobile pages need:
`html
<meta name="viewport" content="width=device-width, initial-scale=1">
`
If it's missing, phones render the page at desktop width, zoomed out. Report it as high priority, because Google indexes the mobile version of pages.
8. Check Open Graph tags
These control how the page looks when it's shared on social platforms and in chat apps. The Open Graph protocol lists og:title, og:type, og:image and og:url as the basic set, and og:description is usually added too.
- A missing
og:imageproduces a bare link card when the page is shared. og:urlshould match the canonical.- These are about how shared links look, not about rankings, so rank them below the title and canonical issues.
9. Rank what you found
A flat list of 30 issues is hard to act on. Sort it:
1. High: missing or duplicate title, missing <h1>, a wrong canonical, a missing viewport tag.
2. Medium: a weak or missing meta description, missing alt text on content images, vague anchor text.
3. Low: Open Graph gaps, heading-order cleanup, rel="noopener".
Write each item as *what's wrong, where it is, what to change*, for example: "The title is Home. Change it to describe the service, such as Emergency Plumber in Leeds | Smith & Co."
Common pitfalls
- Auditing the rendered page rather than the source, or the other way round. If the site builds tags with JavaScript, View Source may not show them. Check the Elements panel in DevTools too.
- Reporting guesses as rules. Character counts for titles and descriptions are rules of thumb, not Google requirements.
- Mixing page-level and site-level issues. Duplicate titles across a site are a template fix, so report them once.
Doing it faster
Going through these nine checks by hand takes a while for each page, and it's easy to miss a tag. We make Auditfold, which runs these checks on pasted HTML in one step and returns a score and a fix list ranked by importance, in plain words. It's one option. The manual method above works just as well if you have the time.