Files
igny8/v2/Igny8 V2 New Final Plans/SAG-Doc3-Interlinking-Specification-PLAN.md
IGNY8 VPS (Salman) 128b186865 temproary docs uplaoded
2026-03-23 09:02:49 +00:00

542 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Document 3 — SAG Interlinking Specification (Linker Module)
## Detailed Section Plan
**Version:** 1.0 | March 2026
**Status:** Plan — Ready for section-by-section build
**Dependency:** SAG-IGNY8-Implementation.md (Section 14 pipeline, Section 16 data models, blueprint JSON)
**Target Format:** Markdown (.md) for IGNY8 repo use with Claude Code
**Estimated Length:** ~800-1,000 lines
---
## Current State Summary (inputs to this document)
### What Exists in IGNY8 Today
- **Linker module:** Backend at `business/linking/`, API at `modules/linker/`, frontend at `pages/Linker/` and `api/linker.api.ts` — all INACTIVE behind `linker_enabled` feature flag
- **Existing Linker capability** (pre-SAG): Finds link candidates based on content similarity, injects links with varied anchor text, configurable link density limits
- **Blueprint JSON** already has `internal_linking_map` field (currently `{"rules_reference": "SAG-Interlinking-Specification.md"}` — pointing to THIS document), `linked_attribute_terms` per cluster, `cross_cluster_links` per cluster, and `link_coverage_score` on SAGCluster model
- **Content model** has `sag_cluster_id` field (planned) — links content back to its cluster for linking rules
- **Pipeline Stage 7** (SAG-enhanced): "Pre-computed internal links ready" at review queue — means links are generated BEFORE publish, not after
### What SAG-IGNY8-Implementation.md Already Defines
- Page types: Blog Post, Cluster Hub Page, Product Page, Service Page, Category Page, Attribute Term Page, Brand Page, Comparison Page
- Cluster types: Product/Service Category, Condition/Problem, Feature, Brand, Informational, Comparison — each has different hub page style
- Blueprint stores `linked_attribute_terms` (which taxonomy terms a cluster connects to) and `cross_cluster_links` (which other clusters share attribute values)
- Execution priority: Phase 1 = category pages + top hubs, Phase 2 = remaining hubs + first blogs, Phase 3 = attribute term pages, Phase 4 = additional blogs + brand comparisons
- Health monitoring already tracks "internal link coverage" as one of the weekly health check items
### What the Niche Definition Process (Doc 2) Defines
- Each cluster has 1 hub page + 3-8 supporting content pieces
- Clusters form at 2+ attribute value intersections — two clusters sharing an attribute value are cross-link candidates
- Max 50 clusters per sector, backlink campaigns target top 25-30 — the other 20-25 rank purely through internal authority flow
### What Content Types Plan Defines
- Taxonomy landing pages include "key subtopics + internal links" and "internal links to related clusters" as default sections
- Cluster hub pages aggregate related terms + posts + products
### What the Taxonomy Term Content Plan Defines
- Term pages need "internal links to related clusters" as a standard section
- Cluster Hub Manager handles "cluster landing pages and cross-links"
---
## Section Plan
### Section 1: Purpose & Scope
**Content:**
- Why SAG interlinking is fundamentally different from generic internal linking tools
- Generic linkers scan content for keyword matches and insert links randomly — SAG linking follows deterministic rules derived from the dimensional structure
- Every link has a structural purpose: it flows authority from backlinked pages down through the hierarchy and connects dimensionally-related content
- This document is the rules engine specification — it tells the IGNY8 Linker module exactly what links to create, where, with what anchor text, and in what priority order
- Scope: WordPress implementation first, platform-agnostic rules that translate to any CMS
- Dependency: Requires an active SAG Blueprint with populated clusters, published content, and WordPress taxonomies created
**Inputs from existing docs:** SAG-IGNY8-Implementation.md Section 14.1 (Post-Publish → "Linker creates SAG-compliant internal links")
---
### Section 2: Page Types in the Link Graph
**Content:**
Define every page type that participates in the link graph, its role, and its WordPress implementation. Each type has different linking behavior.
| Page Type | SAG Role | WordPress Implementation | Link Behavior |
|-----------|----------|------------------------|---------------|
| Homepage | T1 — authority entry point | Front page | Links to sector landing pages and top cluster hubs |
| Sector Landing Page | Sector overview | Page (or custom page template) | Links to all cluster hubs within sector |
| Cluster Hub Page | T2/T3 — authority distribution node | Page with hub template | Links DOWN to supporting content, ACROSS to related cluster hubs, UP to sector landing |
| Supporting Blog Post | T4 — content depth | Post | Links UP to its cluster hub (mandatory), ACROSS to sibling blogs in same cluster, ACROSS to related cluster hubs |
| Attribute Term Page | Taxonomy node connecting clusters | Custom taxonomy term archive with rich content | Links to ALL cluster hubs that use this attribute value |
| Product Page | Commercial page | WooCommerce product | Links to its cluster hub, to relevant attribute term pages |
| Service Page | Commercial page | Page with service template | Links to its cluster hub, to relevant attribute term pages |
| Category Page | Top-level grouping | Category archive with rich content | Links to cluster hubs within this category |
| Brand Page | Brand overview | Post or page | Links to cluster hubs featuring this brand |
| Comparison Page | Decision-stage content | Post | Links to both compared cluster hubs |
**Key rule:** Every page except homepage must link to at least ONE cluster hub. No orphan pages in a SAG site.
**Inputs from existing docs:** SAG-IGNY8-Implementation.md Section 11.2 (content type table), Section 12.2 (platform mapping table), Content_Types_Writing_Plan.md Section 2
---
### Section 3: Link Relationship Types
**Content:**
Define the 7 directional link types the system generates. Each has specific rules.
**Type 1: Vertical Upward (Supporting → Hub)**
- Every supporting blog post MUST link to its cluster hub page
- This is mandatory, not optional — enforced at content generation time
- Anchor text uses cluster's primary keyword or hub page title variant
- Placement: First mention of cluster topic in content body, ideally within first 2 paragraphs
- Count: Exactly 1 link to own hub per supporting article
**Type 2: Vertical Downward (Hub → Supporting)**
- Every cluster hub page links to ALL its published supporting content
- Placement: Hub pages have a structured "Related Articles" or "In This Guide" section
- Plus contextual in-body links where naturally relevant
- Anchor text: Article title or primary keyword of the supporting piece
**Type 3: Horizontal Sibling (Supporting ↔ Supporting within same cluster)**
- Supporting articles within the same cluster link to each other where topically relevant
- Not mandatory for every pair — only where semantic overlap creates a natural link opportunity
- Maximum 2 sibling links per article to avoid link dilution
- Anchor text: Natural descriptive phrases, varied per link
**Type 4: Cross-Cluster (Hub ↔ Hub sharing attribute value)**
- Two cluster hubs that share an attribute value are cross-link candidates
- Example: "Foot × Neuropathy" and "Foot × EMS" both have Target Area = Foot → cross-link
- Maximum 2 cross-cluster links per hub page to avoid diluting the hub's primary focus
- Selection: Highest-value cross-links chosen by shared keyword volume overlap
- Anchor text: The linked hub's primary keyword or a natural variant
**Type 5: Taxonomy Contextual (Term Page → Cluster Hubs)**
- Each attribute term page links to EVERY cluster hub that uses that attribute value
- Example: "Neuropathy" term page links to "Foot × Neuropathy", "EMS × Neuropathy", "Heated × Neuropathy"
- This is the dimensional connecting layer — term pages are the linking nodes of the grid
- Anchor text: Hub page title or cluster primary keyword
**Type 6: Breadcrumb Structural**
- Every page has a breadcrumb path: Home → Sector → [Attribute Term or Category] → Hub → Current Page
- These are navigational links, always present in page template
- Not counted toward content link density limits
**Type 7: Related Content (Cross-Cluster, Semantic)**
- For supporting blogs, a "Related Reading" or "You May Also Like" section with 2-3 links to content in OTHER clusters
- Selected by: shared attribute values (not same cluster), complementary topics, user journey logic
- This is the weakest link type — lowest priority, most likely to be omitted if link density cap is reached
**Inputs from existing docs:** Blueprint JSON `linked_attribute_terms` field (Type 5), `cross_cluster_links` field (Type 4), Taxonomy_Term_Content_Plan.md Section 7 item 5 ("internal links to related clusters")
---
### Section 4: Authority Flow Model
**Content:**
How external backlink authority distributes through the SAG structure via internal links. This is the mechanism behind the "compounding authority effect."
**Flow path:**
1. External backlinks hit homepage (T1) and top 25-30 cluster hub pages (T2/T3)
2. Hub pages distribute authority DOWN to 3-8 supporting articles each
3. Supporting articles link BACK UP to hub (reinforcing) and ACROSS to siblings (spreading)
4. Attribute term pages act as horizontal connectors — they link to ALL hubs sharing that attribute value, creating cross-cluster authority flow
5. Clusters WITHOUT direct backlinks receive authority through: cross-cluster links from backlinked hubs, term page connections from shared attribute values, and sibling blog cross-references
**Why this compounds:**
- Every new piece of content in a cluster strengthens the hub (more upward links)
- Every new cluster that shares an attribute value strengthens the term page (more hub links feeding into it)
- The term page then distributes that combined authority to ALL connected hubs
- Result: A site at DR 29 can dominate country-level rankings for thousands of queries because the internal structure amplifies whatever external authority exists
**Maximum hop distance:** Any page should be reachable from a backlinked page within 3 link hops. If a page requires 4+ hops, it needs a direct cross-link from a higher-authority page.
**Visualization:** Include a flow diagram showing Homepage → Sector → Hubs (backlinked) → Supporting Content → Term Pages → Other Hubs (not backlinked) with authority flow arrows
**Inputs from existing docs:** Transcript discussion of T1-T5 tier system, SAG-IGNY8-Implementation.md Section 14.3 (health monitoring tracks link coverage), SAG compounding authority evidence from MassagerSmart (DR 29 dominating country rankings)
---
### Section 5: Link Scoring & Priority Algorithm
**Content:**
When the Linker has multiple potential links to create (especially for cross-cluster and related content links), it needs a scoring system to select the highest-value links.
**Scoring factors:**
| Factor | Weight | Logic |
|--------|--------|-------|
| Shared attribute values | 40% | More shared values = stronger topical relevance |
| Target page authority | 25% | Pages with backlinks or higher link_coverage_score get priority |
| Keyword overlap | 20% | Cluster keyword lists compared — higher overlap = more relevant link |
| Content recency | 10% | Newer content gets slight priority to accelerate indexing |
| Current link count gap | 5% | Pages below minimum inbound links get priority |
**Priority ordering for link creation:**
1. Mandatory links first (Type 1: supporting → hub — always created)
2. Hub → supporting links (Type 2 — always created for published content)
3. Term page → hub links (Type 5 — always created)
4. Cross-cluster hub links (Type 4 — top 2 by score)
5. Sibling links (Type 3 — top 2 by score)
6. Related content links (Type 7 — fill remaining capacity)
**Inputs from existing docs:** SAGCluster model has `link_coverage_score` field, blueprint health monitoring tracks internal link coverage
---
### Section 6: Anchor Text Generation Rules
**Content:**
Anchor text strategy per link type to avoid over-optimization while maximizing keyword relevance.
| Link Type | Anchor Text Strategy | Examples |
|-----------|---------------------|----------|
| Supporting → Hub | Primary keyword of hub (60%), hub title variant (30%), natural phrase (10%) | "foot massagers for neuropathy", "our neuropathy foot massager guide", "learn more about neuropathy relief" |
| Hub → Supporting | Article title (70%), primary keyword (20%), descriptive (10%) | "Doctor-Recommended Foot Massagers for Neuropathy", "doctor-recommended neuropathy massagers" |
| Sibling → Sibling | Natural contextual phrase (60%), article keyword (30%), generic (10%) | "comparing EMS and TENS therapy", "EMS vs TENS for neuropathy" |
| Cross-Cluster Hub → Hub | Target hub primary keyword (50%), descriptive (40%), generic (10%) | "EMS foot massagers", "explore our EMS foot massager guide" |
| Term Page → Hub | Hub primary keyword (50%), hub title (40%), descriptive (10%) | "best foot massagers for neuropathy", "Foot Massagers for Neuropathy Guide" |
| Breadcrumb | Page title (100%) | Always the page title — no variation |
| Related Content | Natural phrase (80%), generic (20%) | "you might also find this helpful", "related: heated massagers for circulation" |
**Hard rules:**
- No exact-match anchor text used more than 3 times across the entire site for the same target URL
- Anchor text must be grammatically natural in context — never force a keyword phrase that breaks sentence flow
- Never use "click here", "read more", or "this article" as anchor text
- Maximum anchor text length: 8 words
- Minimum anchor text length: 2 words
---
### Section 7: Link Density Enforcement
**Content:**
Maximum and minimum outbound/inbound link counts per page type to prevent over-linking or under-linking.
| Page Type | Min Outbound | Max Outbound | Min Inbound | Notes |
|-----------|-------------|-------------|-------------|-------|
| Homepage | 5 | 15 | N/A (external) | Links to top hubs + sector pages |
| Cluster Hub | 5 | 20 | 3 | Must link to all supporting + 2 cross-cluster |
| Supporting Blog (<1000 words) | 2 | 5 | 1 | Must include hub link |
| Supporting Blog (1000-2000 words) | 3 | 8 | 1 | Must include hub link |
| Supporting Blog (2000+ words) | 4 | 12 | 1 | Must include hub link |
| Attribute Term Page | 3 | unlimited | 0 | Links to ALL connected hubs (no cap) |
| Product Page | 2 | 5 | 1 | Hub + relevant term pages |
| Service Page | 2 | 5 | 1 | Hub + relevant term pages |
**Override logic:**
- If a hub has 10+ supporting articles, max outbound for hub increases to 25 (listing them all adds value)
- If content is a mega-guide (3000+ words), max outbound increases to 15
- User can manually override density limits per page in IGNY8 UI
**Density ratio:** Outbound links per 300 words of content, with a target of 1-2 links per 300 words for body content. Navigational sections (related articles, breadcrumbs) don't count toward this ratio.
---
### Section 8: Cross-Cluster & Cross-Sector Linking Logic
**Content:**
Detailed rules for when and how to create links between clusters.
**Cross-cluster within same sector:**
- Two clusters are cross-link candidates when they share at least 1 attribute value
- Example: "Foot × Neuropathy" and "Foot × Plantar Fasciitis" share Target Area = Foot
- The Linker checks `attribute_intersection` JSON of both clusters for shared values
- Maximum 2 cross-cluster outbound links per hub page
- Selection: Score all candidates by the scoring algorithm (Section 5), pick top 2
**Cross-sector (multi-sector sites):**
- Same logic but across sectors — two clusters from different sectors sharing an attribute value
- These are rarer and higher-value because they connect separate topical areas
- Example: "Agile PM Tools" (PM sector) and "Sprint Planning CRM" (CRM sector) both have Use Case = Agile
- Cross-sector links get a 1.5x score multiplier because they're harder for competitors to replicate
- Maximum 1 cross-sector link per hub page (don't dilute primary sector authority)
**Shared attribute value check (pseudocode):**
```
for each cluster_a.hub_page:
candidates = []
for each cluster_b in blueprint.clusters:
if cluster_b == cluster_a: skip
shared = intersection(cluster_a.attribute_values, cluster_b.attribute_values)
if len(shared) >= 1:
score = calculate_link_score(cluster_a, cluster_b, shared)
candidates.append((cluster_b, score))
sort candidates by score desc
create_links(top 2 candidates)
```
**Inputs from existing docs:** Blueprint JSON `cross_cluster_links` field already stores these relationships per cluster
---
### Section 9: Link Injection Method
**Content:**
Where exactly in the content links get placed.
**During content generation (New Content Mode):**
- AI content generation prompts include link injection instructions
- Links are placed BEFORE content enters the review queue (pipeline Stage 7 reference)
- Writer module receives link targets from the Linker as part of the task context
**Link placement zones per page type:**
**Blog Posts / Supporting Content:**
- Zone 1: In-body contextual (primary) — links woven into paragraph text where topically natural
- Hub link: Within first 2 paragraphs, at first natural mention of cluster topic
- Sibling links: In relevant body sections, natural context
- Cross-cluster links: In sections discussing related topics
- Zone 2: "Related Reading" section at end of article (2-3 links)
- Zone 3: Breadcrumb at top (structural, always present)
**Cluster Hub Pages:**
- Zone 1: In-body contextual — links to supporting content within guide sections
- Zone 2: "Articles in This Guide" / "Complete Guide Contents" section — all supporting articles listed
- Zone 3: "Related Topics" section — cross-cluster hub links (max 2)
- Zone 4: Breadcrumb at top
**Attribute Term Pages:**
- Zone 1: Intro paragraph — link to the primary cluster hub for this term
- Zone 2: "Explore by Topic" section — all connected cluster hubs listed with brief descriptions
- Zone 3: "Top [Term] Products/Services" — links to relevant products/services
- Zone 4: "Related Guides" — links to supporting blogs across clusters
**Product/Service Pages:**
- Zone 1: In description — link to cluster hub this product belongs to
- Zone 2: "Specifications" or "Details" section — links to attribute term pages for the product's attribute values
- Zone 3: "Related Products" — sibling products in same cluster
---
### Section 10: Existing Content Audit Mode
**Content:**
How the Linker scans already-published content and identifies missing SAG links.
**Trigger:** User clicks "Audit Links" in Linker module, or automatic weekly scan via blueprint health monitoring
**Audit process:**
1. Load active blueprint — get all clusters, page types, expected link relationships
2. Crawl all published content (from IGNY8 content records, not live site)
3. For each page, extract all outbound links (parse HTML content)
4. Compare actual links vs expected links per the rules in Sections 3-8
5. Generate gap report
**Gap report output per page:**
- Missing mandatory links (e.g., blog post has no link to its hub)
- Missing cross-cluster links (hub has 0 of 2 recommended)
- Missing attribute term links
- Over-linked pages (exceeding density limits)
- Orphan pages (no inbound links from any SAG page)
**Recommendation generation:**
- For each missing link: target URL, suggested anchor text (3 variants), suggested placement zone
- For over-linked pages: which links to remove (lowest-scoring by algorithm)
- Priority ordering: mandatory gaps first, then high-authority gaps, then nice-to-haves
**User workflow:** Linker presents recommendations → user approves/rejects per link → approved links auto-injected into content → content republished to WordPress
---
### Section 11: New Content Mode
**Content:**
How links are automatically inserted during content generation, before the content enters the review queue.
**Integration point:** Pipeline Stage 4 (Content Generation) → Linker adds link context to Writer task
**Flow:**
1. Writer task created with `sag_cluster_id` and `blueprint_context`
2. Before content generation, Linker calculates required links for this content piece:
- What cluster is this? → Mandatory link to cluster hub
- What page type is this? → Apply density rules
- What sibling content exists in this cluster? → Sibling link candidates
- What cross-cluster opportunities exist? → Cross-cluster candidates
3. Link targets + anchor text suggestions passed to AI content generation prompt
4. AI generates content WITH links embedded
5. Post-generation link validation: verify all mandatory links present, density within limits
6. Content enters review queue with links pre-inserted
**Prompt enhancement (added to Thinker prompts):**
```
Link requirements for this content:
- MANDATORY: Link to [hub_url] with anchor text "[primary_keyword]" within first 2 paragraphs
- RECOMMENDED: Link to [sibling_url_1] with anchor "[suggested_anchor]" where contextually relevant
- RECOMMENDED: Link to [cross_cluster_url] with anchor "[suggested_anchor]" if topic comes up naturally
- Total outbound links: [min]-[max] based on content length
- Do NOT use "click here" or "read more" as anchor text
```
---
### Section 12: Link Health Monitoring
**Content:**
Ongoing monitoring that feeds into the SAG Health Score.
**Checks (run weekly or on-demand):**
- Broken links: Published URLs that return 404 or redirect chains
- Orphan pages: Pages with 0 inbound SAG links (every page should have at least 1)
- Authority flow gaps: Clusters where hub has backlinks but supporting content has <2 inbound links
- Over-linked pages: Pages exceeding density maximums
- Missing mandatory links: Any supporting blog without a hub link
- Stale cross-links: Cross-cluster links pointing to hubs whose clusters have been restructured
- Anchor text over-optimization: Same exact anchor pointing to same URL more than 3 times site-wide
**Health score contribution:**
The link coverage score (0-100) on SAGCluster model is calculated as:
- Hub page published and has all mandatory links? (25 points)
- All supporting content links back to hub? (25 points)
- At least 1 cross-cluster link on hub? (15 points)
- All attribute term pages link to this hub? (15 points)
- No broken links within cluster? (10 points)
- Density within limits for all cluster pages? (10 points)
**Alert thresholds:**
- Cluster link score < 50: Flag as "needs attention" in dashboard
- Orphan page detected: Immediate alert
- Broken link detected: Add to fix queue
- 3+ same exact anchor text: Over-optimization warning
---
### Section 13: Reporting & Visualization
**Content:**
What the Linker module shows in the IGNY8 UI.
**Cluster-Level Link Coverage Report:**
- Table showing all clusters with: cluster name, hub status (published/draft/missing), supporting content count, link coverage score, missing links count
- Color coding: green (score 80+), yellow (50-79), red (<50)
- Click into cluster → see all pages, all links, all gaps
**Site-Wide Link Map:**
- Visual showing clusters as nodes, with lines connecting cross-linked hubs
- Attribute term pages as connecting nodes between clusters
- Thickness of lines = number of links between nodes
- Helps users see which parts of the grid are well-connected vs isolated
**Link Audit Dashboard:**
- Total links site-wide
- Missing mandatory links count
- Orphan pages count
- Over-linked pages count
- Top 10 most-linked pages (should be hubs)
- Top 10 least-linked pages (should be investigated)
- Average links per page by type
**Gap Analysis Export:**
- Downloadable report of all missing links with recommendations
- Format matching existing IGNY8 export patterns
---
### Section 14: Data Models
**Content:**
New models and fields needed for the Linker module.
**SAGLink (new model)**
```
- id (UUID)
- blueprint_id (FK → SAGBlueprint)
- source_content_id (FK → Content)
- target_content_id (FK → Content, nullable — for external/term page targets)
- target_url (String — for term pages or external)
- link_type (Enum: hub_upward, hub_downward, sibling, cross_cluster, taxonomy_contextual, breadcrumb, related_content)
- anchor_text (String)
- placement_zone (Enum: in_body, related_section, breadcrumb, specification, guide_contents)
- status (Enum: planned, injected, published, broken, removed)
- score (Float — from scoring algorithm)
- created_at, injected_at
```
**SAGLinkAudit (new model)**
```
- id (UUID)
- blueprint_id (FK → SAGBlueprint)
- audit_date (DateTime)
- total_links (Integer)
- missing_mandatory (Integer)
- orphan_pages (Integer)
- broken_links (Integer)
- over_linked_pages (Integer)
- cluster_scores (JSON — {cluster_id: score} map)
- recommendations (JSON — array of link recommendations)
```
**Modified existing models:**
- SAGCluster: `link_coverage_score` already defined — this doc defines how it's calculated (Section 12)
- Content: Add `outbound_link_count` (Integer), `inbound_link_count` (Integer) — cached counters
---
### Section 15: Integration with IGNY8 Pipeline
**Content:**
How the Linker module fits into the existing IGNY8 workflow and automation.
**Manual mode:**
- User publishes content → clicks "Generate Links" in Linker → reviews recommendations → approves → links injected
- User runs "Audit Links" → sees gap report → approves fixes → links updated
**Automation mode (pipeline extension):**
- After Stage 7 (images generated), new Stage 8: Link Generation
- Load blueprint, get cluster context for this content
- Generate required links per rules
- Inject into content HTML
- Content enters review queue with links already present
- After publish → async link audit checks all pages in cluster for completeness
**WordPress plugin integration:**
- When content publishes to WordPress, links are already in the HTML
- Plugin does NOT need to do link processing — IGNY8 app handles all link logic
- Plugin reports back published URL → IGNY8 updates SAGLink records with final published URLs
---
### Section 16: MassagerSmart Reference Example
**Content:**
Walk through the complete interlinking architecture for MassagerSmart.com as the reference implementation.
**Example cluster: "Foot Massagers for Neuropathy"**
- Hub page: "Best Foot Massagers for Neuropathy & Nerve Pain Relief"
- Links DOWN to: "Doctor-Recommended Foot Massagers for Neuropathy", "EMS vs TENS for Neuropathy", "Does a Foot Massager Actually Help Neuropathy?"
- Links ACROSS to: "EMS Foot Massagers" hub (shared value: Foot), "Heated Foot Massagers" hub (shared value: Foot)
- Links UP to: Sector landing page
- Supporting blog: "Doctor-Recommended Foot Massagers for Neuropathy"
- Links UP to: Hub page (mandatory)
- Links to SIBLING: "EMS vs TENS for Neuropathy" (shared cluster)
- Links to RELATED: "Shiatsu Foot Massagers" hub (different cluster, related topic)
- Attribute Term Page: "Neuropathy"
- Links to: "Foot Massagers for Neuropathy" hub, "EMS Massagers for Neuropathy" hub, "Heated Massagers for Neuropathy" hub — all hubs where Relief Focus = Neuropathy
Show the complete link map for 3-4 clusters demonstrating all 7 link types in practice.
---
### Section 17: Cross-References
**Content:**
- SAG Master Document — Pure methodology reference
- SAG Implementation for IGNY8 — Three-layer architecture, blueprint JSON, data models, pipeline integration (primary dependency)
- SAG Niche Definition Process — Cluster formation rules that determine link structure (Document 2)
- SAG Backlink Campaign Specification — External links that feed the internal authority flow (Document 4)
---
## Build Plan
This document will be built as Markdown (.md) for the IGNY8 repo, matching the format of SAG-IGNY8-Implementation.md. Estimated 800-1,000 lines across 17 sections. Can be built section by section in one session, or split into 2 sessions if needed.
Sections 1-4 establish the conceptual framework (page types, link types, authority flow).
Sections 5-8 define the rules engine (scoring, anchors, density, cross-cluster).
Sections 9-11 define the two operating modes (audit existing, generate for new).
Sections 12-13 define monitoring and reporting.
Sections 14-15 define data models and pipeline integration.
Section 16 is the worked example.
Section 17 is cross-references.