Google uses over 200 signals to rank a page. But if you look at the signals that are both controllable on-page and consistently correlated with ranking movement, the list narrows to about 14. The rest are either off-page (links, authority), infrastructure (speed, Core Web Vitals), or signals so low-weight that they effectively don't move rankings on their own.
This checklist covers the 14 that actually matter — and for each one, exactly what "passing" looks like versus what will get flagged in an SEO audit.
Key Takeaways
- 14 on-page checks account for the vast majority of controllable ranking impact
- Three are ERRORS (each one can cause a page to fail to rank): missing title, missing H1, missing canonical
- Six are WARNINGS (each one reduces ranking potential): duplicate title, duplicate description, short/long title, missing OG image, heading skip, missing JSON-LD
- Fixing errors before warnings — a missing canonical is worth more than a slightly long meta description
- The same 14 checks can be run automatically across your entire site with the SEO Analyzer
The 14-Check On-Page SEO Audit
1. Title Tag — Present, Keyword-First, Right Length
The title tag is the single highest-impact on-page element. It appears in the SERP as the clickable headline, and Google reads it to understand the primary topic of the page.
What to check:
- Present: Every page must have exactly one
<title>tag. A missing title is an ERROR that guarantees Google will substitute its own (usually worse) title in the SERP. - 30–60 characters: Shorter than 30 chars is too thin to signal topic clearly. Longer than 60 chars gets truncated in the SERP.
- Keyword-first: The primary keyword should appear at or near the start of the title, not the end. "Free Link Checker — Find Broken Links" outperforms "Find Broken Links with Our Free Link Checker" for the keyword "free link checker".
- No duplicates: Two pages with the same title confuse Google about which to rank for shared queries. Duplicate titles are flagged separately from missing titles.
2. Meta Description — Present, 120–160 Chars, Relevant
The meta description doesn't directly affect rankings, but it drives click-through rate — which does. A well-written description with a clear value proposition and the target keyword gets more clicks, which is a behavioral signal Google uses.
What to check:
- Present: a missing description means Google pulls arbitrary snippet text from the page body
- 120–160 characters: shorter descriptions look thin; longer descriptions get truncated
- No duplicates: like titles, duplicate descriptions signal content at scale
3. H1 Tag — Exactly One, Keyword-First
The H1 is the on-page headline. Google uses it to confirm what the page is about (distinct from the title, which is the SERP headline). A page with no H1 forces Google to infer topic from body text alone. A page with multiple H1s sends contradictory signals.
What to check:
- Exactly one H1 per page — not zero, not two
- Keyword-first: same principle as the title — the primary keyword should lead the H1
- H1 should complement the title, not duplicate it word-for-word (minor variation is fine and natural)
4. Heading Hierarchy — No Skips
Skipping heading levels (h1 → h3, or h2 → h4) creates an accessibility issue and a structure signal problem. Google's parser and screen readers both use heading hierarchy to understand content structure. A skip forces them to infer the missing level, which adds ambiguity.
The correct pattern is h1 → h2 → h3 only. If you need a sub-sub-heading, it should be an h3 under an h2 — not an h4 that skips a level.
5. Canonical Tag — Present, Self-Referential, Correct Domain
Every page should declare its own URL as the canonical. Without a canonical, URL variants (HTTP/HTTPS, www/non-www, trailing slash) may be indexed as separate pages, splitting ranking signals. For a deep dive, see our canonical tag explainer.
What to check:
- Present: no canonical is a WARNING — Google will usually figure it out but shouldn't have to
- Pointing to the correct domain: a canonical to
http://on anhttps://site, or to an old domain, is an ERROR - Matching your sitemap: if the canonical says
/page/and your sitemap says/page, fix the inconsistency
6. Open Graph Tags — og:title, og:description, og:image
Open Graph tags control how your page appears when shared on social media and in link previews (Slack, iMessage, WhatsApp). A missing og:image means your links share as plain text — far lower click-through rate than a branded image preview.
What to check:
og:title— can match your title tag; ensures the social preview headline is controlledog:description— can match meta description; controls the social preview body textog:image— this is the most important of the three; use a 1200×630px image for best display across platformsog:url— should match your canonical URL exactly
7. Twitter Card
Twitter (now X) uses its own meta tags rather than Open Graph. twitter:card controls whether your link appears as a small card or a large image preview. Without it, Twitter falls back to a minimal text-only display.
The minimum viable set: twitter:card, twitter:title, twitter:description. Add twitter:image to override the OG image for Twitter specifically.
8. JSON-LD Structured Data
Structured data tells Google explicitly what type of content a page is — an article, a product, a FAQ, a how-to guide. Google uses this to decide whether to show rich results (star ratings, FAQs, breadcrumbs in the SERP). A page without JSON-LD is leaving rich result eligibility on the table.
What to check:
- At least one structured data block — ideally WebPage plus a type-specific block (BlogPosting, Product, FAQPage)
- Required properties for each type: Article requires
headline,datePublished,author; Product requiresname,offers - No validation errors — use the Schema Markup Tester to check required vs recommended properties
9. Image Alt Text
Every content image should have descriptive alt text. This serves two purposes: accessibility (screen readers read it aloud) and SEO (Google indexes alt text as a signal for image search and page topic relevance). A page with images and no alt text gets flagged for accessibility and has lower image search presence.
Decorative images (purely visual, no informational content) should have an empty alt attribute (alt=""), not no alt attribute at all. An empty alt tells screen readers to skip the image; a missing alt causes them to read the filename.
10. Noindex Check
A page with <meta name="robots" content="noindex"> or an X-Robots-Tag: noindex response header is explicitly excluded from Google's index. Most pages should not have this tag. It's correct on login pages, account pages, and internal search results — but if it appears on a page you expect to rank, it's a critical error that explains why the page isn't appearing in search.
Noindex is a WARNING in automated audits (not an error), because it's intentional on some pages. But any page showing up in an SEO audit as noindex should be confirmed as deliberate.
11. Viewport Meta Tag
The viewport meta tag tells browsers how to render the page on mobile devices. Without it, mobile browsers render the page at desktop width and scale it down — causing text to appear tiny, touch targets to be inaccessible, and Google's mobile-first indexer to classify the page as not mobile-friendly.
The correct tag: <meta name="viewport" content="width=device-width, initial-scale=1.0">. Any deviation from this (especially user-scalable=no or maximum-scale=1) will also fail mobile accessibility checks.
12. Internal Linking
Internal links pass PageRank between pages and help Google discover content. A page with no internal links pointing to it is an orphan page — Google may never find it through crawling. A page with no internal links from it misses the opportunity to distribute authority to related pages.
Audit checks: any important page with zero inbound internal links should be linked from at least one relevant parent page. Use descriptive anchor text that includes the target page's keyword — not "click here" or "read more".
13. Page Speed and TTFB
Core Web Vitals are a confirmed ranking factor. Of the on-page elements that affect CWV, the most actionable single check is TTFB (Time to First Byte) — the time before your server starts sending the page. A TTFB above 600ms is a red flag. Above 1800ms is a scoring failure.
Additional checks: render-blocking scripts in the <head>, images without width/height dimensions (causes Cumulative Layout Shift), and below-fold images without loading="lazy". The Page Speed Inspector surfaces all of these with specific file-level detail.
14. Duplicate Content Detection
Two pages on the same site with the same title or the same meta description signal duplicate content. Google will either merge their rankings onto whichever it deems more authoritative, or both may underperform because the signals are diluted. Duplicate detection is distinct from missing content — it requires comparing across pages, not just checking each one in isolation.
Common causes: product variants with slightly different URLs but identical descriptions, category pages with pagination that share the parent category's title, and auto-generated location pages with templated content.
Priority Order: Which Checks to Fix First
| Check | What it affects | Severity | Fix first? |
|---|---|---|---|
| Missing title | Google substitutes its own; SERP headline uncontrolled | ERROR (−15 pts) | Yes — highest priority |
| Missing H1 | Google infers topic from body; no primary heading signal | ERROR (−15 pts) | Yes |
| Multiple H1s | Contradictory heading signals | ERROR (−15 pts) | Yes |
| Missing canonical | URL variants compete; PageRank splits | ERROR (−15 pts) | Yes |
| Canonical mismatch | Google told to index wrong URL | ERROR (−15 pts) | Yes — fix immediately |
| Duplicate title | Both pages may rank lower than either would alone | WARNING (−5 pts) | After errors |
| Title too short/long | Truncation in SERP; thin topic signal | WARNING (−5 pts) | After errors |
| Missing/short/long description | Reduced CTR; Google substitutes arbitrary text | WARNING (−5 pts) | After errors |
| Missing OG image | Social shares appear as text-only links | WARNING (−5 pts) | After errors |
| Heading hierarchy skip | Content structure ambiguity; accessibility fail | WARNING (−5 pts) | After errors |
| Missing JSON-LD | No rich result eligibility | WARNING (−5 pts) | After errors |
| Noindex detected | Page excluded from index — intentional or not? | WARNING (−5 pts) | Verify intent |
| Missing OG description/URL | Social previews less precise | INFO (−2 pts) | After warnings |
| Missing Twitter card | Twitter previews fall back to minimal display | INFO (−2 pts) | After warnings |
| Missing viewport | Mobile rendering broken | INFO (−2 pts) | After warnings |
How to Run This Checklist Without Doing It Manually
Running 14 checks manually on a single page takes 5–10 minutes. Running it on a 200-page site takes a day. The better approach is automated detection, then human review of what the audit surfaces.
For single-page audits, the On-Page SEO Checker gives you a 0–100 score with each check marked pass/warn/fail, the actual detected values, and specific fix instructions. You paste a URL, it returns results in seconds.
For site-wide audits, the SEO Analyzer crawls all internal pages, scores each one, and lets you filter by error type across the site — so you can fix all TITLE_MISSING pages in one batch, then all CANONICAL_MISMATCH pages, rather than reviewing each page individually.
Run the 14-Point Audit on Any Page Now
Free, no signup. Paste any URL and get a scored audit of all 14 checks — errors, warnings, and exact values — in under 60 seconds.
Try the On-Page SEO Checker Free →Affiliate disclosure: Some links on this page may be affiliate links. We only mention tools we've personally used and have an honest opinion about. Affiliate revenue helps keep ByteWaveNetwork's tools free and maintained. We are not paid by any of the tools compared in this article for favorable coverage.