# Product descriptions are populated and meaningful

- **Pattern:** `ab-001116` (`ecommerce-catalog.product-data.description-quality`)
- **Severity:** low
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-001116
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-001116)

## Why it matters

Empty or placeholder product descriptions ship straight to production pages, tanking organic search rankings and leaving shoppers with no signal to convert. Search engines down-rank thin-content product pages, and customers abandon carts when copy reads like 'Lorem ipsum' or 'TBD'. This is a placeholder-hygiene and content-integrity failure that erodes trust, inflates return rates from under-informed purchases, and directly reduces conversion on every affected SKU.

## Severity rationale

Low because the defect degrades SEO and conversion gradually rather than exposing data or breaking checkout.

## Remediation

Write real descriptions for every product in `prisma/seed.ts` or `src/data/products.ts` covering features, materials, and use cases, then enforce a minimum word count at the write boundary so placeholders cannot ship again:

```ts
if (!description || description.split(' ').length < 10) {
  throw new Error('Product description must be at least 10 words')
}
```

## Detection

- **ID:** `description-quality`
- **Severity:** `low`
- **What to look for:** Count all product records available in the codebase: seed files (e.g., `prisma/seed.ts`, `src/data/products.ts`), fixture data, sample API responses, and database migrations with sample data. Sample at least 5 products (or all if fewer than 5 exist). For each sampled product, count the words in its description and check for placeholder patterns ("TBD", "No description", "Lorem ipsum", "Description goes here", "TODO").
- **Pass criteria:** At least 90% of sampled products have non-empty, meaningful descriptions containing at least 10 words and no placeholder text. Report even on pass: "X of Y sampled products have meaningful descriptions (avg Z words)."
- **Fail criteria:** More than 10% of sampled products have empty, null, or placeholder descriptions (fewer than 10 words or containing placeholder patterns).
- **Skip (N/A) when:** The project is in very early development with no sample data, seed files, or fixture products anywhere in the codebase.
- **Cross-reference:** For SEO implications of thin product descriptions, the SEO Fundamentals audit covers content quality and meta description patterns.
- **Cross-reference:** For content management workflows, the Pre-Launch audit covers content completeness and placeholder detection.
- **Cross-reference:** For accessibility of product descriptions, the Accessibility Fundamentals audit covers alt text and meaningful content patterns.
- **Detail on fail:** `"3 of 10 sampled products have empty descriptions. Example: Product 'T-Shirt' in prisma/seed.ts has description: null"` or `"5 of 8 products use placeholder text (e.g., 'Product description goes here' in src/data/products.ts)"`
- **Remediation:** Populate product descriptions in `prisma/seed.ts` or `src/data/products.ts` with meaningful content that describes features, materials, and use cases. If using a CMS or database, ensure the product creation flow in `src/app/api/products/route.ts` validates description length:

  ```ts
  if (!description || description.split(' ').length < 10) {
    throw new Error('Product description must be at least 10 words')
  }
  ```

Taxons: placeholder-hygiene, content-integrity

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