# Meta description is present

- **Pattern:** `ab-002528` (`site-health-check.seo-discoverability.meta-description`)
- **Severity:** high
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-002528
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-002528)

## Why it matters

Without a meta description, Google synthesizes a snippet from scraped page text — usually the first paragraph or a nav fragment — which rarely matches searcher intent and costs measurable click-through rate. A present but default-placeholder description like "Web site created using create-react-app" is worse: it broadcasts that nobody finished the site, which users read as a trust signal before they click. Findability depends on controlling that snippet.

## Severity rationale

High because the description drives CTR on every search impression and defaults broadcast abandonment.

## Remediation

Write a 120-155 character description that names the page's value proposition and a concrete call-to-action. Add it to the document head directly, or in Next.js App Router export it from the route:

```ts
// app/page.tsx
export const metadata = {
  description: 'Specific summary of what this page offers, in 120-155 characters.',
};
```

## Detection

- **ID:** `meta-description`
- **Severity:** `high`
- **What to look for:** Count the number of `<meta name="description">` tags in the HTML. Extract the `content` attribute value and measure its character length. Check against known placeholder patterns: "Web site created using create-react-app", "A Next.js app", "Generated by create next app".
- **Pass criteria:** At least 1 `<meta name="description">` tag exists with a `content` attribute containing meaningful text between 50 and 160 characters (inclusive). The description must not match known framework default placeholders. Report the actual character count.
- **Fail criteria:** No `<meta name="description">` tag found, `content` attribute is missing or empty, character count is outside the 50-160 range, or matches a known default placeholder.
- **Skip (N/A) when:** The response `Content-Type` is not HTML (e.g., JSON API, XML feed, plain text).
- **Error when:** SPA detected.
- **Detail on fail:** `"No meta description tag found"` or `"Meta description is 12 characters — too short for search results"`
- **Remediation:** The meta description appears as the snippet below your title in search results. Without it, search engines auto-generate one (often poorly). Add it to your `<head>`:

  ```html
  <meta name="description" content="A concise summary of your page in 50-160 characters.">
  ```

  In Next.js App Router: `export const metadata = { description: 'Your summary here' }`. Keep it between 120-155 characters for optimal display in Google results.

Taxons: findability

HTML version: https://auditbuffet.com/patterns/ab-002528
