On-Page SEO
Meta Description: what it is and how to write it
What meta description is, how it affects CTR in search results, how to add the tag in HTML and popular CMS platforms — with templates and examples.
What is meta description and why you need it
Meta description is an HTML tag placed inside the <head> of a page. The content attribute holds a short description of the page — usually one or two sentences, 150–160 characters long. Users see this text in search results below the blue title link: that text block is the snippet.
The main job of a description is to set an accurate expectation for a searcher. Compare impressions, clicks and query context after an edit, but do not assume a fixed CTR lift or that Google will use the supplied text.
Meta description by the numbers
Context matters
Google may build a snippet from page content when it better matches the query.
Write for the searcher
State the page purpose and a truthful differentiator in natural language.
Avoid truncation
Preview the visible result, but do not treat a character count as a guarantee.
Compare like with like
Use a stable period and query group before attributing a click change.
The tag must be placed inside the <head> of the HTML document — that is where the crawler reads the description during indexing. If the tag is missing or empty, Google automatically generates a snippet from the page text: usually the first paragraph or a fragment that contains the user's search query.
<head>
<meta charset="UTF-8">
<title>Buy Winter Workwear Wholesale — SpecOpt</title>
<meta name="description" content="Winter workwear wholesale from the manufacturer: suits, overalls, gloves. Delivery across Russia. Prices from $12, bulk discounts from 50 units.">
</head>Description meaning and role in the snippet
"Description" simply means a brief account of something. In HTML, "meta description" is the page's meta-description — a short summary of the document's content for external systems: search crawlers, social networks, and messaging apps. When a page is shared in Telegram or LinkedIn, the description typically becomes the link preview text.
In search results, the description forms the bottom line of the snippet — the text below the blue title link. This is where users decide whether to click. A good description answers "what will I find on this page" and gives a concrete reason to visit: a price, a delivery window, exclusive content, or a direct answer to the query.
Google rewrites the description in about 70% of cases — when its algorithm decides a snippet pulled from the page text answers a specific query better. The more your description reflects the target keywords and actual page content, the higher the chance Google keeps your text rather than generating its own.
How to add meta description: syntax and optimal length
The tag syntax is simple and has not changed since early HTML. The <meta> tag is self-closing and requires no closing tag. It always goes inside <head>. Two required attributes: name="description" identifies the tag type, and content holds the description text.
<!-- Basic syntax -->
<meta name="description" content="Page description text, 150–160 characters long.">
<!-- Full document structure -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page Title — Brand</title>
<meta name="description" content="Short description of the page for search results.">
</head>
<body>...</body>
</html>The optimal description length for desktop is 150–160 characters. In mobile search, Google shows around 120 characters. If most of your traffic is mobile, target 120–130 characters. A longer description is not lost — it is indexed — but it is cut off in the snippet, so the user sees an ellipsis instead of your call to action.
| Description length | Result in search | When to use |
|---|---|---|
| Under 70 chars | Shown in full, but too little information for the user | Simple pages only (404, utility pages) |
| 120–130 chars | Full on mobile, slight cut-off on desktop | Mobile-first audiences |
| 150–160 chars | Optimal for desktop, minor cut-off on mobile | Most pages: homepage, categories, blog |
| Over 160 chars | Truncated with ellipsis on both formats | Not recommended: important text is lost |
- Empty
content.<meta name="description" content="">is worse than no tag at all. The crawler logs a technical defect and generates a snippet from the page content anyway. - Duplicate descriptions. The same text on dozens of pages signals low content quality. Find with Screaming Frog → Meta Description → Duplicate.
- HTML tags inside
content.content="<b>Buy</b> workwear"is invalid. Thecontentattribute accepts plain text only — no markup. - Unescaped quotes.
content="Buy "winter" suits"breaks the HTML. Use single quotes inside the value or"entities.
[Product name] — buy for [Price]. [Store USP]. Delivery [condition]. Even a simple template beats duplicates or missing tags.For dynamically generated pages, description is created programmatically — via CMS templates or server-side code. The core principle: every page must have a unique description that accurately reflects its content.
<?php
// Description template for a product page (PHP / E-commerce)
$description = sprintf(
'%s — buy for %s. %s. Delivery across the US from %d days.',
$product->name,
'$' . number_format($product->price, 2),
$product->short_benefit,
$product->delivery_days
);
// Trim to 160 characters without breaking a word
$description = mb_strimwidth($description, 0, 157, '...', 'UTF-8');
?>
<meta name="description" content="<?= htmlspecialchars($description) ?>">When and how to write description for different page types
A good description's structure depends on page type and user intent. The homepage describes the business as a whole. A category page covers the range and benefits. A product card focuses on the specific item with price and USP. A blog article tells the reader what they will learn. In every case, two principles apply: specificity and a call to action.
| Page type | Description formula | Example |
|---|---|---|
| Homepage | [What you do] for [whom]. [Key benefit]. [CTA]. | We make fire-resistant workwear for industrial enterprises. In-house manufacturing, certified to ISO standards. Request a catalogue. |
| Category | [Range/count]. [Price from]. [Terms: delivery, payment]. [CTA]. | Winter workwear for welders: 120+ models from $12. Delivery across the US in 1–3 days. Bulk discounts from 50 units. |
| Product card | [Name]. [Feature/USP]. [Price]. [Delivery/guarantee]. | TK-1 fire-resistant welding suit — ISO 11612 certified. Price $48. Same-day delivery in NYC, 3 days nationwide. |
| Blog article | [What the article covers]. [What the reader will learn]. [Fact or detail]. | How to add meta description in HTML and CMS: syntax, optimal length, templates for different page types, and common mistakes. |
| Service page | [Service] for [audience]: [what they get]. [Timeline]. [CTA]. | Technical SEO audit for e-commerce: indexation, speed, and structure. Full report in 5 business days. Request a quote. |
| Contact page | [Contact options]. [Business hours]. [CTA]. | Get in touch with the SEO agency: phone, email, Telegram. Mon–Fri 9 am–6 pm. We respond within one business day. |
Use the language a searcher expects when it truthfully describes the page. Search engines may highlight query terms, but formatting is their presentation choice; write the description for clarity rather than a promised click-through lift.
A call to action in the description is not clickbait — it is a useful signal. "Learn", "Read", "Compare prices", "Order with delivery" — these phrases tell users exactly what happens after they click. Studies show descriptions with a CTA have 10–15% higher CTR than neutral ones.
How to add description in CMS: WordPress, Bitrix, Tilda
Most modern CMS platforms let you manage description through an interface or SEO plugins. Manual code editing is only needed for custom builds or plugin-free setups. Here are the three most common platforms.
WordPress: Yoast SEO and Rank Math
In WordPress, the easiest way to manage description is through Yoast SEO or Rank Math — both are free and support templates. In Yoast SEO: open the post editor → "Yoast SEO" tab → "Google Preview" → "Edit snippet" → "Meta description" field. The plugin shows a character counter and flags errors. Rank Math: "Rank Math" tab → "Meta" section → "Description". Both support variables: %title%, %category%, %excerpt% — for post-type-level templates.
<?php
// functions.php — manual meta description without a plugin
// Use only if you are NOT using Yoast SEO / Rank Math
add_action('wp_head', function() {
if (is_single() || is_page()) {
$description = get_the_excerpt();
if (empty($description)) {
$description = mb_strimwidth(
strip_tags(get_the_content()),
0, 157, '...', 'UTF-8'
);
}
echo '<meta name="description" content="'
. esc_attr($description) . '">' . "\n";
}
}, 1);<head> — a technical defect that crawlers flag as an error. Pick one plugin.Bitrix
In 1C-Bitrix, description is set via page or component properties. In the admin panel: Content → select a section or page → "SEO" tab → "Description (meta description)" field. For auto-generated descriptions in a component template, use the SetPageProperty method — it passes the value to the site's header.php, where the tag is output in <head>.
<?php
// catalog.element template.php — auto-generate description
if (!empty($arResult['NAME']) && !empty($arResult['PREVIEW_TEXT'])) {
$description = $arResult['NAME']
. ' — ' . strip_tags($arResult['PREVIEW_TEXT']);
$description = mb_strimwidth($description, 0, 157, '...', 'UTF-8');
$APPLICATION->SetPageProperty('description', $description);
}
// site header.php — output the tag
$metaDesc = $APPLICATION->GetPageProperty('description');
if ($metaDesc): ?>
<meta name="description" content="<?= htmlspecialchars($metaDesc) ?>">
<?php endif; ?>Tilda
In Tilda, description is configured in two places. Site-wide: Site Settings → SEO → "Description" field. Per page: open the page → "Page Settings" (gear icon) → "SEO" tab → "Description" field. The page-level setting takes priority over the site-wide one. Tilda automatically inserts the tag in <head> — no code editing required. Best practice: fill in the description for each important page individually rather than relying on the global default.
Common mistakes and how to audit description across a site
The same description problems appear repeatedly in site audits. Most are easy to find with a crawler and easy to fix systematically via templates — not by hand for every page.
- Duplicate descriptions site-wide. The same text on dozens of pages — the CMS inserts the site name or tagline as the default. Find with Screaming Frog → Meta Description → Duplicate. Fix: unique texts or at least unique templates per page type.
- Missing description. Pages without the tag — Google generates a snippet from the content, often a poor choice. Find with Screaming Frog → Meta Description → Missing. Fix: write manually for priority pages, use a template for the rest.
- Description too long. Cut off mid-sentence in search results — the user sees "..." instead of your CTA. Limit: 150–160 characters. Check with SEMrush Site Audit → Meta description too long.
- Description too short. Under 70 characters — not enough information to drive a click decision. Google often replaces this with its own auto-generated version.
- Description does not match page content. The title promises one thing, description another, page a third. Mismatch → high bounce rate: the user clicks and immediately leaves.
- Target keyword missing from description. No bold highlighting in the snippet — a missed visual cue. Google bolds words matching the user's query — take advantage of that.
content? 7) content attribute not empty? All yes — description is optimised.FAQ
Answers to the most common questions about meta description that come up in audits and consultations.
Check it with SpiderHead
Free and local: run the audit on your own machine.



