# Heading tags use relevant, non-stuffed keywords

- **Pattern:** `ab-001680` (`marketing-advanced-seo.content-optimization.heading-keyword-quality`)
- **Severity:** medium
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-001680
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-001680)

## Why it matters

Repeating the same phrase across consecutive H2s triggers Google's keyword-stuffing heuristics and can suppress the page below competitors with natural headings. Generic section labels like `Overview`, `Details`, `More` give crawlers no topical structure, so the page loses eligibility for the long-tail subheading-match snippets that drive most informational traffic. Readers also skip the page because headings carry no scent.

## Severity rationale

Medium because stuffing degrades rankings and readability but does not remove the page from the index entirely.

## Remediation

Write each heading to describe the section that follows, using the language your audience uses. Audit H2/H3 tags in each content template for duplicate phrases and replace them with topical variants. Put the rewrite in the page component, not a shared layout, so dynamic content can supply its own headings.

```tsx
// app/blog/[slug]/page.tsx
<h2>How to Improve Your Site Speed</h2>
<h2>Measuring Core Web Vitals in Production</h2>
```

## Detection

- **ID:** `heading-keyword-quality`
- **Severity:** `medium`
- **What to look for:** Count all heading tags (H1-H6) across indexable pages. Enumerate which contain relevant keywords vs. generic text or keyword-stuffed content. Examine H2 and H3 tags across page components for two failure patterns: (1) keyword stuffing — headings that repeat the same keyword phrase multiple times or appear constructed purely for SEO rather than for a human reader, (2) keyword absence — all subheadings are generic section labels with no topical content (e.g., all H2s are "Section 1", "Overview", "Details").
- **Pass criteria:** Subheadings are descriptive and topically relevant to the page content without obvious keyword repetition. At least 80% of headings should contain relevant, non-stuffed keywords with no more than 2 keyword repetitions per page.
- **Fail criteria:** Any heading tag contains visible keyword repetition consistent with stuffing. Or all subheadings across a page are entirely generic with no topical content.
- **Skip (N/A) when:** The project has no content pages with multiple heading levels (single-page apps or pages with only an H1).

- **Cross-reference:** For content depth below headings, see `content-depth`.
- **Detail on fail:** Describe the specific violation. Example: `"H2 tags on /landing repeat the target phrase 3 times in consecutive headings."` or `"All H2/H3 tags across content pages are generic labels ('Overview', 'Details', 'More') with no topical content."`
- **Remediation:** Subheadings should serve the reader first — they break content into scannable sections and signal document structure to search engines as a secondary benefit. Write headings that accurately describe the content that follows them, using natural language. Avoid repeating the same phrase in consecutive headings. If a heading could be replaced with "Section 1" and still make as much sense, it needs more specificity.

  ```tsx
  // app/blog/[slug]/page.tsx — keyword-relevant headings
  <h2>How to Improve Your Site Speed</h2>  // Good: relevant keyword
  // Avoid: <h2>SEO SEO Tools SEO Software SEO Platform</h2>  // keyword stuffing
  ```

Taxons: findability, content-integrity

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