Skip to main content
SlapMyWeb
On-Page SEO

Dynamic Meta Tags

Titles and descriptions generated per page from templates and data rather than written by hand.

Dynamic meta tags are titles and descriptions generated from a template and the page's own data, rather than written individually. They are how a site with thousands of pages avoids blank or duplicate metadata. The risk is that a template producing near-identical output across pages reads as duplication, which is worse than a plain title.

Definition

A dynamic meta tag substitutes values into a pattern — {product} price and reviews | {brand} — so every page in a large set gets its own title without an editor writing each one.

Two failure modes are common. A template that leaves too little variation produces hundreds of near-identical titles. And a template with a fixed suffix produces titles that overflow Google's ~60-character cut whenever the variable part is long, so the part that gets truncated is the brand or, worse, the subject.

Why It Matters

At scale, metadata is either templated or absent. A good template is the difference between thousands of pages with useful, distinct titles and thousands sharing one.

Example

{term} — SEO Glossary | SlapMyWeb works for "CLS" and overflows for "Search Engine Results Page". The fix is a template that drops the qualifier, then the brand, when the subject is long.

The two ways a template fails

Overflow. A pattern like {term} — SEO Glossary | Brand has 22 fixed characters, leaving about 38 for the variable part before Google's ~60-character cut. "CLS" fits comfortably; "Search Engine Results Page" does not, and what gets truncated is the brand, then the qualifier, then the subject itself. This site shipped a 94-character glossary title from exactly this pattern.

Sameness. The opposite failure is a template whose output barely varies — Buy {product} online at the best price across four thousand products produces four thousand titles that differ by one noun. Search engines treat that as the duplication it is, and rewrite them.

Writing a template that degrades

The fix for overflow is to treat every part except the subject as optional, and emit the most complete version that fits. In order: subject + qualifier + brand, then subject + brand, then subject + qualifier, then the bare subject.

That way a short subject keeps the full framing and a long one keeps the thing the page is actually about — which is the part you can never afford to lose. If even the bare subject overflows, the right response is to shorten the source data, not to truncate mid-word: a title cut mid-word reads as broken in the results.

fitTitle({ subject: term, qualifier: 'SEO Glossary', brand: 'SlapMyWeb' })
// "CLS — SEO Glossary | SlapMyWeb"          (30 chars, full framing)
// "Search Engine Results Page | SlapMyWeb"   (38, qualifier dropped)

The double-brand trap

Most frameworks support a title template — a site-wide pattern such as %s | Brand that wraps whatever a page supplies. It is genuinely useful, and it interacts badly with a helper that also appends the brand.

The result is Page Title | Brand | Brand, which is both wrong and long, and it is invisible in the editor because each half looks correct on its own. Whichever layer owns the brand, only one of them may add it: either the helper returns an absolute title that bypasses the template, or it returns the bare subject and lets the template do the work.

This site shipped that exact bug on 69 pages before a crawl caught it.

Descriptions need the same treatment, for a different reason

Titles fail by overflowing; descriptions fail by being generic. Google rewrites a meta description more often than it uses one, and the version it writes is drawn from the page — so a templated description that says nothing specific is simply discarded.

A description earns its place by containing something the template cannot generate: the actual number, the actual finding, the specific phrasing of the query. Compare {product} prices and reviews is a placeholder; {product} scored {n}/100 across {checks} checks — see what it failed is a reason to click.

Where the source data is too thin to produce that, the honest answer is to compose from what exists and accept a shorter description rather than padding it to a character target.

How SlapMyWeb checks this

The audit reads the rendered title and description of every page it crawls and reports the length of each, so a template that overflows on long values shows up as a cluster of pages at 65-75 characters rather than as one bad page. It also flags duplicate titles and descriptions across the site, which is the other way a template fails: too little variation between the values it substitutes. Preview how a title will be cut with the SERP snippet preview.

Know the term.
Check your own site.

A free audit tells you whether this is currently costing you score points — and exactly what to change.

Run a free audit
Free foreverNo signupResults in 30s