Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install agricidaniel-claude-seo-skills-seo-content-briefgit clone https://github.com/AgriciDaniel/claude-seo.gitcp claude-seo/SKILL.MD ~/.claude/skills/agricidaniel-claude-seo-skills-seo-content-brief/SKILL.md--- name: seo-content-brief description: > Generate competitive SEO content briefs with per-section word counts, competitor scoring, keyword density guidance, and page-type templates. Supports both new page briefs and improve-existing-page briefs. Use when user says "content brief", "write a brief", "content outline", "blog brief", "service page brief", "brief for", "writing brief", "content plan", or "outline for". user-invokable: true argument-hint: "[url-or-keyword] [page-type]" license: MIT metadata: author: puneetindersingh original_author: puneetindersingh version: "1.0.0" category: seo --- # 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 | Scenario | Action | |----------|--------| | Target URL unreachable | Report the error. Do not guess page content. Ask the user to verify the URL. | | No competitors found after filtering | Broaden the search to include partial-match competitors. Note the thin competitive landscape in the brief. | | Sitemap not found | Proceed without site structure context. Note that internal linking suggestions may be incomplete. | | Page type not specified | Auto-detect from the keyword intent and SERP format. State the detected type in the brief. | | Target word count not specified | Use competitor average as the baseline. Note this in the outline. |