← All skills
SEOv1.0.0 · 2026-08-07
Topical Authority Check
Runs before a single word is written. Search rewards topical authority — a site that covers one subject completely — so a topic that does not strengthen an existing pillar *dilutes the site*.
What it does
- Pull the evidence
- Score the topical fit
- Return one of three verdicts
- Handle the data-source realities
SKILL.md
--- name: topical-authority-check description: The gatekeeper that runs before a word is written — score a proposed topic against your existing pillars and keyword data, and return proceed, refine, or skip. Use when asked whether to write about a topic, validate a blog topic, check topical fit, decide if a post strengthens or dilutes the site, stop writing posts that never rank, or someone says 'should we cover this'. For planning the whole site's structure, see site-architecture. For the research data itself, see keyword-research. metadata: version: 1.0.0 --- # Topical authority check Runs **before a single word is written**. Search rewards topical authority — a site that covers one subject completely — so a topic that does not strengthen an existing pillar *dilutes the site*. **Saying no is the highest-value thing this agent does.** Every skipped bad topic saves the full writing, publishing, and ranking-nowhere cost downstream. ## Before you start | Input | Why | | --- | --- | | The proposed topic | The thing on trial | | Your existing pillars and the site's one subject | Fit is judged against these, not in the abstract | | Keyword data access — Semrush, or the free stack | Volume, difficulty, and who ranks are the evidence | | Your current rankings for related terms | The cannibalisation check needs them | ## Step 1 — Pull the evidence For the topic and its close variants: 1. **Volume and difficulty** — from Semrush, or the free stack (Keyword Planner for volume, Search Console for what you already half-rank for). 2. **Who currently ranks in the top 5** — you are asking whether you can join them. 3. **Your own existing rankings** — will this post *cannibalise* an old one that already ranks for the term? ## Step 2 — Score the topical fit | Question | Signal | | --- | --- | | Does it strengthen an existing pillar? | Fits under one pillar as a cluster post → strong | | Does it fit the site's one subject? | Off-subject → dilution, however good the volume | | Does an existing post already target it? | Yes → this is a refresh or a merge, not a new post | | Can this site realistically join the top 5? | All top spots are giants and you are new → refine the angle | ## Step 3 — Return one of three verdicts | Verdict | Meaning | What follows | | --- | --- | --- | | **PROCEED** | Strengthens a pillar, no cannibalisation, winnable | Straight to the pipeline (blog-content-writer) | | **REFINE** | Right subject, wrong shape — too broad, too hard, or duplicative | The suggested version that does fit, stated concretely | | **SKIP** | Dilutes the site or duplicates a ranking post | Said plainly, with the reason — never softened to "maybe later" | On REFINE, always give the alternative: *"If the topic dilutes your clusters, give the version of this topic that does not."* ## Step 4 — Handle the data-source realities - **Semrush quota exhausted mid-check**: do not let the agent retry blindly — it will burn the rest of the quota on the same failing call. Detect, log, fall back to the free stack, and say so. - **No paid tools at all**: the free stack runs the entire check — Search Console + Keyword Planner + AlsoAsked + Trends. *"Swap the data source, keep the system."* You lose competitor depth, not correctness. ## Output ``` # Topical check: "<topic>" Verdict: PROCEED / REFINE / SKIP Evidence: Volume: <n or range> (<source>) Difficulty: <n or unknown> Top 5 now: <who — pattern, not full list> Pillar fit: <which pillar it strengthens, or NONE> Cannibalisation: <none / conflicts with <url>, ranked #<n>> If REFINE → the version that fits: "<concrete alternative topic>" If SKIP → reason in one line Data source: <semrush / free stack — and any quota fallback used> ``` ## When it breaks | What you see | What it means | The fix | | --- | --- | --- | | Every check returns PROCEED | The gate is rubber-stamping | A gate that never says no is not a gate; re-score against the pillar list honestly | | Posts rank but traffic means nothing | Volume worshipped over fit | Fit first: strengthens-a-pillar outranks big-number topics | | New post outranked your old post | Cannibalisation check skipped | Check your own rankings before every new topic | | Quota burned by lunch | Blind retries on a failing call | Detect the quota response, fall back, report | | Check blocks everything | Site's subject defined too narrowly | Revisit the subject definition in site-architecture | | Verdicts flip-flop between runs | Judgement without recorded evidence | The output's evidence block is mandatory, not decoration | | "But the client wants this topic" | Authority argument vs preference | Show the dilution cost; write it as REFINE with the fitting version | Never skip the check because the topic "obviously" fits. The obvious topics are where cannibalisation hides — the site already covered the obvious ones. ## Rules - **The check runs before writing, every time**, because its entire value is the downstream cost it prevents. - **Saying no is the job**, because a topic that dilutes the site costs more than the post it would have produced. - **Cannibalisation is checked against your own rankings**, because outranking yourself is a loss dressed as a win. - **Quota failures fall back, never retry blindly**, because the retry burns the budget on the same failing call. - **REFINE always ships an alternative**, because "no" without "here's what would work" just moves the argument to next week. ## Related skills - **keyword-research** — the data layer this check reads. - **site-architecture** — the pillar map fit is judged against. - **blog-content-writer** — where PROCEED topics go next. - **content-refresher** — where duplicate-topic verdicts route instead.
Reviews
Sign in to leave a review.
