Metadata
Titles, descriptions, canonicals, robots directives and social cards. The cheapest wins available and the most commonly half-finished layer on an otherwise well-built site.
7 min read · updated 2026-07-26· last reviewed 2026-07-26
The first 60 or so characters of a title carry nearly all its weight, both for matching and for the click. Spending the first 15 of them on a brand name nobody searched for is the most common self-inflicted wound in this layer.
Use a template with the brand as a suffix, and give the home page a keyword-led default rather than a brand-led one. The exception is a brand strong enough that the name is itself the query, which is a smaller set of companies than the ones that behave as though they are in it.
The rest of "Metadata"
1,346 words covering 7 sections, with the implementation code for 11 checks. The table of contents below is the full outline, so you can see exactly what is behind this.
Already bought it? Read it in your library.
What this chapter covers
- Titles lead with the term, not the brand
- The principle
- The implementation
- Every indexable URL has a unique title and description
- The principle
- The implementation
- Descriptions contain a number and an offer
- The principle
- The implementation
- Canonicals are absolute and self-referencing
- The principle
- The implementation
- Robots directives are explicit
- The principle
- The implementation
- Social cards, including the parts platforms silently require
- The principle
- The implementation
- Icons, the manifest, and cache busting
- The principle
- The implementation
Checks this chapter covers
Each one has a command you can run against your own site.
- →A title template with a keyword-led default, not a brand-led onemeta-title-template
- →Every indexable URL has a unique title and descriptionmeta-unique-titles
- →Descriptions contain a number and a specific offermeta-description-with-number
- →Every page has a self-referencing absolute canonicalmeta-canonical-absolute
- →Canonical generation normalises slashes, case and query parametersmeta-canonical-normalised
- →Open Graph tags with a 1200x630 image, alt text and an explicit MIME typemeta-open-graph
- →twitter:card set to summary_large_image with its own title and descriptionmeta-twitter-card
- →Explicit robots directives, including max-snippet and max-image-preview for Googlebotmeta-robots-directives
- →hreflang alternates including x-default, even on a single-language sitemeta-hreflang-xdefault
- →A full icon set with cache-busted URLs and a complete web manifestmeta-icons-versioned
- →Authenticated routes carry a robots noindex tag as well as a robots.txt disallowmeta-noindex-private-routes