Insights › Technical SEO
Meta descriptions: what they actually do and how to write one
A meta description has no direct ranking impact, but it's the snippet under your search result — and that snippet decides whether someone clicks. Here's what makes a good one, how generated apps break them, and the one test that catches every problem.
Aug 8, 2026 · 5 min read
The short version
A meta description is the snippet under your search result. Google doesn't use it for ranking, but it's what a searcher reads before deciding whether to click — and click-through rate does affect ranking indirectly. A good one is specific, truthful, and under 160 characters. A generated app typically ships with the same description on every page, or none at all.
What it looks like
<meta name="description" content="Track shared bills, settle up in a tap, no signup required for guests. Free for groups under 5.">The three rules
- Every indexable page has its own. The homepage, pricing, docs, blog — each page serves a different intent, so each needs a description that matches what's on that specific page. Copying one description everywhere is the most common generated-app mistake.
- Under 160 characters (including spaces). Longer than that and Google truncates it with an ellipsis, usually mid-sentence. The truncation point is by pixel width, not character count, so 155 is a safer target.
- It matches what's on the page. Google rewrites meta descriptions it considers inaccurate or unhelpful. If your description promises a free trial and the page doesn't offer one, Google will pull a snippet from the body text instead — and you lose control of the message.
How generated apps get it wrong
| Mistake | Result | Fix |
|---|---|---|
| No meta description | Google pulls a random snippet from the page — often the nav bar or a footer link | Write one per page, in the server-rendered HTML |
| Same description on every route | Every search result shows the same snippet regardless of query intent | Give each route its own description |
| Injected by JavaScript, absent from raw HTML | Google's first pass sees no description; fallback to body text | Serve it in the server response, not the client render |
| Too long (200+ chars) | Truncated mid-sentence with "…" — the cut often removes the call to action | Keep it under 155 characters |
| Keyword-stuffed with no meaning | Reads as spam; Google ignores it or rewrites it from the body | Write a real sentence a human would click |
How to write one
The meta description is a promise: it tells the searcher what they'll find if they click. A useful template: [What the page does] + [who it's for] + [what happens next].
- Homepage: "Actuant audits your deployed app against 52 launch-readiness checks, scores it 0–100, and shows exactly what to fix before you share it."
- Pricing page: "Four plans from free to $299/mo. Every plan includes the full audit; paid plans add continuous monitoring and AI-generated fixes."
- Feature page: "Connect your GitHub repo, run an audit, and Actuant opens the fixes as a pull request you review — nothing merges without you."
The one test that catches everything
- 1
View Page Source (Cmd+U)
Search for
name="description". If it's absent from the raw HTML, no crawler sees it — even if the rendered page has one. - 2
Check it's unique per route
Open two different pages, view source on each, and confirm the descriptions are different. If they're the same, duplicate descriptions are being served.
- 3
Paste it into a character counter
Make sure it's under 155 characters. If it's longer, cut the weakest sentence — don't abbreviate words.
Actuant checks every page it crawls: is a meta description present in the raw HTML, is it the right length, and is it unique across all crawled pages.
Keep reading
Title tags: the one tag that decides whether anyone clicks
The title tag is the headline in every search result, browser tab and link preview. A generated app ships with a default or duplicate title — and that's the first thing a searcher sees. Here's how to write one per page, how long it should be, and the SPA mistake that titles every page the same.
Open Graph tags: the minimum set that makes every link preview work
Open Graph tags power the preview card when you share a link — the image, title and description that shows on Twitter, Slack, iMessage and everywhere else. Without them your link unfurls blank. Here's the six tags you need and the image rules that decide whether they work.