Overview
A meta description is the snippet Google often shows under a result title. It does not affect ranking, and Google may replace it with page text it judges a better match for the query, but a specific one that Google does show can raise click-through rate (CTR). Write one per page, state the outcome, use the primary keyword once, and make it unique. Broader on-page rules: content.
Prerequisites
- The page’s primary keyword; see keyword-research.
- Search Console access to measure CTR afterwards (master-google-search-console).
- A way to set
<meta name="description">: frontmatter in most static generators, the Metadata API in Next.js (nextjs-metadata-api).
Steps
1. Match the searcher’s intent
Read the top five existing descriptions for the keyword. Yours must promise something concrete they do not, or say it more clearly.
2. Write outcome first
Lead with what the reader gets, not a label. “Learn how to” is a label; “Install Postgres, create a role, and connect with psql” is an outcome. Structure: primary keyword, specific outcome, differentiator.
Install Postgres on Ubuntu or macOS, create a role and database,
fix peer-auth errors, and connect via psql.
3. Trim to a heuristic length
Google sets no character limit; snippets are cut by pixel width, which varies by device and query. Aim for roughly 150 to 160 characters and put the key information in the first 120, so most layouts show it. A tight 130 beats a padded 158.
echo -n "Install Postgres on Ubuntu or macOS, create a role and database, fix peer-auth errors, and connect via psql." | wc -c4. Use the keyword once, and do not repeat the title
One natural occurrence in the first half is enough. The title and description appear together, so make them complementary.
5. Set it in the framework
<meta name="description" content="Install Postgres on Ubuntu or macOS, create a role and database, fix peer-auth errors, and connect via psql.">In Quartz, the frontmatter summary can drive it; in Next.js use export const metadata: Metadata = { description: "..." }. Reusing the summary field enforces one description per page.
6. Compare CTR after four weeks
After indexing, filter Search Console Performance by the page. Record CTR and average position, change the description, wait four to six weeks, and compare. Higher CTR at the same position means the new text works. Change it at most once per window.
Verify it worked
curl -s https://example.com/page | grep -o '<meta name="description"[^>]*>'The tag is present and unique across pages (Search Console has no duplicate-description report, so check the build output). After indexing, search for a target query and see whether Google shows your text.
Common errors
- Google rewrites the description. It prefers page text that matches the query; align the description with the H1 and opening paragraph.
- The same description on many pages. Duplicates make poor snippets; generate each from a per-page
summary. - The key clause is cut off. Move it inside the first 120 characters.
- No description tag. Google builds a snippet from page text, which may not be the passage you would choose.
FAQ
Do meta descriptions affect Google rankings?
No; a meta description does not affect ranking, but a specific one that Google shows can raise click-through rate.
How long should a meta description be?
Google sets no character limit and cuts snippets by pixel width, so aim for roughly 150 to 160 characters with the key information in the first 120.
Why does Google rewrite my meta description?
Google prefers page text it judges a better match for the query; align the description with the H1 and opening paragraph.
How long should I wait to measure a meta description change?
Wait four to six weeks, then compare CTR at the same average position in Search Console, changing the text at most once per window.