Skip to content
Marketing
Skill

/internal-links

When the user wants to optimize internal linking, fix orphan pages, or improve link structure. Also use when the user mentions "internal links," "internal linking," "anchor text," "link equity," "internal linking strategy," or "orphan pages." For IA, use website-structure.

From plugin
marketing-skills
1.1k171 skills

Claude Code

$ npx -y skills add kostja94/marketing-skills --skill internal-links --agent claude-code

SKILL.md

internal-links.SKILL.md
name: internal-links
description: Audits and designs internal links for a site, page family or article. Use for orphan pages, link equity, click depth, hubs, anchor text, old-post backfill and product navigation.
metadata:
  version: 2.0.0

Internal links

Scope and evidence

State the intended outcome: discovery, access to priority pages, semantic hierarchy, a reading path, product conversion, or diagnosis of missing or overlapping pages. Read the relevant project context from root `{project}.md` when available; otherwise use supplied material. Declare included hosts, locales and surfaces (Blog, Docs, Help Center, app).

Classify clickable destinations by ownership: same-host page, same registered domain on another subdomain (ecosystem), another owned domain, owned social/community channel, third party, or same-page fragment. Report these separately. Canonicals, hreflang, redirects, sitemap and Schema URLs can corroborate findings but do not count as clickable edges. For third-party links in Blog articles use outbound-links.

Establish live nodes from the rendered site and existing page inventory. Use [site-structure-inventory](https://github.com/kostja94/vibe-coding/tree/main/skills/site-structure-inventory) if discovery is needed. Cross-check robots, sitemap, CMS, routes, search console, analytics or logs as available. Label disagreements with source and date: a deployment repository can lag production or contain future work. Record crawl exclusions, sampling and unknowns before calling a page an orphan.

Compare observed and intended links

1. Crawl reachable in-scope pages and extract rendered links. Distinguish navigation, footer, breadcrumb, body, card, CTA, recommendation and fragment. For large inventories, summarize by page family and URL pattern with examples. 2. For each important page, identify its parent, children, justified peers, useful incoming entrances and next user action. Select the [landing-page workflow](references/landing-pages.md) for product, proof and conversion, or the [Blog workflow](references/blog.md) for education and continued reading. For mixed pages, select the primary role, then inspect the bridge to the other family. 3. Compare observed edges with these candidates. Flag missing nodes separately from missing edges: if the intended destination does not exist, report the gap. For each issue give the observed evidence, impact, proposed source/target, placement or anchor change, and a verification method. Separate responsibility conflicts from link fixes. 4. Prioritize broken, wrong or noncanonical targets; important orphans; broken hub/detail relationships; navigation, breadcrumbs and main product paths; strong contextual gaps; cross-cluster bridges; then wording. Counts, density and click depth are diagnostics or project-specific thresholds. Choose natural, descriptive anchor text that predicts the destination; use a keyword only where it helps the reader.

Deliver at the scale of the site

  • Small site: add the key relationships and serious reachability gaps to the existing site-structure inventory.
  • Curated site: use a project internal-linking plan for intended relationships, priority destinations, hubs, subdomain rules and exceptions.
  • Large or programmatic site: additionally generate a dated observed graph in CSV, JSON or a database. Store evidence separately from proposals; a proposed edge contributes zero observed inlinks.

For an observed edge preserve the literal source and target, the roles of both pages, placement, actual anchor (or image/control), and discovery time separately from recheck time. Record the verified canonical target alongside the original URL; leave unverified values unknown. Support the status with evidence for existence, crawlability, destination availability and contextual relevance separately.

After authorized changes, recrawl the affected paths. Verify important destinations have relevant crawlable entrances, anchors resolve to the intended canonical and locale, and the new observations and project plan agree. For draft-only work report the verified artifact and any outstanding live checks.

Related skills

Use website-structure or url-structure for architecture decisions, site-crawlability for technical access, breadcrumb-generator for breadcrumb implementation, and content-strategy for cluster planning.

Read more
@kostja94
Ships withmarketing-skills

Marketing Skills is an open-source library of reusable marketing and SEO workflows for AI agents. Install the skills your task needs, provide real product context, and get structured work grounded in explicit methods, checks, and source rules.

1.1k171 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.1k
Star history of kostja94/marketing-skills on GitHub, a chart by star-history.com

Other skills on marketing-skills.

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about internal-links.

Which coding agents can use internal-links?
internal-links installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.