content-seo
Use this skill when optimizing content for search engines - topic cluster strategy, pillar page architecture, E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), content freshness, keyword cannibalization detection, topical authority building, and content gap analysis. Triggers on content planning for SEO, fixing thin content, building topical authority, or resolving cannibalization issues.
marketing seocontent-seotopic-clusterseeatcontent-strategytopical-authorityWhat is content-seo?
Use this skill when optimizing content for search engines - topic cluster strategy, pillar page architecture, E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), content freshness, keyword cannibalization detection, topical authority building, and content gap analysis. Triggers on content planning for SEO, fixing thin content, building topical authority, or resolving cannibalization issues.
content-seo
content-seo is a production-ready AI agent skill for claude-code, gemini-cli, openai-codex, and 1 more. Optimizing content for search engines - topic cluster strategy, pillar page architecture, E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), content freshness, keyword cannibalization detection, topical authority building, and content gap analysis.
Quick Facts
| Field | Value |
|---|---|
| Category | marketing |
| Version | 0.1.0 |
| Platforms | claude-code, gemini-cli, openai-codex, mcp |
| License | MIT |
How to Install
- Make sure you have Node.js installed on your machine.
- Run the following command in your terminal:
npx skills add AbsolutelySkilled/AbsolutelySkilled --skill content-seo- The content-seo skill is now available in your AI coding agent (Claude Code, Gemini CLI, OpenAI Codex, etc.).
Overview
Content SEO bridges keyword research and on-page implementation. It is the discipline of structuring, writing, and maintaining content in a way that demonstrates topical authority to search engines and genuinely serves user intent. Unlike technical SEO, which focuses on crawlability, or keyword research, which identifies targets, Content SEO is about how you build and organise content assets once you know what to rank for. The core outcome is a site that Google treats as the authoritative source on a topic - achieved through cluster architecture, strong E-E-A-T signals, and a systematic approach to keeping content accurate and comprehensive over time.
Tags
seo content-seo topic-clusters eeat content-strategy topical-authority
Platforms
- claude-code
- gemini-cli
- openai-codex
- mcp
Related Skills
Pair content-seo with these complementary skills:
Frequently Asked Questions
What is content-seo?
Use this skill when optimizing content for search engines - topic cluster strategy, pillar page architecture, E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), content freshness, keyword cannibalization detection, topical authority building, and content gap analysis. Triggers on content planning for SEO, fixing thin content, building topical authority, or resolving cannibalization issues.
How do I install content-seo?
Run npx skills add AbsolutelySkilled/AbsolutelySkilled --skill content-seo in your terminal. The skill will be immediately available in your AI coding agent.
What AI agents support content-seo?
This skill works with claude-code, gemini-cli, openai-codex, mcp. Install it once and use it across any supported AI coding agent.
Maintainers
Generated from AbsolutelySkilled
SKILL.md
Content SEO
Content SEO bridges keyword research and on-page implementation. It is the discipline of structuring, writing, and maintaining content in a way that demonstrates topical authority to search engines and genuinely serves user intent. Unlike technical SEO, which focuses on crawlability, or keyword research, which identifies targets, Content SEO is about how you build and organise content assets once you know what to rank for. The core outcome is a site that Google treats as the authoritative source on a topic - achieved through cluster architecture, strong E-E-A-T signals, and a systematic approach to keeping content accurate and comprehensive over time.
When to use this skill
Trigger this skill when the task involves:
- Building or redesigning a topic cluster from a seed keyword or content brief
- Creating a pillar page outline to anchor a cluster
- Fixing thin content that ranks poorly or has high bounce rates
- Auditing content for E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness)
- Detecting keyword cannibalization across two or more URLs
- Performing a content gap analysis versus competitors or SERP features
- Planning a content freshness and update cycle for time-sensitive queries
Do NOT trigger this skill for:
- Keyword research and search volume analysis - use the
keyword-researchskill instead - Technical crawlability issues (robots.txt, sitemaps, Core Web Vitals) - use the
technical-seo-engineeringskill instead
Key principles
Topical authority beats individual page optimization - A site that covers a topic comprehensively outranks one that optimises isolated pages. Build clusters first; refine individual pages second.
Every page must have a unique primary keyword target - Two pages competing for the same keyword split ranking signals and confuse crawlers. Cannibalization is always intentional until you fix it.
E-E-A-T is demonstrated, not declared - Writing "we are experts" signals nothing. Author credentials, first-hand experience markers, citations, and factual accuracy are the actual signals Google's Quality Raters assess.
Content freshness is a ranking signal for time-sensitive queries - Queries with a "freshness" intent modifier (news, trends, "best X in [year]") heavily reward recently updated content. A stale page on a fresh-intent query will lose ranking regardless of backlinks.
Internal links are the architecture of topical authority - They pass PageRank, establish semantic relationships between pages, and show crawlers the hierarchy of your cluster. Treat internal linking as structural engineering, not an afterthought.
Core concepts
Topic clusters
The pillar-spoke model divides content into two tiers. A pillar page provides a comprehensive overview of a broad topic, targets a high-volume head keyword, and links to every spoke page in the cluster. Spoke pages cover subtopics in depth, target long-tail or mid-tail variants, and all link back to the pillar. Every spoke-to-spoke link that is topically relevant further reinforces the cluster's semantic coherence.
See references/topic-clusters.md for the full model, mapping methodology, and
worked examples.
E-E-A-T
Google's Quality Rater Guidelines use four dimensions to assess content quality:
| Signal | What it means | How to demonstrate it |
|---|---|---|
| Experience | First-hand involvement with the subject | Personal testing notes, original data, case studies, dates of hands-on use |
| Expertise | Skill and knowledge depth | Author credentials, technically accurate content, citing primary sources |
| Authoritativeness | Recognition by others in the field | Backlinks from authoritative sites, brand mentions, citations, press coverage |
| Trustworthiness | Accuracy, transparency, and safety | Fact-checking, editorial policy, contact/about pages, HTTPS, clear corrections policy |
YMYL (Your Money or Your Life) pages - health, finance, legal, safety - are held to a higher E-E-A-T standard. Any content in these verticals requires the strongest possible signals in all four dimensions.
See references/eeat-signals.md for the full breakdown including author page templates
and editorial policy requirements.
Content depth vs breadth
Breadth without depth produces thin content. Depth without breadth produces isolated pages that lack cluster context. The correct balance: pillar pages are broad and link to deep spokes; spoke pages are deep on one sub-topic and briefly contextualise the broader topic (linking to the pillar). A page that tries to cover everything in a cluster at depth becomes unwieldy and should be split.
Keyword cannibalization
Cannibalization occurs when two or more pages on the same site target the same primary keyword. Search engines must choose which page to rank, often alternating between them, depressing the performance of both. Detection: export Google Search Console impressions by page for a target query and look for multiple URLs. Resolution: consolidate the weaker page into the stronger via a 301 redirect, or differentiate them by search intent so each has a unique primary target.
Content decay
Most pages lose organic traffic over time as competitors publish fresher content, search trends shift, or the underlying information becomes stale. Decay is fastest on time-sensitive queries. A systematic update cycle - prioritised by traffic loss velocity - is required to maintain rankings.
Common tasks
Design a topic cluster from a seed topic
- Define the pillar: what is the broadest query a visitor with general intent would use for this topic? That is the pillar keyword.
- Map subtopics: list every meaningful question, use case, or sub-concept within the pillar. Each with its own search demand becomes a spoke.
- Assign intent: confirm each spoke is informational, navigational, or transactional. Do not force transactional pages into an informational cluster.
- Check for overlap: ensure no two spokes target the same keyword variant.
- Plan internal links: pillar links to all spokes; each spoke links back to pillar; highly related spokes link to each other.
Cluster skeleton:
[Pillar] "Email Marketing" (head keyword, ~40k searches/mo)
├── [Spoke] "Email subject line best practices" (informational)
├── [Spoke] "Email marketing metrics to track" (informational)
├── [Spoke] "How to build an email list" (informational)
├── [Spoke] "Email marketing automation workflows" (informational)
└── [Spoke] "Best email marketing software" (commercial investigation)Create a pillar page outline
A pillar page outline should follow this structure:
- Hero section - primary keyword in H1, 150-200 word intro that covers what, who it is for, and what the reader will learn.
- Table of contents - anchored links to every H2 section; signals comprehensiveness.
- Core sections (H2) - one per major subtopic in the cluster. Each H2 corresponds to a spoke page. Keep these sections at 200-400 words each - deep coverage lives in the spoke.
- Internal links - each H2 section contains a contextual link to the corresponding spoke page. Do not use "click here" anchors - use descriptive keywords as anchor text.
- FAQ section - target featured snippet and People Also Ask real estate.
- Summary and CTA - what to do next; link to highest-converting spoke or product page.
Audit content for E-E-A-T signals
Walk through the page using this checklist:
- Author byline present with name and credentials linked to an author page
- Author page shows professional background, publication history, or verifiable expertise
- Page was last reviewed/updated date is visible
- Claims backed by citations to primary sources (studies, official data, expert quotes)
- About page and editorial policy linked from the footer or byline
- No AI-generated filler content that lacks specific, verifiable detail
- Product/service reviews include firsthand testing notes (dates, specific findings)
- YMYL content reviewed or co-authored by a credentialed professional
Flag any missing items as E-E-A-T gaps and prioritise by YMYL sensitivity.
Detect and fix keyword cannibalization
Detection:
- In Google Search Console, filter Performance by query for the target keyword.
- Check if multiple pages appear in the "Pages" breakdown for the same query.
- Alternatively:
site:yourdomain.com "target keyword"in Google to see which URLs Google has indexed for that query.
Resolution decision tree:
Are both pages genuinely serving different intents?
YES -> Differentiate keyword targets. Rewrite H1 and meta title of
the weaker page to a related but distinct query.
NO -> Is one page significantly stronger (traffic, backlinks, content)?
YES -> 301 redirect the weaker URL to the stronger. Update internal
links to point to the canonical page.
NO -> Consolidate: merge content into one page, 301 redirect the
other, update all internal links.Perform a content gap analysis vs competitors
- Identify 3-5 competitors ranking for your cluster's head keywords.
- Export their top-traffic pages using a tool (Ahrefs, Semrush) or manually crawl.
- Map their coverage against your own cluster: what subtopics do they cover that you do not?
- Cross-reference with SERP features: what People Also Ask questions appear for your head keywords that you have no page targeting?
- Prioritise gaps by: search volume, alignment with your audience's intent, and proximity to your existing cluster (semantic relevance).
See references/content-gap-analysis.md for the full prioritisation framework and
manual methods.
Plan a content freshness and update cycle
Classify all content by freshness sensitivity:
| Tier | Query type | Update frequency |
|---|---|---|
| High | "best X [year]", news, trends, pricing | Review every 3-6 months |
| Medium | How-to guides, comparison pages | Review annually |
| Low | Evergreen definitions, fundamentals | Review every 18-24 months |
Trigger an update when: organic traffic drops 20%+ over 90 days, a major industry change invalidates advice, or a competitor publishes a clearly superior version of the same content.
Build internal linking strategy for topical authority
- Start from the pillar: every spoke must link back to the pillar with the pillar's primary keyword as anchor text (or a close variant).
- Map spoke-to-spoke links where subtopics are related - a reader of "email list building" should be linked to "email automation workflows" when context allows.
- Avoid orphan pages: every page must have at least two inbound internal links.
- Use descriptive anchor text: never use "read more" or "click here" - the anchor text is a relevance signal.
- Audit with a crawl tool (Screaming Frog, Sitebulb) to visualise the link graph and find orphans or thin internal link equity.
Anti-patterns / common mistakes
| Anti-pattern | Problem | Fix |
|---|---|---|
| Thin content padding | Adding word count with no informational value to hit an arbitrary length target | Remove filler; add genuinely useful specifics - examples, data, step-by-step detail |
| Keyword stuffing | Forcing the primary keyword into every heading and paragraph | Use the keyword naturally; add semantic variants; Google reads meaning, not frequency |
| Search intent mismatch | Writing an informational article for a transactional query (or vice versa) | Audit the SERP for the target query - the top 3 results define the dominant intent |
| Duplicate content across similar pages | Publishing nearly identical guides for overlapping topics | Consolidate with 301 redirects or clearly differentiate by search intent and keyword target |
| No author attribution | Publishing content anonymously, especially in YMYL categories | Add named authors with visible credentials and link to author pages |
| Publishing and forgetting | Never updating time-sensitive content after initial publish | Implement a freshness review cycle - calendar reminders keyed to traffic decay thresholds |
| Cluster without pillar | Creating many spoke pages without a comprehensive pillar page linking them | Build the pillar first; it is the structural anchor that amplifies all spoke rankings |
| Generic E-E-A-T signals | Adding a generic "we have 10 years of experience" footer line and calling it done | Make signals specific: "tested on 47 devices in Q1 2024", named author with verifiable credits |
| Ignoring content decay | Assuming a well-ranked page will stay ranked without maintenance | Track organic traffic per page week-over-week; queue for update at first sign of sustained decline |
Gotchas
Cannibalization from near-identical intent pages - Two pages targeting "best CRM software" and "top CRM tools" appear different but serve identical intent and will cannibalize each other. Check the actual SERP overlap, not just keyword wording. If the top-ranking URLs for both queries are the same, consolidate.
Freshness signals differ by query type - Adding a new publish date to an old page does not help a truly evergreen query. Freshness only matters as a ranking signal for queries Google's systems classify as having "freshness intent" (news, trends, "best X in [year]"). Updating an evergreen page without improving substance has no ranking effect.
Internal link anchor text over-optimization - Using the exact primary keyword as anchor text on every internal link pointing to a pillar page can trigger over-optimization signals. Use natural variants: "learn more about email marketing," "our email marketing guide," not always "email marketing" verbatim.
E-E-A-T is assessed per page, not per site - A site with strong domain authority still gets low E-E-A-T marks on individual pages that lack author credentials or first-hand signals. YMYL pages need author attribution at the page level, not just a site-level "About" page.
Cluster spoke pages linking only to the pillar - Spoke-to-spoke links are a significant part of the cluster's semantic coherence benefit. A cluster where every spoke only links back to the pillar misses the cross-linking signals. Highly related spokes should link to each other where contextually relevant.
References
Load these files when the task requires deeper detail on a specific sub-topic:
references/topic-clusters.md- Pillar-spoke model in depth, cluster mapping from keyword research output, internal linking patterns, and when to split vs merge clusters. Load when designing or restructuring a cluster.references/eeat-signals.md- Full E-E-A-T breakdown with implementation guidance for each signal, YMYL thresholds, author page templates, and editorial policy requirements. Load when auditing E-E-A-T or improving trustworthiness signals.references/content-gap-analysis.md- Methods for finding gaps: competitor analysis, SERP feature gaps, PAA mining, funnel stage gaps. Prioritisation framework and both tool-assisted and manual approaches. Load when performing a content gap audit.
Only load a references file when the current task requires deep detail on that topic.
References
content-gap-analysis.md
Content Gap Analysis
A structured methodology for finding and prioritising content your site should cover but does not. Includes competitor-based methods, SERP feature gap analysis, question mining, funnel stage mapping, and format gaps - with both tool-assisted and manual approaches.
What is a content gap
A content gap is any topic, question, or keyword that:
- Has meaningful search demand (people are looking for it)
- Aligns with your audience's needs and your site's purpose
- Is not adequately covered by any existing page on your site
Content gaps are not simply "keywords you do not rank for". A competitor might rank for a keyword you do not target because it is irrelevant to your audience. The goal of a gap analysis is to find valuable, relevant gaps - not to copy competitors blindly.
Method 1 - Competitor keyword gap analysis
The most common method. Identify keywords that competitors rank for but you do not.
Tool-assisted approach
Select 3-5 competitors - choose direct content competitors, not brand or size comparisons. Look for sites whose content overlaps with your cluster topics.
Run a keyword gap report in Ahrefs, Semrush, or Moz:
- Ahrefs: Site Explorer -> Content Gap (enter your domain, add competitors)
- Semrush: Keyword Gap tool (enter your domain and up to 4 competitors)
- Filter: keywords where 2+ competitors rank in top 10 but you do not appear
Filter for relevance:
- Remove branded keywords (competitor brand names you should not target)
- Remove navigational queries (people looking for specific sites)
- Keep: informational, commercial investigation, and transactional queries that align with your audience
Export and categorise by topic cluster. Each cluster should reveal a list of spoke-level gaps.
Manual approach (no tools required)
- Search your top 5-10 pillar keywords in Google
- Review the top 10 results for each. Note pages that are consistently in the top 3 across multiple queries
- Crawl those competitor pages manually: what topics do they cover that you do not?
- Use the "related searches" section at the bottom of Google SERPs for each query
- Note patterns across competitors - if 3 of 5 competitors cover "email list cleaning best practices" and you do not, that is a validated gap
Method 2 - SERP feature gap analysis
SERP features are search results formats beyond the standard 10 blue links. Failing to rank for SERP features is a gap because they consume significant click share.
Features to audit
| Feature | What to look for | How to fill the gap |
|---|---|---|
| Featured snippet (position zero) | Queries where a competitor holds the snippet box | Add a concise 40-60 word definition or numbered list that directly answers the query |
| People Also Ask (PAA) | Questions in the PAA box for your target queries | Create content that directly and concisely answers each PAA question |
| Knowledge panel | Brand or entity panel exists for competitors but not you | Build entity authority: consistent NAP data, Wikipedia presence, structured data |
| Image pack | Image results appear for your target keyword | Optimise image alt text, file names, and surrounding context; use original images |
| Video carousel | Video results appear for a text-heavy query | Create a companion video; optimise with title/description/chapters |
| Top stories | News-style results appear for your topic | Publish timely content, use Article schema, register with Google News |
| Local pack | Local results appear for your query | Optimise Google Business Profile, local landing pages (if applicable) |
How to audit SERP features
- List all target keywords for a cluster
- Search each keyword in an incognito window and note which SERP features appear
- For each feature, note whether you occupy it, a competitor does, or it is unclaimed
- Prioritise features that appear in high-volume queries where you have relevant existing content that could be optimised to claim them
Method 3 - People Also Ask (PAA) mining
PAA boxes surface the questions real searchers are asking. Mining them reveals informational gap content - the questions your audience has that you are not answering.
Mining process
- Search your pillar keyword and expand the PAA box. Note the initial 4 questions.
- Click on each PAA question - this triggers Google to load more related questions. Continue expanding to find 20-40 questions.
- Repeat for your top 5-10 spoke keywords.
- Also mine using AnswerThePublic, AlsoAsked, or Semrush's topic research.
Categorising PAA gaps
| Gap type | Example | Content solution |
|---|---|---|
| Definition questions | "What is email list segmentation?" | Add a definition section to the relevant spoke, or create a glossary entry |
| How-to questions | "How do I segment my email list?" | Create a dedicated how-to spoke if volume warrants; add to existing spoke otherwise |
| Comparison questions | "What is the difference between segmentation and personalisation?" | Create a comparison spoke or add a comparison section to the relevant pillar/spoke |
| Best-of questions | "What are the best email segmentation strategies?" | Create a listicle-format spoke targeting this query |
| Why questions | "Why is email segmentation important?" | Add as an FAQ section to the most relevant existing page |
Method 4 - Funnel stage gap analysis
Content gaps exist not just by topic but by buyer journey stage. A site might have strong awareness-stage (informational) content but weak consideration or decision-stage content, causing users to leave before converting.
The three funnel stages
| Stage | User intent | Query type | Content format |
|---|---|---|---|
| Top of funnel (ToFu) | Learning, exploring | Informational ("what is...", "how does...") | Blog posts, guides, explainers |
| Middle of funnel (MoFu) | Evaluating options | Commercial investigation ("best...", "vs...", "review") | Comparison pages, reviews, case studies |
| Bottom of funnel (BoFu) | Ready to buy | Transactional ("pricing", "free trial", "buy") | Landing pages, pricing pages, demos |
How to identify funnel gaps
- List all existing pages and assign each a funnel stage based on the primary keyword's intent
- Look for stage imbalances in your clusters. A cluster with 10 ToFu spokes and no MoFu or BoFu content is a classic gap pattern
- Check which stage your top competitors lean into for the same cluster - their distribution reveals where the search demand sits
Example funnel gap audit:
Cluster: "Email Marketing Software"
Existing pages:
ToFu: "What is email marketing" (have)
ToFu: "Email marketing benefits" (have)
ToFu: "Email marketing strategies" (have)
MoFu: "Best email marketing software" (MISSING)
MoFu: "Mailchimp vs HubSpot" (MISSING)
BoFu: "Email marketing software pricing" (MISSING)
BoFu: "Free email marketing tools" (MISSING)
Gap priority: MoFu and BoFu spokes are completely absent.Method 5 - Content format gaps
The same topic can be covered in multiple formats, and different searchers prefer different formats. A content format gap exists when you cover a topic in one format but the SERP shows demand for other formats.
Common format gaps to check
| Existing format | Potential gap format | When to fill it |
|---|---|---|
| Long-form guide | Video tutorial | When "video" or "how to" queries dominate the SERP for the topic |
| Text how-to | Step-by-step visual (infographic) | When the process has discrete, visual steps |
| Blog post | Downloadable template | When users are searching for "[topic] template" or "[topic] checklist" |
| Generic overview | Industry-specific version | When competitors rank with verticalised content (e.g. "email marketing for SaaS") |
| Annual roundup | Real-time comparison tool | When search intent is clearly "compare options now" |
| Desktop-optimised long-form | Scannable mobile-first version | When mobile search dominates for the query |
Identifying format gaps
- Search the target keyword and note the dominant format in the top 3 results (video, listicle, long-form guide, tool, template, etc.)
- If your existing content is a different format from what dominates the SERP, the format mismatch is a gap
- Check the "Images", "Videos", and "Shopping" tabs for your keyword - if those tabs have significant results, there is a format-specific demand you may be missing
Prioritisation framework
Not all gaps are equal. Use this scoring matrix to prioritise which gaps to fill first.
Scoring dimensions
| Dimension | 1 (Low) | 2 (Medium) | 3 (High) |
|---|---|---|---|
| Search volume | < 500/mo | 500-5,000/mo | > 5,000/mo |
| Business relevance | Tangential to product/service | Relevant but not core | Directly tied to core use case |
| Competitive difficulty | Dominated by very strong competitors | Mix of strong and medium | Weak competition, easy to rank |
| Funnel impact | ToFu, long path to conversion | MoFu, evaluation stage | BoFu, near-purchase intent |
| Cluster fit | Isolated, does not fit a cluster | Adjacent to an existing cluster | Perfect spoke for an existing cluster |
Priority score = sum of all dimensions (max 15)
- 12-15: Immediate priority - build this content now
- 8-11: Medium priority - schedule within 60 days
- 4-7: Low priority - backlog for future quarter
- < 4: Deprioritise or remove from consideration
Quick filter (when you do not have time for full scoring)
Apply these three filters in order. A gap must pass all three to make the short list:
- Relevance filter - Would a visitor who found this page be part of our target audience? If no, skip it regardless of volume.
- Intent filter - Does the search intent for this keyword match content we can credibly produce? (Do not write product reviews if you are not reviewing products.)
- Volume filter - Is there enough search demand to justify the investment? For a new site, even 200/mo may justify a spoke. For a large site, the threshold is higher.
Manual gap analysis (no paid tools)
If you do not have access to Ahrefs, Semrush, or similar tools, use these free methods:
Google Search Console - Export queries for which you appear in positions 4-20 for target keywords. These are near-miss gaps where you rank but not prominently. Improving these pages is the highest-leverage gap activity.
Google autocomplete - Type your seed keyword followed by each letter of the alphabet to find long-tail variants Google suggests. These suggestions are based on real search behaviour.
Related searches - Scroll to the bottom of any SERP for related query ideas.
Competitor sitemap - Download and review competitors' sitemaps (
/sitemap.xml) to see every page they have indexed. Cross-reference with your own sitemap.Reddit and Quora - Search your topic on these platforms. Frequently asked questions with many upvotes or answers represent real demand that may not yet be well-served by standard search results.
Google Trends - Compare your current content's core topics to see if there are emerging related terms you have not covered.
Gap analysis workflow summary
End-to-end process from start to prioritised content plan:
1. Define scope
- Which cluster(s) are in scope?
- Who are the 3-5 content competitors?
2. Run gap methods (pick 2-3 most relevant)
- Competitor keyword gap (Method 1)
- SERP feature gap (Method 2)
- PAA mining (Method 3)
- Funnel stage audit (Method 4)
- Format gap check (Method 5)
3. Consolidate into a master gap list
- Deduplicate across methods
- Assign each gap to a cluster (or flag as a new cluster seed)
4. Score and prioritise
- Apply the 5-dimension scoring matrix
- Apply the 3-question quick filter to remove obviously low-value gaps
5. Output: prioritised content brief queue
- Top-priority gaps -> content briefs ready for writers
- Medium-priority gaps -> scheduled for next quarter
- Low-priority gaps -> backlog, revisit in 6 months
6. Revisit quarterly
- Re-run the gap analysis every 3-6 months as competitors publish new content
and search trends shift eeat-signals.md
E-E-A-T Signals
A practical implementation guide for Google's E-E-A-T quality framework. Covers what each dimension means, how to demonstrate it concretely, YMYL thresholds, and the supporting infrastructure (author pages, about pages, editorial policies) that Google's Quality Raters look for.
What E-E-A-T is
E-E-A-T stands for Experience, Expertise, Authoritativeness, and Trustworthiness. It is the framework Google's Search Quality Rater Guidelines use to evaluate content quality. Quality Raters are human contractors who assess search results and provide feedback that informs algorithm training. While E-E-A-T is not a direct ranking factor (there is no "E-E-A-T score" in the algorithm), pages with weak E-E-A-T signals consistently underperform compared to pages with strong signals, because the same factors that impress quality raters are the signals the algorithm is trained to reward.
The fourth E (Experience) was added in December 2022, distinguishing personal, firsthand involvement with a topic from general subject-matter expertise.
The four dimensions
Experience
What it means: The content creator has direct, personal experience with the subject matter. They have used the product, visited the place, undergone the procedure, or lived the situation they are writing about.
Why it matters: Experience is distinct from expertise. A doctor has expertise in medicine. A patient who has undergone a specific procedure has experience. Google wants to see both: medical accuracy AND the perspective of someone who has been there.
How to demonstrate Experience:
- First-person account details - specific dates, quantities, model numbers, or observations that only someone with direct experience would know. "I tested this on my 2022 MacBook Pro M1 in March 2024 and achieved 3.2ms latency" is experiential. "This tool is fast" is not.
- Original photographs or screenshots - images taken by the author during their own use of the product/service/place, not stock photography
- Personal results and data - "After 90 days using this approach, our organic traffic grew 34%" with supporting screenshots
- Acknowledgment of limitations - experienced writers know what they do not know. Noting edge cases or situations where your experience may not generalise signals genuine firsthand knowledge
- "Last tested / last updated" dates - shows the experience is current, not based on an outdated encounter
Red flags (absence of Experience):
- Generic descriptions that could apply to any product in the category
- No specific details that require firsthand access to know
- Stock images instead of original photography
- No update/testing dates
Expertise
What it means: The content creator has substantial knowledge, skill, or education in the subject area. Expertise can be formal (credentials, degrees, certifications) or informal (demonstrated through the depth and accuracy of the content itself).
Why it matters: For some queries, depth and accuracy are non-negotiable. A guide to drug interactions written by someone without medical training is dangerous. A guide to TypeScript generics written by someone who has never used them will contain errors.
How to demonstrate Expertise:
- Author credentials - professional qualifications, degrees, certifications visible on the author byline and/or author page. Be specific: "Registered Dietitian (RD), 10 years clinical practice" not "health writer"
- Technical accuracy and depth - content that covers the topic at a level only an expert could reach. Shallow, generic, or factually incorrect content is evidence of low expertise regardless of claimed credentials
- Citing primary sources - research papers, official guidelines, government data. Not Wikipedia or other secondary sources for YMYL content
- Content peer-reviewed or fact-checked - for medical, financial, and legal content, note explicitly that the content was reviewed by a credentialed expert in the field
- Formal credentials displayed where relevant - the author page for a financial advice column should show CFA, CFP, or similar if applicable
Informal expertise signals:
Not every topic requires formal credentials. For product reviews, travel guides, or hobby content, informal expertise demonstrated through content depth is sufficient. A travel writer without a journalism degree who has visited 80 countries and writes with specific, accurate detail demonstrates expertise.
Red flags (absence of Expertise):
- Vague author bio ("content writer" or "passionate about health")
- Factual inaccuracies or outdated information
- Content that could be generated by someone with only surface-level knowledge
- No credentials for YMYL content
Authoritativeness
What it means: The content creator and/or the site are recognised as an authority by others in the field. This is the externally-verified dimension - it cannot be self-declared.
Why it matters: Authoritativeness is essentially the reputation signal. It tells Google that the broader ecosystem has validated the creator's expertise.
How to build Authoritativeness:
- Backlinks from authoritative sites - links from established publishers, government (.gov) or educational (.edu) domains, industry trade publications, and other recognized authorities in your vertical
- Brand mentions and citations - your site or author being cited (even without a link) in reputable publications. Google's knowledge graph tracks brand entity mentions
- Press coverage - articles in established media outlets mentioning the creator or publication as a source
- Author's external publication record - the author is published in recognised industry journals, major publications, or has given talks at established conferences
- Wikipedia citations - your content or organisation cited in Wikipedia entries (not created by you)
- Social proof - high follower counts on professional platforms (LinkedIn), though this is a weaker signal than editorial citations
Important distinction: Authoritativeness is a lagging indicator built through consistent production of quality, trustworthy content. It cannot be manufactured quickly. Thin-content link schemes are antithetical to it.
Red flags (absence of Authoritativeness):
- No backlinks from recognised sites in the vertical
- Author has no external publication record or professional presence
- Site has no brand mentions outside its own properties
Trustworthiness
What it means: The site and its content are accurate, honest, transparent, and safe to use. Trustworthiness is the foundation - Google says it is the most important of the four dimensions. A page can have experience, expertise, and authority but still be untrustworthy (e.g., it is accurate but has undisclosed conflicts of interest).
How to demonstrate Trustworthiness:
- Factual accuracy - all claims can be verified. Outdated or incorrect information is immediately corrected with a visible corrections notice
- Clear corrections policy - how and when errors are corrected, displayed on the About page or editorial policy page
- Transparent authorship - every article has a named author. No anonymous content, especially for YMYL topics
- About page - who runs the site, their background, how content is produced. Comprehensive and honest, not just a marketing paragraph
- Contact information - a real address, phone number, or verified contact form. Signals accountability
- Privacy policy and terms of service - present, up to date, and compliant
- HTTPS - not optional in 2024; non-HTTPS sites are inherently less trusted
- Affiliate disclosure / sponsored content disclosure - clearly disclosed where applicable. Undisclosed commercial relationships damage trust
- Editorial independence - if advertisers influence content, that is a trust signal reduction. State explicitly that editorial decisions are independent
- Review and rating transparency - if you aggregate reviews, show methodology. If you do your own testing, show methodology
Red flags (absence of Trustworthiness):
- Anonymous content on YMYL topics
- No About page or only a generic one
- No way to contact the organisation
- No corrections policy
- Sponsored content not clearly disclosed
- Outdated information presented as current
YMYL: higher E-E-A-T thresholds
YMYL stands for Your Money or Your Life. These are topics where incorrect or misleading information could cause real-world harm - financial loss, health damage, legal consequences, or threats to safety. Google holds YMYL pages to a significantly higher E-E-A-T bar.
YMYL categories:
| Category | Examples |
|---|---|
| Health & medical | Symptoms, diagnoses, treatments, medications, mental health |
| Finance | Investments, taxes, insurance, retirement planning, loans |
| Legal | Laws, regulations, legal advice, rights, contracts |
| Safety | Emergency procedures, dangerous activities, product safety |
| News & current events | Breaking news, political reporting, public policy |
| Civic | Elections, government, social issues |
What higher E-E-A-T means for YMYL:
- Expertise must be formal - a personal finance site needs authors with CFP, CFA, or equivalent credentials. "Passionate about personal finance" is insufficient
- Medical content must be reviewed by clinicians - with the reviewer named, their credentials shown, and the review date visible
- Legal content must be reviewed by licensed attorneys - and include a clear disclaimer that it is not legal advice for the reader's specific situation
- Sources must be primary - government health agencies, peer-reviewed research, official regulatory guidance. Not other blogs
- Corrections must be rapid - an error on a YMYL page that causes someone to take a dangerous action is a serious failure; correct and disclose within hours
Author pages
Every author who produces content for a site should have a dedicated author page. This is one of the primary ways quality raters verify credentials.
Required elements of an author page:
Author Name
[Professional headshot]
[Current title and organization]
[Formal credentials / certifications] (essential for YMYL)
[Brief bio: 150-250 words covering expertise, background, focus areas]
[Links to external profiles: LinkedIn, Google Scholar, professional associations]
[Published work: list of or links to major publications, studies, or books]
[Publication history on your own site: list of articles by this author]
[Contact method: email or contact form]Author page URL pattern:
/author/[author-slug]/ - avoid /users/123/ style URLs which look auto-generated
and provide no semantic signal.
Schema markup for authors:
Use Person schema on the author page. Key properties:
{
"@type": "Person",
"name": "Dr. Jane Smith",
"jobTitle": "Registered Dietitian",
"description": "Jane is a Registered Dietitian with 12 years...",
"url": "https://example.com/author/jane-smith/",
"sameAs": [
"https://www.linkedin.com/in/janesmith",
"https://scholar.google.com/citations?user=abc123"
],
"credential": [
"Registered Dietitian (RD)",
"Board Certified Specialist in Sports Dietetics (CSSD)"
]
}About pages
The About page signals the organisation's identity, purpose, and trustworthiness. Quality raters check About pages when assessing the site's overall E-E-A-T.
Required elements:
- Organisation name and legal entity - who actually runs the site
- Mission or purpose - what the site is for, who it serves
- Founding/launch date - demonstrates longevity
- Key personnel - named founders or editors, with roles and credentials
- Editorial process - how content is researched, written, reviewed, and updated
- Corrections policy - how errors are handled
- Advertising/affiliate disclosure - how commercial relationships are handled and how they do or do not influence content
- Funding/ownership disclosure (for news/civic content) - who funds the organisation
- Physical address (for local businesses or organisations with physical operations)
Editorial policy
For content-heavy sites, especially in YMYL verticals, a standalone editorial policy page is strongly recommended. It can be linked from the footer, About page, and author bylines.
Sections to include:
- Editorial independence - how editorial decisions are made, who has final say
- Research and sourcing standards - what sources are acceptable, how claims are verified, citation requirements
- Expert review process - who reviews content, their qualifications, how often content is reviewed
- Corrections policy - what triggers a correction, how quickly, how it is disclosed, whether major corrections are logged
- Sponsorship and affiliate disclosure - what commercial relationships exist, how they are disclosed inline, how they do not influence editorial decisions
- AI content policy (increasingly important) - whether AI is used in content creation, in what capacity, and how AI-assisted content is reviewed by humans before publication
E-E-A-T audit checklist
Use this for a systematic E-E-A-T audit of any page or site:
Experience
- Content includes specific, firsthand details (dates, measurements, personal observations)
- Original images or data, not stock photography
- "Last tested" or "last updated" date visible
- Author discloses the nature of their experience with the topic
Expertise
- Author credentials are visible in the byline
- Author page exists with full background
- Content is technically accurate and goes beyond surface-level coverage
- For YMYL: content reviewed by a credentialed professional, with reviewer named
Authoritativeness
- Site has backlinks from recognised publications in the vertical
- Author has an external presence (published elsewhere, LinkedIn, etc.)
- Brand mentions exist outside the site's own properties
Trustworthiness
- All articles have a named author
- About page is comprehensive, not just a marketing pitch
- Contact information is present and functional
- Corrections policy exists and is accessible
- Affiliate and sponsored content is clearly disclosed
- Site uses HTTPS
- Privacy policy and terms are current
- For YMYL: disclaimer about consulting a professional (where appropriate)
topic-clusters.md
Topic Clusters
A systematic guide to the pillar-spoke content model: how to design clusters, map keywords to the right tier, wire internal links, and decide when to split or merge.
The pillar-spoke model
The pillar-spoke model organises site content into topical units. Each unit has:
- One pillar page - a comprehensive, authoritative overview of a broad topic
- Multiple spoke pages - deep-dive articles covering specific subtopics
- Bidirectional internal links - pillar links to all spokes; every spoke links back to the pillar
The model exists because search engines reward topical depth. A site with 15 well-linked pages covering every angle of "email marketing" will outrank a site with one very long page, because the former demonstrates sustained editorial investment in the topic.
Why clusters outperform isolated pages
- Internal links pass PageRank between related pages, lifting the whole cluster
- Semantic co-citation - neighbouring pages reinforce each other's relevance signals
- Crawlers build a coherent topic model of the site, improving indexing decisions
- Users who land on one spoke can navigate to others, improving session depth and reducing single-page abandonment
Anatomy of a pillar page
A pillar page should:
- Target a broad, high-volume head keyword - typically 1-2 words (e.g. "email marketing")
- Cover the topic at a breadth-first depth - enough to be genuinely useful on each subtopic, but not exhaustively - that is the spoke's job
- Link to every spoke page in the cluster - using descriptive, keyword-rich anchor text
- Be the longest page in the cluster - typically 2,000-5,000 words depending on topic
- Include a table of contents - with anchor links; signals comprehensiveness to crawlers
- Avoid targeting long-tail queries - those belong in spokes
A pillar page is NOT:
- A thin index page that only lists links
- A product or category page (those serve a different purpose)
- An exhaustive 20,000-word document that duplicates spoke content
Pillar page structure
H1: [Primary Keyword] - The Complete Guide
[150-200 word intro: what it is, who it's for, what you'll learn]
Table of Contents
- [Subtopic 1] (links to H2)
- [Subtopic 2]
...
H2: [Subtopic 1]
[200-400 words covering the subtopic at surface level]
[Contextual internal link: "For a deeper look, see our guide to [Spoke Page Title]"]
H2: [Subtopic 2]
...
H2: Frequently Asked Questions
[Target featured snippets and PAA boxes]
H2: [Summary / What to Do Next]
[CTA or link to highest-value spoke or product page]Anatomy of a spoke page
A spoke page should:
- Target a specific long-tail or mid-tail keyword - narrower than the pillar
- Cover one subtopic in depth - the goal is to be the best page on the web for that specific query
- Link back to the pillar - in the introduction or first contextual mention, using the pillar's primary keyword as anchor text
- Link to 1-3 related spoke pages - where context genuinely warrants it
- Not repeat or duplicate the pillar - it deepens; it does not re-summarise
Spoke page structure
H1: [Specific Subtopic Keyword] - [Angle or Promise]
[100-150 word intro: specific problem this solves, what reader learns]
[Early internal link back to pillar: "Part of our complete guide to [Pillar Topic]"]
H2: [Core concept 1]
H2: [Core concept 2]
H2: [Step-by-step / how-to section if applicable]
H2: [Examples / case study / data]
H2: [Common mistakes / FAQ]
[Related reading: links to 1-2 related spoke pages]Mapping a cluster from keyword research output
Step 1 - Define the pillar keyword
Take your keyword research output and identify the highest-volume, broadest intent keyword in the set. This is the pillar keyword. It should:
- Be broad enough to encompass all the subtopics you want to cover
- Have sufficient search volume to justify a flagship page (typically 1k+ searches/mo, though this varies by niche)
- Not be so broad that it becomes meaningless (e.g. "marketing" is too broad to be a pillar for a single cluster)
Step 2 - Group keywords by subtopic
Cluster the remaining keywords by semantic similarity. Each group that has:
- A distinct concept or question
- Its own search volume (i.e. people search for it separately)
- More than can be covered in 400 words within the pillar
...becomes a spoke page.
Example grouping for "email marketing" cluster:
Pillar: "email marketing" (40k/mo)
Group A -> Spoke: "Email subject lines"
- "email subject line examples" (8k/mo)
- "best email subject lines" (5k/mo)
- "email subject line length" (2k/mo)
- "how to write email subject lines" (1.5k/mo)
Group B -> Spoke: "Email list building"
- "how to build an email list" (6k/mo)
- "email list building strategies" (2k/mo)
- "grow email list" (1.8k/mo)
Group C -> Spoke: "Email marketing metrics"
- "email open rate" (4k/mo)
- "email click-through rate" (2.5k/mo)
- "email marketing kpis" (1.2k/mo)Each spoke targets the highest-volume keyword in its group as the primary, with the rest serving as semantic supporting terms within the same page.
Step 3 - Identify the spoke's primary keyword
Within each group, the spoke's primary keyword is the one you write the H1 and meta title around. Rules:
- Highest volume in the group is usually correct
- Unless a longer variant better matches the content's search intent
- Confirm by examining the SERP for each candidate: do the top-ranking pages match the content format you are planning?
Step 4 - Check for cannibalization risk
Before finalising the cluster map, verify no two spokes share a primary keyword. Run each candidate through your keyword tool and check if any of your existing pages already rank for it. If yes, consolidate or redirect before building new content.
Internal linking patterns within clusters
The minimum linking requirement
| Page type | Must link to | Must receive links from |
|---|---|---|
| Pillar | Every spoke in the cluster | Every spoke; homepage; relevant nav items |
| Spoke | Pillar (mandatory), 1-3 related spokes | Pillar (mandatory), related spokes, category pages |
Anchor text rules
- Pillar - spoke link: use the spoke's primary keyword or a close variant as the anchor text. Never use "read more" or "click here".
- Spoke - pillar link: use the pillar's primary keyword as anchor text in the first or second contextual mention.
- Spoke - spoke link: use the target spoke's primary keyword or the specific concept being referenced.
Placement best practices
- The pillar-to-spoke link should appear in the H2 section that covers that subtopic, not just in a link list at the bottom
- The spoke-to-pillar link should appear in the first 150 words (the intro), not just in a footer nav
- Contextual links (embedded in prose) carry more weight than standalone link lists
Visualising the link graph
Use a site crawler (Screaming Frog, Sitebulb) to export the internal link graph. A healthy cluster looks like a hub-and-spoke wheel with the pillar at the centre. Warning signs:
- Orphan spoke pages (no inbound internal links from within the cluster)
- Spokes linking to each other but not back to the pillar
- Pillar not linked from the homepage or site navigation (loss of equity)
Content hierarchy
A single site can contain multiple clusters. The site-level hierarchy is:
Homepage
|
+-- Pillar A ("Email Marketing")
| +-- Spoke A1, A2, A3 ...
|
+-- Pillar B ("Social Media Marketing")
| +-- Spoke B1, B2, B3 ...
|
+-- Pillar C ("Content Marketing")
+-- Spoke C1, C2, C3 ...Cross-cluster links are allowed and valuable when the topics genuinely intersect. For example, a spoke on "email list building" might link to a spoke under the "landing page design" cluster. Keep these contextual - do not force links for the sake of it.
Examples of well-structured clusters
B2B SaaS - "Project Management" cluster
Pillar: "Project Management" -> /blog/project-management-guide/
Spoke: "Project management methodologies" -> /blog/project-management-methodologies/
Spoke: "Agile vs Waterfall" -> /blog/agile-vs-waterfall/
Spoke: "How to write a project plan" -> /blog/project-plan-template/
Spoke: "Project management tools" -> /blog/best-project-management-tools/
Spoke: "Project status report template" -> /blog/project-status-report/
Spoke: "Risk management in projects" -> /blog/project-risk-management/Each spoke links back to the pillar, the pillar links out to each spoke, and spokes that are semantically adjacent (e.g. "Agile vs Waterfall" and "Project management methodologies") cross-link with relevant anchor text.
E-commerce - "Running Shoes" cluster
Pillar: "Running Shoes" -> /running-shoes/ (category page as pillar)
Spoke: "Best running shoes for beginners" -> /running-shoes/beginners/
Spoke: "Trail running shoes guide" -> /running-shoes/trail/
Spoke: "Running shoe size guide" -> /running-shoes/sizing/
Spoke: "How long do running shoes last" -> /blog/running-shoe-lifespan/
Spoke: "Running shoes for wide feet" -> /running-shoes/wide-feet/In e-commerce, a category page can serve as the pillar. The cluster includes both commercial (product) spokes and informational (blog) spokes - the informational spokes drive top-of-funnel traffic that flows into the commercial pages.
When to split a cluster
Split a single cluster into two when:
- The pillar page is unwieldy - approaching 8,000+ words and still not covering all subtopics adequately
- Subtopics have diverging intent - some spokes are heavily informational, others are highly transactional, and combining them under one pillar dilutes topical focus
- Search volume supports it - there is enough search demand to justify a second pillar page (typically 2,000+ searches/month for the new pillar keyword)
- A subtopic has grown into its own domain - e.g. "email marketing automation" started as a spoke but now warrants its own full cluster
How to split
- Identify the new pillar keyword (it was probably a high-volume spoke)
- Move the relevant spokes to the new cluster, update internal links
- Add a bidirectional link between the two pillar pages at the point where the topics intersect
- Update the original pillar to briefly mention the new cluster and link to it
When to merge clusters
Merge two clusters into one when:
- They are targeting overlapping keywords and competing with each other
- Neither cluster has enough spokes to establish topical authority on its own (typically fewer than 4-5 spokes)
- Search volume is insufficient to sustain two pillar pages (combined demand does not clearly split between two distinct head keywords)
How to merge
- Decide which pillar URL to keep (choose based on backlinks and existing rankings)
- 301 redirect the weaker pillar to the stronger
- Merge the content: expand the surviving pillar to cover the redirected pillar's subtopics, or convert the redirected pillar's content into a spoke
- Update all internal links to point to the surviving URL
- Consolidate spokes from the retired cluster under the surviving pillar's hierarchy
Frequently Asked Questions
What is content-seo?
Use this skill when optimizing content for search engines - topic cluster strategy, pillar page architecture, E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), content freshness, keyword cannibalization detection, topical authority building, and content gap analysis. Triggers on content planning for SEO, fixing thin content, building topical authority, or resolving cannibalization issues.
How do I install content-seo?
Run npx skills add AbsolutelySkilled/AbsolutelySkilled --skill content-seo in your terminal. The skill will be immediately available in your AI coding agent.
What AI agents support content-seo?
content-seo works with claude-code, gemini-cli, openai-codex, mcp. Install it once and use it across any supported AI coding agent.