Skip to main content

Primary keyword appears in the page title

ab-001678 · marketing-advanced-seo.content-optimization.keyword-in-title
Severity: criticalactive

Why it matters

Brand-only or shared template titles collapse your SERP real estate: Google rewrites weak titles, competitors with descriptive titles outrank you for the queries your page actually targets, and your CTR drops because users scanning results cannot tell what the page offers. A /pricing route titled YourApp is invisible to anyone searching pricing plus a category term, wasting every inbound link you earn.

Severity rationale

Critical because the `<title>` is the single highest-weighted on-page ranking signal and every indexable page inherits the defect.

Remediation

Put the page-specific topic in front of the brand using the pattern Primary Topic — Context | Brand, and drive dynamic pages through generateMetadata so each title reflects its own content. Keep the descriptive portion under 60 characters so Google does not truncate it in results.

// app/pricing/page.tsx
export const metadata = { title: 'Pricing Plans for Small Business SEO — MyBrand' }

Detection

  • ID: marketing-advanced-seo.content-optimization.keyword-in-title

  • Severity: critical

  • What to look for: Count all indexable pages. Before evaluating, extract and quote the <title> tag content from the first 5 pages examined. For each, enumerate whether the primary keyword appears in the <title> tag and at what position. For pages where the title is statically determinable (not fully dynamic), check whether the title contains meaningful keyword terms that correspond to the page's apparent purpose. The check is not about specific target keywords (which cannot be determined from the codebase alone) but about whether titles are content-descriptive versus generic/brand-only. Fail if: a page title is only the brand name with no descriptive content (e.g., title: "YourApp" on a /pricing page instead of "Pricing | YourApp"), or if all pages share an identical title template with no page-specific keyword component.

  • Pass criteria: Page titles include descriptive, content-specific terms beyond just the brand name. Dynamic title generation that includes page-specific content (e.g., generateMetadata using a post title or product name) passes. At least 90% of indexable pages should have the primary keyword in the title, ideally within the first 60 characters.

  • Fail criteria: Pages use brand-only titles with no descriptive content terms, or all pages share an identical generic title regardless of content.

  • Skip (N/A) when: The project has no public-facing pages with static or partially-static title metadata.

  • Do NOT pass when: The keyword appears in the title only as part of the site name suffix (e.g., "Home | MyBrand SEO Tools") rather than as the primary title content.

  • Cross-reference: For keyword cannibalization, see the seo-advanced audit keyword-cannibalization check. For H1 keyword presence, see keyword-in-h1.

  • Detail on fail: "Page titles are brand-only or generic with no content-descriptive keyword component. Example: /pricing page title is 'YourApp' rather than 'Pricing | YourApp'. Search engines cannot distinguish pages by title alone."

  • Remediation: Page titles are one of the strongest on-page ranking signals. Each title should contain the primary topic of that page near the front, before the brand name. Use the pattern "Primary Topic — Context | Brand". Place the descriptive term first so it appears before truncation in search results. For dynamic content, use generateMetadata to pull the post or product title into the page title automatically.

    // app/products/page.tsx — keyword-optimized title
    export const metadata = { title: 'Best SEO Tools for Small Business — MyBrand' }
    
  • Cross-reference: The SEO Fundamentals audit checks that title tags are present and within the recommended length limits.

Taxons

History