Files
claude-skills-reference/marketing-skill/site-architecture/references/internal-linking-playbook.md
Alireza Rezvani 52321c86bc feat: Marketing Division expansion — 7 → 42 skills (#266)
* feat: Skill Authoring Standard + Marketing Expansion plans

SKILL-AUTHORING-STANDARD.md — the DNA of every skill in this repo:
10 universal patterns codified from C-Suite innovations + Corey Haines' marketingskills patterns:

1. Context-First: check domain context, ask only for gaps
2. Practitioner Voice: expert persona, goal-oriented, not textbook
3. Multi-Mode Workflows: build from scratch / optimize existing / situation-specific
4. Related Skills Navigation: when to use, when NOT to, bidirectional
5. Reference Separation: SKILL.md lean (≤10KB), refs deep
6. Proactive Triggers: surface issues without being asked
7. Output Artifacts: request → specific deliverable mapping
8. Quality Loop: self-verify, confidence tagging
9. Communication Standard: bottom line first, structured output
10. Python Tools: stdlib-only, CLI-first, JSON output, sample data

Marketing expansion plans for 40-skill marketing division build.

* feat: marketing foundation — context + ops router + authoring standard

marketing-context/: Foundation skill every marketing skill reads first
  - SKILL.md: 3 modes (auto-draft, guided interview, update)
  - templates/marketing-context-template.md: 14 sections covering
    product, audience, personas, pain points, competitive landscape,
    differentiation, objections, switching dynamics, customer language
    (verbatim), brand voice, style guide, proof points, SEO context, goals
  - scripts/context_validator.py: Scores completeness 0-100, section-by-section

marketing-ops/: Central router for 40-skill marketing ecosystem
  - Full routing matrix: 7 pods + cross-domain routing to 6 skills in
    business-growth, product-team, engineering-team, c-level-advisor
  - Campaign orchestration sequences (launch, content, CRO sprint)
  - Quality gate matching C-Suite standard
  - scripts/campaign_tracker.py: Campaign status tracking with progress,
    overdue detection, pod coverage, blocker identification

SKILL-AUTHORING-STANDARD.md: Universal DNA for all skills
  - 10 patterns: context-first, practitioner voice, multi-mode workflows,
    related skills navigation, reference separation, proactive triggers,
    output artifacts, quality loop, communication standard, python tools
  - Quality checklist for skill completion verification
  - Domain context file mapping for all 5 domains

* feat: import 20 workspace marketing skills + standard sections

Imported 20 marketing skills from OpenClaw workspace into repo:

Content Pod (5):
  content-strategy, copywriting, copy-editing, social-content, marketing-ideas

SEO Pod (2):
  seo-audit (+ references enriched by subagent), programmatic-seo (+ refs)

CRO Pod (5):
  page-cro, form-cro, signup-flow-cro, onboarding-cro, popup-cro, paywall-upgrade-cro

Channels Pod (2):
  email-sequence, paid-ads

Growth + Intel + GTM (5):
  ab-test-setup, competitor-alternatives, marketing-psychology, launch-strategy, brand-guidelines

All 29 skills now have standard sections per SKILL-AUTHORING-STANDARD.md:
   Proactive Triggers (4-5 per skill)
   Output Artifacts table
   Communication standard reference
   Related Skills with WHEN/NOT disambiguation

Subagents enriched 8 skills with additional reference docs:
  seo-audit, programmatic-seo, page-cro, form-cro,
  onboarding-cro, popup-cro, paywall-upgrade-cro, email-sequence

43 files, 10,566 lines added.

* feat: build 13 new marketing skills + social-media-manager upgrade

All skills are 100% original work — inspired by industry best practices,
written from scratch in our own voice following SKILL-AUTHORING-STANDARD.md.

NEW Content Pod (2):
  content-production — full research→draft→optimize pipeline, content_scorer.py
  content-humanizer — AI pattern detection + voice injection, humanizer_scorer.py

NEW SEO Pod (3):
  ai-seo — AI search optimization (AEO/GEO/LLMO), entirely new category
  schema-markup — JSON-LD structured data, schema_validator.py
  site-architecture — URL structure + internal linking, sitemap_analyzer.py

NEW Channels Pod (2):
  cold-email — B2B outreach (distinct from email-sequence lifecycle)
  ad-creative — bulk ad generation + platform specs, ad_copy_validator.py

NEW Growth Pod (3):
  churn-prevention — cancel flows + save offers + dunning, churn_impact_calculator.py
  referral-program — referral + affiliate programs
  free-tool-strategy — engineering as marketing

NEW Intelligence Pod (1):
  analytics-tracking — GA4/GTM setup + event taxonomy, tracking_plan_generator.py

NEW Sales Pod (1):
  pricing-strategy — pricing, packaging, monetization

UPGRADED:
  social-media-analyzer → social-media-manager (strategy, calendar, community)

Totals: 42 skills, 27 Python scripts, 60 reference docs, 163 files, 43,265 lines

* feat: update index, marketplace, README for 42 marketing skills

- skills-index.json: 89 → 124 skills (42 marketing entries)
- marketplace.json: marketing-skills v2.0.0 (42 skills, 27 tools)
- README.md: badge 134 → 169, marketing row updated
- prompt-engineer-toolkit: added YAML frontmatter
- Removed build logs from repo
- Parity check: 42/42 passed (YAML + Related + Proactive + Output + Communication)

* fix: merge content-creator into content-production, split marketing-psychology

Quality audit fixes:

1. content-creator → DEPRECATED redirect
   - Scripts (brand_voice_analyzer.py, seo_optimizer.py) moved to content-production
   - SKILL.md replaced with redirect to content-production + content-strategy
   - Eliminates duplicate routing confusion

2. marketing-psychology → 24KB split to 6.8KB + reference
   - 70+ mental models moved to references/mental-models-catalog.md (397 lines)
   - SKILL.md now lean: categories overview, most-used models, quick reference
   - Saves ~4,300 tokens per invocation

* feat: add plugin configs, Codex/OpenClaw compatibility, ClawHub packaging

- marketing-skill/SKILL.md: ClawHub-compatible root with Quick Start for Claude Code, Codex CLI, OpenClaw
- marketing-skill/CLAUDE.md: Agent instructions (routing, context, anti-patterns)
- marketing-skill/.codex/instructions.md: Codex CLI skill routing
- .claude-plugin/marketplace.json: deduplicated, marketing-skills v2.0.0
- .codex/skills-index.json: content-creator marked deprecated, psychology updated
- Total: 42 skills, 27 Python tools, 60 references, 18 plugins

* feat: add 16 Python tools to knowledge-only skills

Enriched 12 previously tool-less skills with practical Python scripts:
- seo-audit/seo_checker.py — HTML on-page SEO analysis (0-100)
- copywriting/headline_scorer.py — headline quality scoring (0-100)
- copy-editing/readability_scorer.py — Flesch + passive + filler detection
- content-strategy/topic_cluster_mapper.py — keyword clustering
- page-cro/conversion_audit.py — HTML CRO signal analysis (0-100)
- paid-ads/roas_calculator.py — ROAS/CPA/CPL calculator
- email-sequence/sequence_analyzer.py — email sequence scoring (0-100)
- form-cro/form_field_analyzer.py — form field CRO audit (0-100)
- onboarding-cro/activation_funnel_analyzer.py — funnel drop-off analysis
- programmatic-seo/url_pattern_generator.py — URL pattern planning
- ab-test-setup/sample_size_calculator.py — statistical sample sizing
- signup-flow-cro/funnel_drop_analyzer.py — signup funnel analysis
- launch-strategy/launch_readiness_scorer.py — launch checklist scoring
- competitor-alternatives/comparison_matrix_builder.py — feature comparison
- social-media-manager/social_calendar_generator.py — content calendar
- readability_scorer.py — fixed demo mode for non-TTY execution

All 43/43 scripts pass execution. All stdlib-only, zero pip installs.
Total: 42 skills, 43 Python tools, 60+ reference docs.

* feat: add 3 more Python tools + improve 6 existing scripts

New tools from build agent:
- email-sequence/scripts/sequence_analyzer.py — email sequence scoring (91/100 demo)
- paid-ads/scripts/roas_calculator.py — ROAS/CPA/CPL/break-even calculator
- competitor-alternatives/scripts/comparison_matrix_builder.py — feature matrix

Improved scripts (better demo modes, fuller analysis):
- seo_checker.py, headline_scorer.py, readability_scorer.py,
  conversion_audit.py, topic_cluster_mapper.py, launch_readiness_scorer.py

Total: 42 skills, 47 Python tools, all passing.

* fix: remove duplicate scripts from deprecated content-creator

Scripts already live in content-production/scripts/. The content-creator
directory is now a pure redirect (SKILL.md only + legacy assets/refs).

* fix: scope VirusTotal scan to executable files only

Skip scanning .md, .py, .json, .yml — they're plain text files
that VirusTotal can't meaningfully analyze. This prevents 429 rate
limit errors on PRs with many text file changes (like 42 marketing skills).

Scan still covers: .js, .ts, .sh, .mjs, .cjs, .exe, .dll, .so, .bin, .wasm

---------

Co-authored-by: Leo <leo@openclaw.ai>
2026-03-06 03:56:16 +01:00

8.4 KiB

Internal Linking Playbook

Patterns for building an internal link structure that distributes equity intelligently and reinforces topical authority.


The Three Goals of Internal Linking

  1. Crawlability — every page should be reachable from the homepage in 3 clicks or fewer
  2. Equity flow — link equity flows from authoritative pages to pages you want to rank
  3. Topical signals — anchor text and link context tell Google what a page is about

Most sites get none of these right. The ones that do compound their SEO advantage over time.


Linking Architecture Patterns

Pattern 1: Hub-and-Spoke (Topic Cluster)

Best for: Content sites, blogs, SaaS feature/solution pages.

Hub (Pillar) Page
├── Spoke 1 (Sub-topic)
│   └── Deep 1a (Specific guide within sub-topic)
│   └── Deep 1b
├── Spoke 2 (Sub-topic)
│   └── Deep 2a
└── Spoke 3 (Sub-topic)

Link rules:

  • Hub → all spokes (contextual, in-body links)
  • Each spoke → hub (with anchor text matching hub's target keyword)
  • Each spoke → adjacent spokes (only when genuinely relevant)
  • Deep pages → parent spoke + hub

What makes this work: The hub becomes the authority page because it receives links from everything in the cluster. Google sees a well-linked hub as the definitive resource on the topic.


Pattern 2: Linear (Sequential Content)

Best for: Course content, multi-part guides, documentation, step-by-step processes.

Introduction → Part 1 → Part 2 → Part 3 → Summary/CTA

Link rules:

  • Each page links forward (next) and back (previous)
  • An index page links to all parts
  • Summary page links back to each key section

What makes this work: Clear navigation for users, clear sequence for crawlers.


Pattern 3: Conversion Funnel Linking

Best for: SaaS sites, lead gen sites — moving users from content to conversion.

Blog Post (awareness) → Feature Page (consideration) → Pricing Page (decision)
Blog Post (awareness) → Case Study (social proof) → Free Trial / Demo CTA

Link rules:

  • Every blog post should have at least one contextual link to a product/feature page
  • Case studies link to the relevant feature/solution and to pricing
  • Feature pages link to relevant case studies and to pricing
  • Pricing page links to FAQ and to demo/trial

What makes this work: Equity flows from content (high link volume) to money pages (low link volume). Most SaaS sites have this backwards — money pages get links from the nav only.


Pattern 4: Star / Authority Distribution

Best for: Homepage and top-level hub pages that have lots of external links.

Homepage (authority source)
├── Service Page A (direct link from homepage)
├── Feature Page B (direct link from homepage)
├── Blog Category Hub (direct link from homepage)
└── Case Studies Hub (direct link from homepage)

Link rules:

  • Homepage links only to the most important pages
  • Not to every blog post — to the category hubs
  • Each hub then distributes equity downward

What makes this work: Homepage equity isn't diluted across 200 blog links. It concentrates on 5-8 priority pages, which then funnel it to their children.


Anchor Text Strategy

The Right Mix

Type Target % of Internal Links Example
Descriptive partial match 50-60% "cold email writing guide"
Exact match keyword 10-15% "cold email templates"
Page title / branded 20-25% "our guide to cold outreach"
Generic <5% "learn more"
Naked URL 0% Never

Writing Good Anchor Text

Good: Uses the target keyword naturally in a sentence.

"For tactical patterns, see our cold email frameworks."

Bad: Forces exact match where it sounds unnatural.

"Click here to read our cold email templates cold email cold outreach guide."

Bad: Generic — signals nothing.

"For more information, click here."

Anchor Text Diversification

Don't link to the same page with the same anchor every time. Vary it. If you have 15 internal links to your "cold email templates" page:

  • 8 using variations: "email outreach templates," "cold outreach scripts," "first-email frameworks"
  • 4 using exact: "cold email templates"
  • 3 using title/branded: "our template library"

This looks natural and covers a wider keyword base.


Finding Linking Opportunities

Method 1: Keyword Overlap Search (Manual)

When you publish new content, search your site for pages that mention the topic but don't link to the new page.

site:yourdomain.com "cold email"

Any page that mentions "cold email" and doesn't already link to your cold email guide is a candidate for adding a contextual link.

Method 2: Screaming Frog Crawl

Crawl your site with Screaming Frog → Bulk Export → Internal links. Then filter:

  • Pages with 0 inbound internal links = orphans (fix immediately)
  • Pages with 1-2 inbound internal links = at-risk (add more)
  • Pages with high outbound links but low inbound = over-givers (these should be receiving, not just giving)

Method 3: Content Gap Linking

When you audit your content clusters, look for spokes that aren't linked from the hub. The hub should explicitly link to every key spoke page. If it doesn't, the cluster is broken.


Orphan Page Recovery

An orphan page has no internal links pointing to it. It's effectively invisible to Google's link graph.

Step 1: Find your orphans

  • Run scripts/sitemap_analyzer.py to get all indexed URLs
  • Cross-reference with your internal link graph (from Screaming Frog or GSC)
  • Pages in sitemap but not in internal link graph = candidates

Step 2: Classify them

Type Action
Valuable content, no home Find existing relevant pages to add contextual links from; add to relevant hub
Landing pages (PPC, events) These are intentionally unlinked — check if they're accidentally indexed
Duplicate / thin content Consolidate with canonical or noindex
Old content no longer relevant Consider 301 redirect to updated version or 410

Step 3: Fix in priority order

  1. Orphans with inbound external links first (equity is flowing in but going nowhere)
  2. Orphans with good content and search potential
  3. Orphans with thin content (fix content first, then link)

Run this quarterly:

  • Every key page is reachable in ≤3 clicks from homepage
  • Pillar/hub pages have links from all their spokes
  • All spoke pages link back to their hub
  • No orphan pages (pages with zero internal inbound links)
  • Homepage links to 5-8 priority sections only
  • Footer links limited to high-value pages (10-15 max)
  • New content published in the last 30 days has at least 3 contextual inbound internal links
  • No broken internal links (404s from internal sources)
  • Anchor text is descriptive, not generic
  • Pages with highest external backlinks are linking to money/conversion pages

Common Patterns That Fail

Putting 80 links in the footer because "they should be accessible." Google gives footer links minimal weight and won't thank you for linking to every blog post from there. Footer = navigation to key sections + legal. That's it.

Auto-generated related posts widgets are fine as supplemental linking, but they don't replace intentional contextual linking. The widget links to "related" content by tag or category — not necessarily to what you actually want to rank. Do the manual work.

The Nav-Only Money Pages

Feature pages and pricing pages that only appear in the navigation get equity from nav links only. Powerful nav links are sitewide — but adding 5-10 contextual blog links to your pricing page is a significant equity boost. Write one blog post that organically links to pricing. That's real.

Linking to Pages You Want to Rank for the Wrong Topic

If your /blog/seo-guide has 30 internal links to it but all the anchor text says "our guide" and "learn more," you're not sending a topical signal. The link equity flows in, but Google doesn't know what topic to attribute. Fix anchor text.

Never Touching Old Posts

Old blog posts accumulate internal links over time because new posts link to them. But they rarely link out to newer, better content. When you publish new content, go back and update old posts to add contextual links to the new piece. This is one of the highest-ROI activities in content SEO.