Issue #301 · CRITICAL
Issue 301
What is this issue?
This issue checks whether the page has a <meta name="description"> tag in the HTML
the server returned.
The meta description is the paragraph of text that appears under the headline in search results. It is not a ranking factor, but it is the sales copy for your page in the one place a potential visitor is deciding between you and nine other results.
For this check to pass:
- A
<meta name="description" content="...">element must be present inside<head> - The
contentattribute must contain actual text, not be empty or whitespace only - It must be in the server's response, not injected later by client-side JavaScript
This check is only about presence. Whether the description is a sensible length is issue #304 and #305, and whether it is unique across the site is issue #40.
Example: A crawler fetching your page should immediately see
<meta name="description" content="Compare our wireless noise-cancelling headphones — 30-hour battery, adaptive ANC, and free returns.">
Why does it matter?
A missing meta description affects:
- Click-through rate: With no description, Google assembles a snippet from whatever body text seems to match the query. That is often a fragment of a navigation menu, a cookie banner, or a mid-sentence clause — none of which persuade anyone to click.
- Message control: The description is the only part of your search listing you write yourself and that is not constrained to ~60 characters. Leaving it out hands that space to an algorithm.
- User experience: A coherent summary sets expectations, which reduces the number of visitors who arrive, find the wrong thing, and bounce straight back.
- AI Search / AEO: Answer engines frequently reuse the description as the summary they present alongside a citation.
Fixing this raises your SEO health score. It is scored as critical not because the tag influences rank directly, but because its absence measurably costs traffic on pages that already rank.
How to fix it
-
Add a
<meta name="description" content="...">inside<head>on every page that returns HTML. -
Write it as ad copy, not a summary. Say what the visitor gets and why this page answers their question. A description that reads like a table of contents is worse than one Google writes.
-
Include the terms someone would search for. Google bolds matched query terms in the snippet, which makes the listing visually louder in the results page.
-
Aim for 150-160 characters. Shorter is likely to be discarded in favour of an auto-generated snippet; longer gets truncated. See issues #304 and #305.
-
Front-load the important part. If it is cut, the tail is what disappears — so put the call to action early.
-
Make sure it is server-rendered. If your framework sets metadata on the client, the raw HTML has no description. Generate it wherever the server response is built.
-
Write a distinct one per page. Reusing a single site-wide description is reported separately under issue #40.
Examples
1. No description element
Problem:
<head>
<title>Wireless Noise-Cancelling Headphones | Acme Audio</title>
</head>
Fixed:
<head>
<title>Wireless Noise-Cancelling Headphones | Acme Audio</title>
<meta
name="description"
content="Compare our wireless noise-cancelling headphones — 30-hour battery, adaptive ANC, and free returns within 60 days."
/>
</head>
2. Empty content attribute
Problem — the tag is there, so a template check passes, but there is nothing in it:
<meta name="description" content="" />
Fixed:
<meta
name="description"
content="Compare our wireless noise-cancelling headphones — 30-hour battery, adaptive ANC, and free returns within 60 days."
/>
3. Wrong attribute name
Problem — property is the Open Graph syntax; the standard meta description uses
name, so this is not read as a description at all:
<meta property="description" content="Wireless headphones with adaptive ANC." />
Fixed:
<meta name="description" content="Wireless headphones with adaptive ANC." />
How PixyScan detects this
-
Fetches the raw HTML. PixyScan requests the page and captures the server's response after following any redirects.
-
Does not execute JavaScript. Only the HTML the server sent is analysed, which is what a crawler sees on first contact.
-
Looks for the description. The document's
<head>is parsed and the<meta name="description">element'scontentattribute is read. -
Decides. The issue is raised when there is no such meta element, or when its
contentis empty or whitespace only. A description that is present but the wrong length is not reported here — that is issue #304 or #305 — so a page with a short description is never described as having none.