# Internal link acceptance review worksheet

Plan a bounded set of contextual links among existing pages and verify that each declared edge and page shipped correctly. Use saved HTML and delivery evidence to support the acceptance decision.

Worksheet version 1.0 · 25 September 2026. Complete and repeat records as needed. Blank fields request your evidence; these manual files do not collect answers, publish changes or calculate RankEcho product metrics.

Complete guide: https://rankecho.io/resources/fix/internal-link-cluster

## 1 Establish the discovery defect

Confirm a useful, relevant link is absent before proposing a change. A wrong-page citation alone does not select an internal-link fix.

**Owner and page roles** — Record change ID, reviewer, target owner, source pages, exact URLs, saved versions and reader jobs. Confirm the pages should remain public and distinct.

[Enter your response]

**Before evidence** — For each missing relevant link, save source initial HTML, UTC capture time and exact locator. Explain the reader or discovery problem. If the link already exists, revisit the diagnosis.

[Enter your response]

**Bounded change and approval** — Declare the allowed anchor insertions and approver. Preserve copy, page identities, canonicals, indexing controls and redirects. Attach the saved before version and intended acceptance checks.

[Enter your response]

## 2 Declare every edge and node

Repeat the edge record for each intended link. The fictional plan converts five existing phrases into anchors among four existing pages; it adds no new page or substantive copy.

**Edge identity** — Record edge ID, source page and destination page, exact href, descriptive anchor and initial-HTML locator. Check the from/to pair is unique and the destination preserves the intended page identity.

[Enter your response]

**Node requirements** — For every source and destination, record expected status, initial HTML, self-canonical and indexing intent. Define how to retain redirected, broken, unavailable or failed observations.

[Enter your response]

**Deployment and rollback plan** — Record deploy owner, approval, planned version and time. Name rollback trigger, saved before version, recovery steps and checks to repeat. Leave actual deployment evidence blank until executed.

[Enter your response]

## 3 Verify the delivered graph

Review acceptance before looking at later citations. The fictional record accepts five of five edges and four of four nodes; these are teaching records, not a production deployment receipt.

**Observed edge evidence** — For every edge, retain actual UTC check time, initial-HTML capture and exact anchor, href and locator result. Distinguish present, missing, redirected, broken, unavailable and failed.

[Enter your response]

**Observed node evidence** — Save the actual status, initial HTML, canonical and indexing controls for each node. Attach the bounded diff and deployed version; investigate any change outside the declared anchors.

[Enter your response]

**Acceptance decision** — Reconcile required and accepted edges and nodes. Any unverified requirement leaves acceptance incomplete. A zero-edge plan is invalid, never 100% complete. Record reviewer and unresolved failures.

[Enter your response]

| Fictional check | Required | Accepted |
| --- | --- | --- |
| Direct HTML edges | 5 | 5 |
| Existing page nodes | 4 | 4 |
| Redirect changes | 0 | 0 |
| Canonical changes | 0 | 0 |

## 4 Close the change and plan observations

Acceptance confirms the declared HTML graph. It cannot establish a citation cause, authority transfer, ranking improvement or a later business outcome.

**Release record** — Record accepted, incomplete or rolled back, with deploy timestamp, version, approver and evidence links. Describe failed checks and follow-up owners without reporting unexecuted work as complete.

[Enter your response]

**Rollback outcome** — If triggered, record restored version, time, responsible owner and repeated acceptance results. Otherwise retain the approved trigger and saved recovery state for later use.

[Enter your response]

**Separate observation protocol** — Link any prospective prompt, context, exact target URL and window registry. Complete the schedule regardless of direction; keep link delivery and later citation persistence as separate records.

[Enter your response]

## Complete guide

An internal-link cluster is a bounded set of contextual, crawlable HTML links connecting one declared canonical owner with its relevant hub and supporting pages. Specify every source, destination, anchor, and rendered locator; preserve distinct page jobs and self-canonicals; then validate the deployed graph independently of any answer-system result. Internal links can improve navigation and discovery, but this change is not a citation cause or guarantee. Site traffic is a separate outcome and is not required.

Original guide update: 2026-09-07. Worksheet prepared 25 September 2026. The original guide and its evidence records retain their dates. This manual review record complements the original guide and retains its separate method and product boundaries.

## What must be established before building the cluster?

Start from resolved page ownership, inspect each page's real user job, and confirm that every page should remain public and distinct. A wrong-page observation alone does not select an internal-link fix; it is only the outcome that prompted investigation.

The synthetic handoff retains T01 as the product owner, H01 as its ancestor hub, W01 as a checklist, and S01 as documentation. No page is deleted or relabeled as duplicate.

- [Review the owner-mismatch evidence](https://rankecho.io/resources/find/issues/wrong-page-cited)

## Which directly evidenced internal-discovery defect selects this fix?

Saved initial-HTML snapshots show that the three relevant source pages contain no crawlable path to T01 at the predeclared locations. This is a directly observable reader-and-crawler discovery defect, independent of which URL an answer system cited.

The fix is eligible only because ownership is resolved and D01–D03 reproduce the absent links. If those links already exist, or the pages are not relevant to T01, choose another diagnosis rather than manufacturing a cluster.

| Check | Source → owner | Before finding | Initial-HTML evidence |
| --- | --- | --- | --- |
| D01 | H01 → T01 | The relevant hub module names supplier risk but contains no crawlable link to T01. | synthetic-evidence/discovery/D01-before-html |
| D02 | W01 → T01 | The checklist distinguishes its informational job but provides no crawlable path to the product owner. | synthetic-evidence/discovery/D02-before-html |
| D03 | S01 → T01 | The field documentation lacks a crawlable path back to the workflow owner. | synthetic-evidence/discovery/D03-before-html |


## What does the worked synthetic link cluster contain?

SYNTHETIC EXAMPLE — Alderwave Relay, its pages, prompts, surfaces, citations, links, and observations are fictional; this is not RankEcho data, customer data, provider evidence, or a benchmark.

The link-only change converts five existing descriptive phrases into direct anchors among four existing pages. It adds no page or substantive copy. Each locator points to initial HTML rather than a click handler or script-only navigation.

| Edge | From → to | Required anchor | Initial-HTML locator | Accepted state |
| --- | --- | --- | --- | --- |
| L01 | H01 → T01 · /platform/supplier-risk | supplier-risk monitoring | main > section[data-module='supplier-risk'] | present |
| L02 | W01 → T01 · /platform/supplier-risk | Alderwave Relay supplier-risk monitoring | main > aside[data-page-role='checklist'] | present |
| L03 | S01 → T01 · /platform/supplier-risk | supplier-risk review workflow | main > section[data-doc='review-evidence'] > p:first-of-type | present |
| L04 | T01 → S01 · /docs/review-evidence | review-evidence documentation | main > section[data-feature='review-record'] | present |
| L05 | T01 → W01 · /blog/supplier-risk-checklist | supplier-risk checklist | main > section[data-related='operator-guides'] | present |


## How does the change preserve page roles?

H01 links readers into the supplier-risk module. W01 explicitly remains a checklist and points to the product owner. S01 remains field-level documentation. T01 links outward to the two resources that deepen its product explanation.

Use descriptive anchors for readers and discovery. Do not repeat anchors mechanically, hide links, create doorway pages, or infer a universal number of links from this five-edge example.


## Why are redirects and canonical changes excluded?

All four pages have distinct purposes, so the synthetic fix retains their URLs, 200 responses, indexing intent, and self-canonicals. The graph change neither redirects them nor consolidates them.

Google documents canonical signals for duplicate or very similar pages. Topical relationship alone is not sufficient reason to canonicalize a checklist or documentation page to a product page.

The bounded change excludes new pages, substantive content, structured data, redirects, canonicals, external links, and indexing-control edits. It makes no link-count, PageRank, authority-flow, ranking, or citation claim.


## Which acceptance and failure states apply?

A required edge passes only when a crawlable anchor with the exact intended destination appears at its declared initial-HTML locator. Missing, redirected, broken, unavailable, and failed validation remain distinct.

This synthetic deployment accepts 5/5 edges and 4/4 nodes. An unavailable validation is incomplete rather than a pass; a plan containing zero required edges is invalid rather than 100% complete.

| Component | Required | Accepted | Result |
| --- | --- | --- | --- |
| Direct contextual edges | 5 | 5 | Every exact anchor and href appears in initial HTML |
| Existing nodes | 4 | 4 | Every node returns 200 and preserves its self-canonical and indexing intent |
| Redirect changes | 0 | 0 | None introduced |
| Canonical changes | 0 | 0 | Distinct page identities preserved |
| Zero-edge rule | At least 1 | 5 | Zero required edges is invalid configuration |


## How does deterministic acceptance differ from outcome measurement?

Link acceptance proves only that the declared HTML graph shipped. It is not a citation rate, an answer-volatility result, a fixed-prompt before/after finding, or evidence of persistence.

| Method | Unit and question |
| --- | --- |
| Wrong-page diagnosis | Does a qualifying owned URL match the predeclared owner for this exact prompt cell? |
| Citation rate | What share of eligible cells meets a declared citation rule within one window? |
| Answer volatility | How often do unordered repeat pairs disagree on a predeclared feature signature? |
| Fixed-prompt retest | What changed between a registered baseline and a later matched observation? |
| Citation persistence | After an exact-target citation creates an inception cohort, which cells remain continuously confirmed through ordered later windows? |


## What can RankEcho prepare and what remains manual?

RankEcho's Fix Engine can prepare a reviewable internal-link or page proposal grounded in pages that exist and can retain a shipment date. The operator remains responsible for page selection, editorial review, deployment, and rollback.

RankEcho does not currently publish these links, certify a complete site graph, compute this five-edge companion acceptance record, measure authority flow, or guarantee that T01 replaces another cited URL.

- [Prepare the bounded link package](https://rankecho.io/product/fix-engine)

## What deterministic validation completes Fix?

Validate the deployed artifact before examining later citations so outcome knowledge cannot change the declared cluster.

| Check | Pass condition | Failure treatment |
| --- | --- | --- |
| Edge identity | Five unique from/to pairs, hrefs, anchors, and locators match the plan | Reject duplicate or drifting edges |
| Crawlable HTML | Each link is a rendered anchor with a resolvable href | Missing or script-only navigation fails |
| Node delivery | T01, H01, W01, and S01 return 200 with expected initial HTML | Unavailable or failed fetch leaves acceptance incomplete |
| Page identity | Every page preserves its purpose, self-canonical, and indexing intent | Unexpected redirect, canonical, or noindex fails |
| Bounded diff | Only the five declared anchor insertions change | New pages or content, schema, redirect, canonical, external-link, or indexing edits require a separate record |
| Rollback | Saved prior page versions can restore the five locations | Missing before version fails |


## How does Fix hand off to citation persistence?

Record the accepted shipment at 2026-08-03T16:00:00Z, retain the six stable cell definitions, and collect only the four predeclared later windows. The proof page asks whether exact T01 citations remain continuously observable; it does not infer that the links caused them.

Use the broader fixed-prompt retest when the primary question is baseline-versus-later movement. Use citation persistence only after an exact-target observation creates a frozen inception cohort.

- [Measure exact-target citation persistence](https://rankecho.io/resources/prove/citation-persistence)
- [Compare baseline and later observations](https://rankecho.io/resources/prove/fixed-prompt-retest)

## Who maintains this guide?

Written and maintained by Abiot Y. Derbie. Published 2026-09-07; sources checked 2026-09-07; last updated 2026-09-07. The link graph is synthetic.

Recheck destination URLs, rendered anchors, canonical behavior, and official link guidance before applying the method. Send material corrections through the contact page.

- [Send a correction](https://rankecho.io/contact)
- [Review measurement definitions](https://rankecho.io/methodology)

## How many internal links should a cluster contain?

There is no universal count. Add the smallest useful set supported by page relationships and reader needs; five edges belong only to this synthetic case.

## Should supporting pages canonicalize to the target page?

Not when they serve distinct purposes. Canonical consolidation is intended for duplicate or very similar pages, not every topically related page.

## What outcome follows from a crawlable internal link?

The link validates a navigation and discovery condition. It does not promise provider retrieval, selection, citation, or persistence.

## Does RankEcho publish the link changes?

No. It can prepare a reviewable proposal and shipment record; the site operator controls verification and deployment.

## Must traffic increase before the cluster is accepted?

No. Accept the artifact from its declared HTML, URL, and page-identity checks. Traffic is a separate later outcome.

## Preserved dated evidence

- [Google Search: AI features and your website](https://developers.google.com/search/docs/appearance/ai-features) — checked 2026-09-07. Google says AI Overviews and AI Mode can use query fan-out, different models and techniques, and varying responses and links; normal Search eligibility applies, but eligibility does not guarantee crawling, indexing, serving, or appearance. Google Search documentation last updated December 10, 2025 Primary-source documentation check; the guidance does not establish that an internal-link change causes an AI citation or that a sampled citation will persist. Confidence: High

- [Google Search: canonical URL methods](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls) — checked 2026-09-07. Google documents redirects, rel=canonical, and sitemap inclusion as canonicalization signals for duplicate or very similar pages and says these methods can stack. Current Google Search canonicalization documentation Primary-source documentation check; canonicalization applies to duplicate or very similar pages. It is not a way to declare every topical page subordinate, expose an AI answer system's chosen owner, or cause a citation. Confidence: High

- [Google Search: link best practices](https://developers.google.com/search/docs/crawling-indexing/links-crawlable) — checked 2026-09-07. Google recommends crawlable anchor elements with descriptive, relevant anchor text and says internal links help people and Google find and understand pages. Current Google Search link documentation Primary-source documentation check; this supports deterministic link validation, not a universal cluster size, transfer-of-authority calculation, AI citation cause, or selection guarantee. Confidence: High

## Complete fictional source records

These are the original fictional Alderwave Relay records, not real captures, customer observations or deployment receipts. Evidence pointers label the teaching records; replace them with your retained evidence before use.

```json
{
  "pages": [
    {
      "id": "T01",
      "url": "https://alderwave.example/platform/supplier-risk",
      "path": "/platform/supplier-risk",
      "role": "intended-owner",
      "userJob": "Explain the fictional Alderwave Relay supplier-risk monitoring product.",
      "version": "synthetic-target-v4",
      "evidencePointer": "synthetic-evidence/pages/T01-v4"
    },
    {
      "id": "H01",
      "url": "https://alderwave.example/platform",
      "path": "/platform",
      "role": "ancestor-hub",
      "userJob": "Orient readers across the fictional platform modules.",
      "version": "synthetic-hub-v3",
      "evidencePointer": "synthetic-evidence/pages/H01-v3"
    },
    {
      "id": "W01",
      "url": "https://alderwave.example/blog/supplier-risk-checklist",
      "path": "/blog/supplier-risk-checklist",
      "role": "competing-page",
      "userJob": "Provide a fictional supplier-risk checklist rather than own the product prompts.",
      "version": "synthetic-checklist-v6",
      "evidencePointer": "synthetic-evidence/pages/W01-v6"
    },
    {
      "id": "S01",
      "url": "https://alderwave.example/docs/review-evidence",
      "path": "/docs/review-evidence",
      "role": "supporting-spoke",
      "userJob": "Document fictional review-evidence fields used by the product workflow.",
      "version": "synthetic-docs-v2",
      "evidencePointer": "synthetic-evidence/pages/S01-v2"
    }
  ],
  "promptOwners": [
    {
      "id": "P01",
      "prompt": "What supplier-risk signals does Alderwave Relay monitor?",
      "intendedOwnerId": "T01",
      "ownershipState": "resolved",
      "ownerReason": "The product page owns the product-scope question; the checklist and documentation support narrower tasks.",
      "registrationVersion": "synthetic-owner-map-v1",
      "evidencePointer": "synthetic-evidence/owners/P01"
    },
    {
      "id": "P02",
      "prompt": "How does Alderwave Relay document a supplier-risk review?",
      "intendedOwnerId": "T01",
      "ownershipState": "resolved",
      "ownerReason": "The product page owns the workflow overview and links to field-level documentation.",
      "registrationVersion": "synthetic-owner-map-v1",
      "evidencePointer": "synthetic-evidence/owners/P02"
    },
    {
      "id": "P03",
      "prompt": "What is included in Alderwave Relay supplier-risk monitoring?",
      "intendedOwnerId": "T01",
      "ownershipState": "resolved",
      "ownerReason": "The product page owns the included-capabilities question; the hub remains broader.",
      "registrationVersion": "synthetic-owner-map-v1",
      "evidencePointer": "synthetic-evidence/owners/P03"
    }
  ],
  "contexts": [
    {
      "id": "CTX-A",
      "surface": "Surface A",
      "serviceLabel": "Fictional answer surface A",
      "locale": "en-US",
      "accountState": "signed-out synthetic session",
      "modelLabel": "not exposed",
      "citationRoleRule": "Count only links the fictional interface marks as citations or supporting sources; exclude related and suggested links.",
      "urlNormalizationRule": "Resolve redirects, remove fragments and declared tracking parameters, lowercase the host, preserve the path, and compare the resulting exact URL.",
      "collectionMode": "One scheduled manual capture per prompt and window."
    },
    {
      "id": "CTX-B",
      "surface": "Surface B",
      "serviceLabel": "Fictional answer surface B",
      "locale": "en-US",
      "accountState": "signed-out synthetic session",
      "modelLabel": "not exposed",
      "citationRoleRule": "Count only links the fictional interface marks as citations or supporting sources; exclude related and suggested links.",
      "urlNormalizationRule": "Resolve redirects, remove fragments and declared tracking parameters, lowercase the host, preserve the path, and compare the resulting exact URL.",
      "collectionMode": "One scheduled manual capture per prompt and window."
    }
  ],
  "discoveryChecks": [
    {
      "id": "D01",
      "sourcePageId": "H01",
      "targetPageId": "T01",
      "inspectedLocator": "main > section[data-module='supplier-risk']",
      "beforeState": "verified-link-absent",
      "initialHtmlEvidencePointer": "synthetic-evidence/discovery/D01-before-html",
      "readerAndCrawlerFinding": "The relevant hub module names supplier risk but contains no crawlable link to T01."
    },
    {
      "id": "D02",
      "sourcePageId": "W01",
      "targetPageId": "T01",
      "inspectedLocator": "main > aside[data-page-role='checklist']",
      "beforeState": "verified-link-absent",
      "initialHtmlEvidencePointer": "synthetic-evidence/discovery/D02-before-html",
      "readerAndCrawlerFinding": "The checklist distinguishes its informational job but provides no crawlable path to the product owner."
    },
    {
      "id": "D03",
      "sourcePageId": "S01",
      "targetPageId": "T01",
      "inspectedLocator": "main > section[data-doc='review-evidence'] > p:first-of-type",
      "beforeState": "verified-link-absent",
      "initialHtmlEvidencePointer": "synthetic-evidence/discovery/D03-before-html",
      "readerAndCrawlerFinding": "The field documentation lacks a crawlable path back to the workflow owner."
    }
  ],
  "edges": [
    {
      "id": "L01",
      "fromPageId": "H01",
      "toPageId": "T01",
      "href": "/platform/supplier-risk",
      "anchor": "supplier-risk monitoring",
      "locator": "main > section[data-module='supplier-risk']",
      "beforeState": "missing",
      "afterState": "present",
      "evidencePointer": "synthetic-evidence/links/L01-after"
    },
    {
      "id": "L02",
      "fromPageId": "W01",
      "toPageId": "T01",
      "href": "/platform/supplier-risk",
      "anchor": "Alderwave Relay supplier-risk monitoring",
      "locator": "main > aside[data-page-role='checklist']",
      "beforeState": "missing",
      "afterState": "present",
      "evidencePointer": "synthetic-evidence/links/L02-after"
    },
    {
      "id": "L03",
      "fromPageId": "S01",
      "toPageId": "T01",
      "href": "/platform/supplier-risk",
      "anchor": "supplier-risk review workflow",
      "locator": "main > section[data-doc='review-evidence'] > p:first-of-type",
      "beforeState": "missing",
      "afterState": "present",
      "evidencePointer": "synthetic-evidence/links/L03-after"
    },
    {
      "id": "L04",
      "fromPageId": "T01",
      "toPageId": "S01",
      "href": "/docs/review-evidence",
      "anchor": "review-evidence documentation",
      "locator": "main > section[data-feature='review-record']",
      "beforeState": "missing",
      "afterState": "present",
      "evidencePointer": "synthetic-evidence/links/L04-after"
    },
    {
      "id": "L05",
      "fromPageId": "T01",
      "toPageId": "W01",
      "href": "/blog/supplier-risk-checklist",
      "anchor": "supplier-risk checklist",
      "locator": "main > section[data-related='operator-guides']",
      "beforeState": "missing",
      "afterState": "present",
      "evidencePointer": "synthetic-evidence/links/L05-after"
    }
  ],
  "nodeChecks": [
    {
      "pageId": "T01",
      "statusCode": 200,
      "initialHtml": true,
      "selfCanonical": true,
      "indexableAsIntended": true,
      "evidencePointer": "synthetic-evidence/nodes/T01-after"
    },
    {
      "pageId": "H01",
      "statusCode": 200,
      "initialHtml": true,
      "selfCanonical": true,
      "indexableAsIntended": true,
      "evidencePointer": "synthetic-evidence/nodes/H01-after"
    },
    {
      "pageId": "W01",
      "statusCode": 200,
      "initialHtml": true,
      "selfCanonical": true,
      "indexableAsIntended": true,
      "evidencePointer": "synthetic-evidence/nodes/W01-after"
    },
    {
      "pageId": "S01",
      "statusCode": 200,
      "initialHtml": true,
      "selfCanonical": true,
      "indexableAsIntended": true,
      "evidencePointer": "synthetic-evidence/nodes/S01-after"
    }
  ]
}
```

## Related reading

- [Fix resource selector](https://rankecho.io/resources/fix)
- [Wrong-page diagnosis](https://rankecho.io/resources/find/issues/wrong-page-cited)
- [Citation persistence](https://rankecho.io/resources/prove/citation-persistence)
- [Fixed-prompt retest](https://rankecho.io/resources/prove/fixed-prompt-retest)

## Product next step

Use the Fix Engine for a reviewable page or internal-link proposal. Your team owns approval, deployment, this manual acceptance record and rollback; product output does not certify a complete site graph. https://rankecho.io/product/fix-engine
