squirrelscan
GitHub

Core SEO audit rules: titles, canonicals and meta tags

Audit rules for the basics every page declares: title tag, meta description, canonical URL, H1, doctype, charset, robots meta and Open Graph tags.

Core SEO rules cover the declarations every page makes about itself: the title and description a search result is built from, the canonical URL that consolidates duplicates, the doctype and charset the browser needs before it parses anything, the H1, the favicon, and the robots directives that decide whether the page appears at all. Most run per page; two compare titles and canonical form across the whole crawl.

Run only these rules

squirrel audit https://example.com --rule-include core

Where to start

These carry the highest severity and weight in the category.

Rules

RuleWhat it flagsSeverityScope
Canonicals in two forms: www, scheme and trailing slashHalf the site canonicalising to www and half to the apex domain. squirrel compares four form axes across the crawl.warningSite-wide
Doctype must be declared first: what it means and the fixA page with no doctype, an old one, or a doctype that is not the first thing in the document. squirrel reads the raw response.warningPer-page
Duplicate page titles: the site-wide uniqueness checkTwo or more pages sharing a title after case and whitespace are normalised. squirrel groups them and lists every URL.warningSite-wide
Link rel=canonical header vs the HTML tag: the mismatchA page declaring one canonical in an HTTP header and a different one in the markup. squirrel parses the header and compares.warningPer-page
meta charset UTF-8: where it goes and what squirrel checksA page with no charset declaration, one that is not UTF-8, a header that disagrees with the page, or a meta charset past the first 1024 bytes. squirrel checks all three sources.warningPer-page
Meta description length: the 120 to 160 character rangeA page with no meta description, or one outside 120 to 160 characters. squirrel measures it on every crawled page.errorPer-page
Missing og:image: the Open Graph tags squirrel checksA page missing og:title, og:description or og:image, so shares render without a preview. squirrel checks four tags per page.warningPer-page
Missing or multiple H1: what squirrel expects on a pageA page with no H1, more than one, or an empty one. squirrel checks the heading on every crawled page.errorPer-page
No favicon found: the link rel icon tags squirrel looks forA page with no icon link at all, or only one format. squirrel reads the rel and the file extension on every link.warningPer-page
noindex in a robots meta tag or X-Robots-Tag header: what squirrel reports per pageA page declaring noindex or nofollow in its robots meta tag or X-Robots-Tag header. squirrel reads both on every crawled page and names the directive and where it was set.warningPer-page
nosnippet and max-snippet:0: pages with no search snippetA robots directive that stops search engines showing any description under the result. squirrel reads the robots meta on every page.warningPer-page
rel=canonical: presence, absolute form and self-referenceA page with no canonical link, a relative one, or one that points somewhere else. squirrel checks every crawled page.warningPer-page
Title tag length: the 30 to 75 character range squirrel usesA page with no title element, or one outside 30 to 75 characters. squirrel measures the title on every crawled page.errorPer-page
twitter:card: the card types and the Open Graph fallbackA page with no twitter:card, an unrecognised type, or a large-image card with no image. squirrel checks the type and the fallback.infoPer-page

Key terms

  • Canonical URL: The URL a page declares, with <link rel="canonical"> or a Link header, as the preferred address for its content.
  • Character encoding: The mapping from bytes to characters (normally UTF-8) declared in the Content-Type header or a meta charset tag; a mismatch produces mojibake.
  • Duplicate content: The same or near-identical content reachable at more than one URL, or repeated titles and descriptions across pages.
  • Heading hierarchy: The nesting of h1 to h6 headings that gives a page its outline for readers, screen readers and parsers.
  • HTML validity: Whether the markup parses as intended: closed elements, head-only tags in the head, and no raw markup printed as text.
  • Meta description: A <meta name="description"> summary of the page that search engines may use as the result snippet.
  • noindex: A robots directive, in a meta tag or the X-Robots-Tag header, that asks search engines to keep a page out of their index.
  • Open Graph: A set of og: meta properties (title, description, image, url) that controls how a link previews when it is shared.
  • Robots meta tag: A <meta name="robots"> tag carrying page-level directives such as noindex, nofollow, nosnippet and max-snippet.
  • Title tag: The <title> element in the page head; browsers show it in the tab and search engines usually use it as the result headline.
  • Trailing slash: Whether URLs end in /; /page and /page/ are different URLs, so a site should pick one and redirect the other.

Content checks titles and descriptions repeated across pages, and the text of each page. Crawlability follows the canonical and the robots directives through sitemaps and redirects. Social Media checks the og:image size and whether og:url agrees with the canonical.

Learn more

Disable all Core SEO rules

[rules]
disable = ["core/*"]

Type to search…

↑↓ navigate↵ openesc close