agentleFS
carlosuhartcarlosuhart/seo-audit-skills/skills/seo-interlinking/SKILL.md

seo-interlinking

Skill6 starsChanged 14 days agoMITView on GitHub

Audits internal linking on an existing site with Screaming Frog exports and GSC: orphan pages, click depth, over-optimized anchors and hub pages, with ranked link recommendations. Diagnosis only, it never edits WordPress. Use for "páginas huérfanas", "auditoría de interlinking" or "orphan pages". Not for planning new sites (site-architecture, seo-cluster).

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If the user hasn't provided these files yet, ask for them before running the script -- do not guess file paths.

    line 55
  2. Very specific:

    Read the JSON the script prints (summary, orphans, deep_pages, anchor_text_flags, hub_candidates).

    line 66
  3. Distinctive:

    Stop there. Do not open the CMS, do not edit a post, do not call any WordPress ability to add the link -- hand the report back for the user …

    line 84

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SEO Interlinking Audit -- Existing-Site Link Health

Diagnoses the internal-link graph of a site that already exists and already has content -- orphan pages, pages too deep to get crawled/prioritized, anchor-text over-optimization, and which high-authority pages could donate link equity to the weak ones found. Read-only: it never edits a post, never calls a WordPress write ability, and never inserts a link on its own.

This is the complementary skill to site-architecture and seo-cluster (which plan new structure or new content clusters) and to seo-programmatic (which covers templated pages generated at scale). This skill audits what is already live.

Quick Reference

CommandWhat it does
/seo-interlinking <all-inlinks.csv> <overview.csv> --home <url>Full audit: orphans, click depth, anchor text, hub candidates
add --gsc <gsc.csv>Prioritizes every finding by real clicks/impressions instead of crawl data alone
add --max-depth <n>Override the click-depth threshold (default 4)
add --anchor-repeat-threshold <0-1>Override the anchor over-optimization threshold (default 0.8)

Required inputs

Two Screaming Frog exports are needed -- not the same report. See references/screaming-frog-export.md for exact menu paths if this needs explaining to a client or a new session:

  1. All Inlinks (bulk export, From/To/Anchor Text columns) -- this is the actual link graph. The "Internal" tab's own Inlinks/Outlinks columns are just counts, they cannot rebuild who-links-to-whom or the anchor text used.
  2. Internal HTML (or "Internal All" filtered to HTML) -- Address, Indexability, Status Code -- used to restrict the audit to indexable, live, HTML pages.

GSC data is optional but strongly recommended -- without it, orphans/deep pages are ranked only by crawl signals, not by whether Google already sends them traffic. Export a standard GSC Search Analytics CSV (Page, Clicks, Impressions, Position) for the same property, or ask the user which GSC access method applies to this project (service account vs. local OAuth token -- see this environment's own GSC access notes) if a live pull is wanted instead of a CSV.

If the user hasn't provided these files yet, ask for them before running the script -- do not guess file paths.

Workflow

  1. Collect the two Screaming Frog CSVs, the homepage URL, and (if available) the GSC CSV or a live GSC pull for the same property.
  2. Run the script:
    python scripts/audit_interlinking.py --inlinks <all-inlinks.csv> --overview <overview.csv> --home <https://example.com/> --gsc <gsc.csv>
  3. Read the JSON the script prints (summary, orphans, deep_pages, anchor_text_flags, hub_candidates).
  4. Before writing a single recommendation, check this environment's project memory for that site's own interlinking house rules (anchor style, how many inline links, whether it uses a closing "Recomendamos"/"También te puede interesar" block, etc.). Different projects in this environment have different, specific rules -- never invent a generic format. If no project-specific rule is found, say so explicitly rather than assuming one.
  5. Render a single prioritized Markdown report, ordered:
    • Orphans with real GSC clicks/impressions first (highest impact: Google already wants to send traffic there, it just can't find the page well internally).
    • Then orphans with no GSC signal yet.
    • Then deep pages (same GSC-first ordering).
    • Then anchor-text over-optimization flags. Each recommendation names a specific hub candidate to link from (pick the closest topical match among hub_candidates, not just the single highest-traffic page for everything) and a suggested anchor text consistent with the project's house rules from step 4.
  6. Stop there. Do not open the CMS, do not edit a post, do not call any WordPress ability to add the link -- hand the report back for the user (or a separate, explicitly-confirmed step) to execute.

Thresholds (script defaults, all overridable via flags)

SignalDefaultMeaning
Orphan0-1 internal inlinksOn an indexable, 200-status HTML page
Deep pageclick depth > 4BFS distance from the homepage over the internal link graph
Anchor over-optimizationone anchor text >= 80% shareOnly flagged once a URL has at least 3 internal inlinks

Explicitly out of scope

  • SE Ranking -- retired from this stack entirely, never a data source here.
  • New site or new cluster planning -- see site-architecture, seo-cluster, blog-cluster.
  • Templated/programmatic pages at scale -- see seo-programmatic.
  • Writing anything -- no post edits, no link insertion, no WordPress writes of any kind. Diagnosis and prioritized recommendations only.

Reference files

  • references/screaming-frog-export.md -- load on demand: exact Screaming Frog report names, menu paths, and column names this skill expects, for when a session needs to explain the export steps or troubleshoot a CSV that doesn't parse.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.