SEO content brief

01What is it?
Generate research-backed content briefs that help writers produce pages capable of outranking current top results. It stands out by giving search and SEO workflows a defined shape, so the agent asks for better context and returns a more usable result.
02Inputs
Context for search and SEO workflows: your goals, audience, constraints, and any source material the skill asks for.
03Output
A ready-to-use result for search and SEO workflows: the analysis, copy, or recommendations the agent produces.
Install-only

Install as a package

Installs this one skill package for your coding agent, including any supporting files that skill ships with — not every skill in the repository. Read the tutorial.

Terminal
$ npx skills add agricidaniel/claude-seo --skill seo-content-brief

Skill instructions

The instruction file for this skill. The skill also includes other files you need to install to use it.

SKILL.md

SEO Content Brief Generator

Generate research-backed content briefs that help writers produce pages capable of outranking current top results. Briefs include competitor analysis with gap scoring, per-section word count breakdowns, keyword placement rules, and page-type-specific templates.

Process

1. Determine Brief Mode

Improve mode (existing page URL provided):

  • Fetch the existing page content and structure
  • Identify what is already strong (keep it)
  • Identify missing, thin, or outdated sections
  • Distinguish "keep/strengthen" vs "add new" sections in the outline
  • Do not recommend a full rewrite when targeted improvements will win

New page mode (keyword or topic provided, no existing page):

  • Use the target site's homepage or sitemap for business context only
  • Build the brief from scratch for a new page
  • Focus on competitive gaps the new page can fill

2. Fetch Context

  • Fetch the target URL or homepage to understand the business
  • Fetch the sitemap to discover all existing pages, categories, and services
  • This context is critical for the Website Relevance Rule (see below)

3. Analyse SERPs

  • Identify the top 5 ranking pages for the target keyword
  • Filter out non-competitors (Wikipedia, Reddit, Pinterest, Amazon, YouTube, government sites, SEO tool pages, job boards, directories, news aggregators, social platforms). See references/excluded-domains.md for the full list.
  • Score each real competitor: Depth (1-10), Formatting (1-10), SEO (1-10), UX (1-10)
  • Identify three gap types:
    • Topic gaps: subtopics competitors miss entirely
    • Depth gaps: topics covered but shallow
    • Quality gaps: outdated info, no expert perspective, poor formatting
  • Calculate gap priority: Impact x Competitive Advantage / Effort

4. Classify Search Intent

  • Informational: user wants to learn (guides, how-tos, definitions)
  • Commercial: user is researching before buying (comparisons, reviews, "best X")
  • Transactional: user is ready to act (buy, book, enquire, sign up)
  • Navigational: user is looking for a specific site or page

Identify what SERP format Google rewards for this query: long-form guide, listicle, comparison table, landing page, FAQ, video, local pack.

5. Build the Brief

Apply the page-type template from references/page-type-templates.md, then customise based on competitor gaps and search intent.

Critical Rules

Website Relevance Rule

Every heading, subtopic, keyword, and FAQ you suggest MUST be something the target website can credibly write about based on its actual services or products.

  • Read the site's homepage and sitemap to understand what it does
  • Do not borrow competitor structure if those sections cover things this site does not offer
  • Before each suggestion, ask: "Can this website actually deliver on this content?" If no, remove it.

Site Structure Coverage Rule

When briefing a hub, overview, category, or "types of" page:

  • The outline MUST reference every relevant product category, service, or sub-page that exists on the site
  • Do not invent categories that don't exist, do not leave out categories that do exist
  • Each category should appear as its own section with an internal link suggestion
  • This ensures the page acts as a proper hub linking to all child pages

For non-hub pages (single service page, blog post), use site structure to suggest relevant internal links but do not force every category into the outline.

Output Language Rules

  • Never mention researcher names, framework names, or tool names in the output (no "Ben Goodey method", "Frase.io formula", "Princeton GEO", "Clearscope", "Backlinko")
  • These are internal thinking tools only. The output must read as plain, professional advice.
  • Write for a business owner or content writer, not an SEO academic

Keyword Density and Placement

Read references/keyword-density.md for the full rules. Summary:

Primary keyword density: 0.5% to 2.0% of total word count.

  • Above 2% requires review. Above 3% risks keyword stuffing penalties.
  • First 1-2 mentions carry the most SEO weight. Diminishing returns after.
  • For a 1,000-word article at 1-2%: roughly 10-20 total appearances including headings, body, and alt text.

Primary keyword MUST appear in:

  1. Title tag (near the front)
  2. H1 tag (near the front)
  3. URL slug
  4. Meta description
  5. First paragraph / first 100 words
  6. At least one image alt text

Primary keyword does NOT need to appear in:

  • Every H2 or H3 (subtopics carry context naturally if H1 covers it)
  • Every paragraph or section

Secondary keywords:

  • 5-8 closely related supporting terms distributed through body content
  • 10-15 broader semantic terms covering related concepts
  • Use in H2-H6 subheadings where natural
  • Synonyms improve readability and do NOT count toward keyword density

Per-section keyword guidance: For each section in the outline, specify:

  • Which keyword (primary or secondary) belongs in the heading
  • Whether the body should include the primary keyword or a variation
  • Example: "Use secondary keyword 'structural drafting services' in H2. Body: mention primary keyword once."

Distribution: Spread the primary keyword evenly. Do not front-load or cluster in one section.

Meta Tag Rules

Title tag:

  • 50-60 characters (never under 50, never over 60)
  • Primary keyword first, brand name last
  • Separate brand with a pipe or dash (match the site's existing pattern)
  • Lead with outcomes, numbers, or specifics when possible

Meta description:

  • 130-150 characters (never under 130, never over 150)
  • Active voice, expand on the title with USPs and specifics
  • End with a call to action
  • No brand name at the end (it's already in the title)
  • No quotes (Google truncates at quotes)

Information Gain (non-negotiable)

Every brief must specify EXACTLY what new value this content adds that no current ranking page provides. Must be specific:

  • Proprietary data or original research
  • Case studies with real outcomes
  • Expert quotes or first-hand experience
  • Original synthesis or unique framework
  • NOT "more detail" or "better formatting"

E-E-A-T Requirements

List the exact trust signals this content needs:

  • Author credentials and bio relevant to the topic
  • Expert quotes or citations from authoritative sources
  • Cited studies, data, or statistics with dates
  • Last updated date
  • Especially critical for YMYL topics (health, finance, legal, safety)

Internal Linking

  • Suggest 3-5 specific internal link opportunities with anchor text
  • Specify whether the page is a hub (links out to cluster pages) or spoke (links to pillar page)
  • Use the site structure from the sitemap to find real link targets

Output Format

Always output in this exact structure:

## Content Brief: [Primary Keyword]

### Search Intent
[Intent type, SERP format rewarded, target audience and knowledge level. 3-4 lines.]

### Competitor Analysis
| # | URL | Key H2 Sections | Est. Words | Score | Main Gap |
|---|-----|-----------------|------------|-------|----------|
| 1 | ... | ...             | ...        | X/40  | ...      |

### Content Gaps and Opportunities
[Bullet list: topic gaps, depth gaps, quality gaps with specifics]

### Winning Outline

**H1:** [H1 with primary keyword]
**URL Slug:** /[slug]
**Target Word Count:** ~[X] words (competitor avg: ~[X] words)

[Full H2/H3 outline with:
- Word count per section
- Content format notes (bullet list, table, definition box, etc.)
- Featured Snippet targets marked with "FS target"
- Per-section keyword guidance]

### Recommended Meta Tags

**Title**
[title, 60 chars max]

**Meta Description**
[description, 150 chars max]

### Unique Angle and Information Gain
[Specific paragraph: what exact new value this piece adds]

### E-E-A-T Requirements
[Bullet list of exact trust signals needed]

### Internal Linking Opportunities
[3-5 suggestions with anchor text and target URL]

Outline-Only Mode

When the user asks for "just an outline" or "content outline" instead of a full brief, skip the Competitor Analysis table, Content Gaps section, Information Gain section, and E-E-A-T section. Output only:

## Content Outline: [Primary Keyword]

**H1:** [H1 with primary keyword]
**URL Slug:** /[slug]
**Target Word Count:** ~[X] words (competitor avg: ~[X] words)

[Full H2/H3 outline with word counts, format notes, FS targets, keyword guidance, and a 1-2 sentence writing note per section]

DataForSEO Integration (Optional)

If DataForSEO MCP tools are available, use serp_google_organic_live_advanced for real SERP data and competitor analysis, kw_data_google_ads_search_volume for keyword volume, dataforseo_labs_bulk_keyword_difficulty for difficulty scores, dataforseo_labs_search_intent for intent classification, and on_page_content_parsing_live for competitor content extraction.

Ahrefs Integration (Optional)

If Ahrefs MCP tools are available, use keywords-explorer-overview for keyword volume and difficulty, serp-overview for SERP analysis, site-explorer-organic-keywords for existing keyword rankings, and site-explorer-top-pages for competitor page performance.

Error Handling

ScenarioAction
Target URL unreachableReport the error. Do not guess page content. Ask the user to verify the URL.
No competitors found after filteringBroaden the search to include partial-match competitors. Note the thin competitive landscape in the brief.
Sitemap not foundProceed without site structure context. Note that internal linking suggestions may be incomplete.
Page type not specifiedAuto-detect from the keyword intent and SERP format. State the detected type in the brief.
Target word count not specifiedUse competitor average as the baseline. Note this in the outline.

Supporting file: LICENSE.txt

MIT License - see repository root LICENSE file for complete terms.

Copyright (c) 2026 puneetindersingh
https://github.com/AgriciDaniel/claude-seo

Supporting file: references/excluded-domains.md

Excluded Competitor Domains

When analysing SERPs for competitor scoring, filter out these domains. They are not real business competitors even when they rank for the target keyword.

Encyclopedias and Reference Sites

  • wikipedia.org, britannica.com, investopedia.com, dictionary.com, merriam-webster.com, webmd.com, healthline.com, mayoclinic.org

Social Media Platforms

  • facebook.com, instagram.com, twitter.com, x.com, linkedin.com, pinterest.com, tiktok.com, youtube.com, reddit.com, quora.com, threads.net

Content Platforms and Blogging

  • medium.com, substack.com, blogger.com, wordpress.com, wix.com, squarespace.com, hubpages.com, tumblr.com

Search Engines

  • google.com, bing.com, yahoo.com, duckduckgo.com, baidu.com

Marketplaces and E-Commerce Aggregators

  • amazon.com, amazon.com.au, amazon.co.uk, ebay.com, ebay.com.au, etsy.com, shopify.com, alibaba.com, gumtree.com.au, kogan.com

Forums and Q&A

  • stackoverflow.com, stackexchange.com, whirlpool.net.au, superuser.com, serverfault.com

News and Media

  • bbc.com, bbc.co.uk, cnn.com, news.com.au, abc.net.au, theguardian.com, forbes.com, techcrunch.com, theverge.com, mashable.com, huffpost.com, nytimes.com, washingtonpost.com

Data and Research Platforms

  • statista.com, ibisworld.com, similarweb.com

Directories, Reviews, and Listings

  • maps.google.com, tripadvisor.com, yelp.com, trustpilot.com, yellowpages.com.au, bark.com, thumbtack.com, angi.com, homeadvisor.com, truelocal.com.au, hotfrog.com.au, productreview.com.au

Comparison and Aggregator Sites

  • finder.com.au, canstar.com.au, iselect.com.au, mozo.com.au, comparethemarket.com.au, cmsmarket.com

Job Boards

  • seek.com.au, indeed.com, glassdoor.com, jora.com, linkedin.com/jobs

SEO and Marketing Tool Pages

  • semrush.com, ahrefs.com, moz.com, neilpatel.com, backlinko.com, searchengineland.com, searchenginejournal.com, yoast.com, screaming frog.co.uk, majestic.com

AI Platforms

  • chat.openai.com, chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com

Government Domains

  • Any domain ending in .gov, .gov.au, .gov.uk, .gov.nz, .gc.ca

Academic Domains

  • Any domain ending in .edu, .edu.au, .ac.uk, .ac.nz

URL Path Patterns to Exclude

Even on otherwise valid competitor domains, exclude URLs containing:

  • /tag/, /tags/, /author/, /category/, /archive/
  • /feed/, /rss/, /wp-json/, /wp-admin/
  • /login, /signup, /register, /cart, /checkout
  • /terms, /privacy, /cookie-policy, /disclaimer
  • /sitemap, /robots.txt

How to Use This List

  1. After fetching SERP results, check each URL against these domains
  2. Remove any matches before scoring competitors
  3. If fewer than 3 real competitors remain, note the thin competitive landscape
  4. Never count a filtered domain in the competitor analysis table

Supporting file: references/keyword-density.md

Keyword Density and Placement Rules

Based on published research from Semrush, Ahrefs, Yoast, and Google's own guidance on keyword usage.

Primary Keyword Density

Safe range: 0.5% to 2.0% of total word count.

DensityAssessment
Below 0.5%Under-optimised. Likely missing from key locations.
0.5% - 2.0%Optimal range. Natural reading, clear topic signal.
2.0% - 3.0%Review required. May read unnaturally.
Above 3.0%Keyword stuffing risk. Likely to trigger penalties.

Practical example: For a 1,000-word article at 1-2%, the primary keyword should appear roughly 10-20 times total. This includes headings, body text, and image alt text.

Diminishing returns: The first 1-2 mentions of the primary keyword carry the most SEO weight. After that, each additional mention provides less ranking benefit. Prioritise placement quality over quantity.

Required Placement Locations

The primary keyword MUST appear in all of these:

  1. Title tag (near the front, not buried at the end)
  2. H1 tag (near the front)
  3. URL slug (lowercase, hyphenated)
  4. Meta description (naturally integrated)
  5. First paragraph / first 100 words (establishes topic immediately)
  6. At least one image alt text (reinforces topic for image search)

Locations Where It Is NOT Required

  • Every H2 or H3 (if the H1 covers the keyword, subheadings carry context naturally through semantic relationship)
  • Every paragraph or section (clustering looks unnatural)
  • Anchor text of every internal link (vary the anchor text)

Secondary and Semantic Keywords

TypeCountUsage
Closely related terms5-8Distribute through body content and H2-H6 headings
Broader semantic terms10-15Cover related concepts and user intent variations
SynonymsAs naturalImprove readability. Do NOT count toward primary density.

Distribution Rules

  • Spread evenly throughout the content. Do not front-load all mentions into the introduction or cluster in one section.
  • Per-section guidance in briefs: For each section in a content brief, specify:
    • Which keyword (primary or secondary) should appear in the heading
    • Whether the section body should include the primary keyword or a variation
    • Format: "Use secondary keyword '[term]' in H2. Body: mention primary keyword once."

Common Mistakes

  1. Exact-match obsession: Using the exact phrase every time instead of natural variations. Google understands synonyms and related terms.
  2. Heading stuffing: Putting the primary keyword in every H2 and H3. One H1 mention plus 1-2 H2 mentions is sufficient.
  3. Ignoring first 100 words: The opening paragraph is the highest-value placement after the title and H1.
  4. Forgetting image alt text: A free placement opportunity that also helps image search rankings.
  5. Counting synonyms as density: "Web design", "website design", and "site design" are different strings. Only count exact-match appearances toward density.

Supporting file: references/page-type-templates.md

Content Brief Templates by Page Type

Select the template that matches the page type. Adapt sections based on the specific business and competitive landscape. Not every section applies to every page.

Service Page

Goal: Convert visitors into enquiries or bookings.

SectionPurposeFormat
What is [service]Define the service clearlyDefinition box, 80-120 words
Who needs itQualify the readerBullet list of scenarios
How it worksReduce friction, set expectationsNumbered steps
Costs/pricing/feesAddress the #1 questionTable or range, not exact if variable
Outcomes/resultsProve valueStats, case study snippets, before/after
Why choose [brand]Differentiate3-5 bullet points with specifics
FAQCapture PAA traffic5-8 questions, 40-60 words each, FS target
CTAConvertClear action, reduce risk (free consult, no obligation)

Schema: Service + FAQPage + LocalBusiness (if location-specific) Primary keyword placement: H1, first 100 words, one H2, URL slug, meta title

Blog Post

Goal: Rank for informational queries, drive readers to service pages.

SectionPurposeFormat
Direct answerWin Featured SnippetAnswer-first paragraph, 40-60 words, FS target
Background/contextSet the scene1-2 paragraphs
[3-5 H2 subtopics]Cover depth from PAA/gapsMix of paragraphs, lists, tables
Common mistakesAdd unique valueNumbered list with explanations
FAQCapture long-tail traffic5 questions from gap analysis
CTA to relevant serviceConvert intentContextual link, not hard sell

Schema: Article + FAQPage Primary keyword placement: H1, first 100 words, URL slug, meta title, one image alt text

Case Study

Goal: Build trust, demonstrate real outcomes.

SectionPurposeFormat
Outcome summaryLead with the resultBold stat or outcome in first line
Client situationContext1-2 paragraphs, anonymise if needed
The challengeProblem framingWhat was at stake
Our approachShow expertiseStep-by-step or narrative
The resultProve valueSpecific figures, percentages, timelines
Key takeawaysReusable insight3-5 bullet points
Related services CTACross-sellLink to the relevant service page

Schema: Article (with subject and outcome in description) Primary keyword: The outcome or matter type, in H1 and title

Category Page

Goal: Rank for broad topic terms, funnel visitors to sub-pages.

SectionPurposeFormat
What this area coversDefine scopeOverview paragraph
Sub-services/products (linked)Hub linkingOne H2 or H3 per sub-page with description and link
Who we helpQualify audienceBullet list of personas
Process overviewSet expectationsNumbered steps
FAQCapture variations5-8 questions
CTAConvertClear next step

Schema: Service + BreadcrumbList + FAQPage Primary keyword: Category name, in H1, title, URL, first paragraph Site Structure Rule: MUST include every relevant sub-page from the sitemap.

Landing Page

Goal: Single conversion action, minimal distractions.

SectionPurposeFormat
Hero (offer + CTA)Convert above foldHeadline + subheadline + button
Problem statementAgitate pain2-3 sentences
Solution/benefitsPresent the fix3-5 benefit bullets
Social proofBuild trustTestimonials, logos, stats
How it worksReduce friction3-step process
Objection handling / FAQRemove doubts4-6 common objections answered
Final CTAConvertRepeat the offer

Schema: WebPage + FAQPage Primary keyword: Offer or outcome, in H1, title, hero subheading

FAQ Page

Goal: Capture PAA and Featured Snippet traffic.

SectionPurposeFormat
8-15 questionsGrouped by subtopicEach answered in 40-60 words, FS target for each
CTA after last questionConvertContextual next step

Schema: FAQPage (every Q&A as mainEntity) — Google retired FAQ rich results for all sites on May 7, 2026, so this no longer produces a SERP rich result; the markup still aids AI Mode / AI Overviews entity resolution (treat as a supporting signal, not a ranking feature). For genuine user Q&A pages, use QAPage instead. See the seo-schema skill for the canonical position. Primary keyword: In H1 as "[Topic]: Frequently Asked Questions", in first answer

Location Page

Goal: Rank for [service] + [city] queries.

SectionPurposeFormat
What we do in [city]Local relevanceOverview with city name naturally included
Local areas/courts/landmarksHyper-local signalsList of suburbs, jurisdictions, or landmarks served
Service areasGeographic scopeList or embedded map
Why local mattersJustify the page1-2 paragraphs on local expertise
Team in [city]E-E-A-TBrief bios of local staff
Local reviews/testimonialsTrust2-3 reviews mentioning the location
FAQLocal variations5 location-specific questions
CTAConvertLocal phone number, address, booking link

Schema: Service + LocalBusiness (with address, phone, geo coordinates) Primary keyword: [Service] [City], in H1, title, URL, first paragraph, LocalBusiness schema

About Page

Goal: Build trust, support E-E-A-T across the site.

SectionPurposeFormat
Who we areBrand positioning2-3 paragraphs
Our story/foundingHumaniseNarrative with founding date
Our teamE-E-A-TIndividual bios with credentials, photos
Our valuesDifferentiate3-5 values with brief explanations
Awards/recognitionAuthorityList with dates
Media mentionsAuthorityLinks to press coverage
CTAConvertContact or services link

Schema: Organization + Person (per team member) Primary keyword: Brand name or "[Brand] [industry]", in H1 and title

Homepage

Goal: Establish brand authority, funnel to service and location pages.

SectionPurposeFormat
Hero (value prop + CTA)First impressionHeadline + subheadline + primary button
Services overviewShow scopeCard grid or linked list to service pages
Why us (differentiators)Stand out3-5 unique selling points
Social proofTrustTestimonials, client logos, review stars
Location/service areaLocal relevanceMap or area list
FAQ (for GEO)AI search visibility4-6 broad business questions
CTAConvertRepeat primary action

Schema: Organization + WebSite + Service Primary keyword: Primary service + city, in H1, title, first paragraph

How do I install SEO content brief in Cursor, Claude Code, or Codex?

Run npx skills add agricidaniel/claude-seo --skill seo-content-brief in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only SEO content brief, not every skill in the repository.

Where does SEO content brief come from and what license is it under?

SEO content brief comes from the agricidaniel/claude-seo repository on GitHub. That repository has 10.3K GitHub stars. The skill is published under the MIT license.

Prefer plain text? Read the SEO content brief guide as markdown.