Guides
Guides for every check
Plain-English guides for all 66 on-page SEO checks: what each one measures, why it matters and exactly how to fix it.
Content optimisation
Title, meta description, headings, word count, readability, canonical
Title tag present
A non-empty <title> exists
Title length
Title is 50–60 characters; warn under 30 or over 60; critical over 70
Title pixel width
Title renders under 580 px in a desktop result
Title keyword repetition
No single word repeated more than twice in the title
Meta description present
A meta description tag exists
Meta description length
Description is 140–158 characters; warn outside 120–165
H1 present
Exactly one H1 exists on the page
Single H1
No more than one H1 element
H1 length
H1 is 5–70 characters
H1 and title alignment
H1 and title share at least one significant term
Heading hierarchy
No heading level is skipped (H1 → H3 without H2)
Empty headings
No heading element is empty or whitespace only
Body word count
At least 300 words of body content; warn below, critical below 100
Language attribute
html element declares a valid lang attribute
Search optimisation
Indexability, robots directives, canonical integrity, URL hygiene, hreflang
HTTP status
Final URL returns 200; 3xx noted, 4xx and 5xx are critical
Robots meta tag
No noindex in the robots meta tag
X-Robots-Tag header
No noindex in the X-Robots-Tag header
robots.txt reachable
robots.txt returns 200 and is parseable
Crawling allowed
This URL is not disallowed for major crawlers
Conflicting noindex directives
No conflicting noindex directives between header and meta
Canonical tag present
A canonical link element is present
Canonical resolves
Canonical target returns 200 and is not a redirect chain
Self-referencing canonical
Canonical points to this URL or a deliberate consolidation target
hreflang validity
If hreflang exists, codes are valid and return links reciprocate
Sitemap declared
At least one sitemap is declared in robots.txt
Sitemap valid
Declared sitemaps are reachable and valid XML
HTTPS
Page is served over HTTPS with a valid certificate
HTTP redirects to HTTPS
http:// 301-redirects to https://
Mixed content
No insecure subresources on an HTTPS page
www and non-www
www and non-www resolve to one canonical host via 301
URL case sensitivity
Uppercase URL variants redirect to the canonical lowercase form
Trailing slash handling
Trailing-slash handling is consistent and redirected
Duplicate slashes
Duplicate slashes in the path redirect rather than serving 200
Duplicate hyphens
Duplicate hyphens in the path do not serve a duplicate 200 page
Injected parameters
Arbitrary injected query parameters do not create indexable duplicates
Parameter order
Reordered parameters resolve to one canonical version
404 handling
A non-existent path returns a genuine 404, not a soft 200
Index page redirect
/index.html and /index.php redirect to the directory root
Page speed
Core Web Vitals, render-blocking resources, transfer size, TTFB
Mobile PageSpeed score
PageSpeed Insights mobile score; warn under 70, critical under 50
Desktop PageSpeed score
PageSpeed Insights desktop score; warn under 85, critical under 60
Largest Contentful Paint
LCP under 2.5 s; critical over 4.0 s
Cumulative Layout Shift
CLS under 0.1; critical over 0.25
Interaction to Next Paint
INP under 200 ms; critical over 500 ms
Time to First Byte
TTFB under 800 ms; critical over 1.8 s
Page weight
Total transfer under 2 MB; critical over 5 MB
Render-blocking resources
Fewer than four render-blocking scripts or stylesheets
Images
Alt attributes, dimensions, format, lazy loading, oversized files
Image alt attributes
Every content image has an alt attribute; decorative images use alt=""
Broken images
No image returns a 4xx or 5xx
Image dimensions declared
Images declare width and height to prevent layout shift
Oversized images
No image is served more than 1.5x its rendered dimensions
Modern image formats
Images use WebP or AVIF where supported
Lazy loading
Below-the-fold images use loading="lazy"
Links
Internal count, external count, broken links, nofollow ratio, anchor quality
Internal links
At least three internal links; zero is critical
Broken links
No internal link returns 4xx or 5xx
Valid href values
All href values are syntactically valid URLs
External links
At least one external link where contextually appropriate
Anchor text quality
Fewer than 20% of anchors are generic ("click here", "read more")
Internal nofollow ratio
Internal links are not needlessly nofollowed
Link count
Fewer than 150 links on the page
Structured data
Schema presence, validity, type appropriateness, Open Graph, Twitter cards
Structured data present
At least one JSON-LD or microdata block is present
Structured data valid
Structured data parses and validates against schema.org
Schema type appropriate
Declared type matches the detected page type
Required schema properties
All required properties for the declared type are present
Open Graph basics
og:title, og:description, og:type and og:url are present
Open Graph image
og:image is present, reachable and at least 1200x630
Twitter card
twitter:card is declared
