What Is a Meta Description? β Definition and How It Works
Learn what a meta description does, why search engines often rewrite it, and how to use it when extracting page summaries.
A meta description is an HTML tag providing a short summary of a page, intended for use as the snippet beneath a search result.
<meta name="description" content="A compact mechanical keyboard tested over three months, with battery and latency measurements.">
1. It Is Not a Ranking Factor
Search engines have stated clearly that the meta description is not used as a ranking signal. Its influence is on click-through rate: a description that matches what a searcher wants earns the click that a generic one does not.
That distinction matters because it changes what a good description is optimised for β persuasion and relevance, not keyword placement.
2. Search Engines Frequently Rewrite It
A large share of the time, the snippet shown is not the meta description. Search engines generate one from page content when they judge it a better match for the specific query.
That happens most when the description is generic, duplicated across pages, missing, or unrelated to the query terms. A query-matched passage from the page body is often genuinely more useful than a fixed summary.
The practical consequence: a meta description is a suggestion, and the snippet is chosen per query.
3. Length
There is no fixed character limit β snippets are truncated by pixel width, which varies by device and by the characters used.
Roughly 150β160 characters is the conventional working range for desktop results, with mobile shorter. The reliable approach is to put the essential information first, so truncation removes only the tail.
4. Using It in Extraction
For collection, the meta description is a convenient page-level summary, with caveats:
def page_description(doc):
for sel in ('meta[name="description"]',
'meta[property="og:description"]',
'meta[name="twitter:description"]'):
el = doc.css_first(sel)
if el and el.attributes.get("content", "").strip():
return el.attributes["content"].strip()
return None
Note name for the standard tag and property for Open Graph β an extractor reading only one attribute finds one and misses the other.
5. What It Is and Is Not Good For
Useful as: a short human-written summary, present on most content pages, in a consistent location across every site.
Not useful as: a factual summary of the content. It is marketing copy, frequently written to attract a click rather than to describe accurately, and sometimes templated with placeholders filled in.
So it is fine as a display snippet or a title-adjacent label, and unsuitable as ground truth for classification or as a substitute for reading the page.
6. Common Faults Worth Recording
- Missing entirely on a large share of pages.
- Identical across many pages, from a template.
- Truncated mid-sentence, indicating a generated value.
- Containing raw template markers where substitution failed.
- Keyword-stuffed, which reads as spam and is usually rewritten by the engine anyway.
- Disagreeing with
og:description, which is worth capturing separately rather than merging.
For an SEO audit these faults are the point of extracting the field. For a content pipeline they are reasons not to trust it.
7. Related Tags
| Tag | Purpose |
|---|---|
og:description |
The share-card summary; often better maintained |
twitter:description |
Twitter card equivalent |
<title> |
The result title, and a genuine ranking factor |
meta name="robots" |
Indexing directives, including snippet limits |
meta name="keywords" |
Obsolete; ignored by major engines |
og:description is frequently the more carefully maintained of the two, because publishers watch how their links look when shared.
8. Summary
A meta description is a page-level summary tag intended for search snippets, and it is not a ranking factor β its effect is on click-through, and engines often replace it with a query-matched passage from the page.
For extraction it is a convenient, consistently located human-written summary, but it is marketing copy rather than fact: read both name="description" and og:description, capture disagreements rather than merging them, and never treat it as ground truth about the content.