On-Page SEO Audit Guide: Titles, Headings, Canonicals and Image Alt Text

Google Search Central is the primary source for how Google treats titles, canonicals and robots. This guide is a field checklist, not a ranking forecast. ToolUpa does not fetch live URLs in this static build.

On-page SEO is the work you do on a URL you control: title, meta description, headings, canonical, robots, image alt text, links and social preview tags. It is not a DA number. It is not a “94/100 on-page score” from a crawler that never read your unique H1. If you cannot point at the HTML, you are not auditing the page. You are decorating a dashboard.

On-Page SEO Inspector reads HTML you paste. Live fetching is disabled so the site cannot be used as an open proxy against localhost, private IPs or cloud metadata. When CORS would block a browser request anyway, view-source and paste is the honest path. Checks that cannot run are labelled N/A.

Title element: one unique sentence about this URL

Google’s documentation on title links explains that the <title> is a strong hint, not a command. Google may rewrite titles. Your job is still to write a unique, descriptive title. ToolUpa’s inspector uses a 15–60 character heuristic so empty or novel-length titles fail. That band is a readability aid, not a Google specification. A missing title fails. Five titles on one page is not a thing; the first title element is what parsers see.

Do not repeat the brand five times. Do not stuff the same keyword the H1 already states three times. “On-Page SEO Audit Guide | ToolUpa” is enough brand. “SEO SEO SEO audit tool free rank #1” is not an audit, it is a doorway page.

Meta description: the offer under the title

Meta descriptions do not directly rank. They influence the snippet when Google uses them. Write 70–160 characters that would make a human click without lying. The inspector fails missing descriptions and very short ones. It does not score “emotional power.” If the page is a tool, say what the tool does. If the page is a guide, say who it is for.

Headings: one H1, then a real outline

Use one H1 that matches the page topic. Then H2s for sections, H3s for substeps. Skipping from H1 to H3 because the CMS theme styled H3 smaller is a hierarchy bug. The inspector counts H1s and warns when H3s exist with zero H2s. It does not crawl JavaScript-injected headings unless you paste the rendered DOM.

Headings are for people who skim and for assistive tech. They are a poor place to hide extra keywords. If you need a content outline before the page exists, use Blog Brief & Outline Architect and the companion article How to Plan an SEO-Friendly Blog Outline.

Canonical and robots: say which URL is the page

A canonical link tells search engines the preferred URL when several addresses could show the same document. Google’s canonical documentation is the primary reference. The inspector only checks that a canonical href exists in the pasted HTML. It cannot prove the canonical is reachable, self-consistent, or free of redirect loops. Those checks need a crawler you run on purpose, with SSRF controls, which this static site does not provide.

A robots meta of noindex is a valid choice for thank-you pages and internal search. It is a disaster on a public article you wanted indexed. The inspector fails noindex so you notice. If you meant noindex, the fail is a reminder, not a moral judgment. robots.txt is a different file; do not confuse Disallow with noindex. Google has documented that difference for years.

Images and alt text

Alt text describes the image when the image cannot be seen. Decorative images can use empty alt. Informative images need a short description of the information, not “image1.png.” The inspector counts <img> tags without an alt attribute. It cannot judge whether your alt is accurate. “Photo of a navy carousel slide with the headline Batch Monday” is useful. “best instagram carousel tips 2026” is stuffing.

File weight is a performance issue, not an alt issue. Pair this audit with Website Speed Optimization when the HTML is full of uncompressed screenshots.

Links and Open Graph

Internal links help humans move. External links to primary sources help trust. The inspector counts hrefs that look internal (/, #, .) versus http(s) URLs. It does not fetch them, so it will not find 404s. Click your own links. Open Graph tags (og:title, og:description, og:url, og:image, og:type) control many unfurl previews. Missing three of five is a fail in the inspector because shares will look unfinished. That is not a Google ranking factor by itself.

Worked example: the sample HTML in the tool

The load-sample markup has a four-character title, a noindex robots tag, one H1, an H3 with no H2, an image without alt, an outbound link and no canonical. Running it should produce a stack of FIX rows. That sample exists so you can see the report without doxxing a live site. Fixing it means writing a real title and description, adding a canonical, removing noindex if the page should be public, adding an H2, and giving the image alt text.

Security limits you should want

Pasting HTML is safer than asking a server to fetch arbitrary URLs. If a future ToolUpa host adds fetching, it must block localhost, private and reserved IP ranges, link-local, metadata hostnames, and redirect hops that land on those targets. It must cap time, size and content type, and it must not execute scripts. Until then, the live-fetch row stays N/A. That is a feature.

A practical audit order for a small site

Start with templates, not with random URLs. Home, a tool page, an article, a legal page. Paste each template’s HTML once. Fix the theme-level bugs (missing default description pattern, heading skip in the sidebar, images in the header without alt) before you crawl two hundred URLs by hand. ToolUpa’s own pages share a header and footer; a single missed alt in a repeating component would multiply. Yours will too.

Then sample unique bodies: one article with a table, one tool with a form, one category index. Forms need labels, which are accessibility first and only indirectly SEO. Empty tool result states should not be indexable thin pages if they are reachable as unique URLs with no content. ToolUpa keeps tools on stable URLs with instructions even before you generate output, so the page is still a document.

Finally, check robots and canonicals on staging versus production. A staging noindex left on production is a classic self-inflicted outage. The inspector will surface noindex if it is in the HTML you paste. It will not know whether you pasted staging. Label your paste.

Structured data without theater

Article, BreadcrumbList, WebSite and SoftwareApplication appear on ToolUpa only where the page type matches. Do not add Review schema with a 4.9 star rating you invented. Do not add FAQ schema for questions you did not put on the page. Google’s structured-data documentation is explicit that markup should reflect visible content. The inspector does not currently parse JSON-LD; that is a listed limitation, not a hidden extra score.

If you add Organization schema, use details you can defend: name, url, support email. Do not invent a founding date, employee count or award. The About page should match. Inconsistency between schema and visible copy is worse than sparse markup.

Checklist

  • Unique title, descriptive, not stuffed.
  • Meta description that matches the page.
  • One H1, logical H2/H3 tree.
  • Canonical present and, separately, verified in the wild.
  • Robots meta matches intent.
  • Images have alt attributes.
  • OG tags filled if the page will be shared.
  • No invented ranking score on the report.

FAQ

Why paste HTML instead of typing a URL?

Browsers block most cross-origin fetches. A server fetch without SSRF controls is dangerous. Paste view-source from a page you control.

Does passing every check mean I will rank?

No. It means the HTML you pasted is not missing basic fields.

Can the inspector see CSS background images?

No. It reads img tags in the HTML string.

Related reading