An internal-link audit should help you decide what to fix, what to investigate, and what to leave alone. It should not produce the largest possible export of URLs and anchor text without a way to interpret the findings.
For a lean team, the practical approach is to define a bounded audit scope, reconcile crawl data with the pages you actually manage, test link paths and destinations, and record each finding with evidence, uncertainty, effort, and an owner. The result should be a small set of defensible actions—not a site-wide backlog that nobody can review.
This guide explains how to audit internal links across a large or growing website. You will learn how to identify orphan and underlinked pages, review broken links and redirects, evaluate anchor text and contextual usefulness, and prioritize fixes while keeping technical and editorial judgment in the process.
Start with the decision, scope, and audit inventory
Before collecting crawl data, decide what the audit needs to help you answer. A useful question might be:
Which internal-link issues in this section are sufficiently supported by evidence to fix or investigate during the next maintenance cycle?
That question is narrower than “What is wrong with our internal links?” It gives the audit a purpose, a stopping point, and a standard for deciding when a finding is actionable.
Choose a bounded audit scope
A website-wide crawl may be appropriate for a small site, but it can become difficult to interpret as a site grows. Define the first batch using one or more boundaries:
A site section, such as the blog, documentation, resource library, or product area
A template or page type
A language or regional version
A status or lifecycle group, such as published pages only
A recently changed section
A set of pages related to one searcher job or product area
A defined set of important source pages and their reachable destinations
Record the crawl date and the data source used. Internal-link structures change as pages are published, redirected, removed, or redesigned, so an audit is a snapshot rather than a permanent description of the site.
You also need a stopping condition. For example, stop when the selected section has been crawled, each finding has an evidence record, and every candidate has one of four outcomes: improve, investigate, consolidate, or postpone. A stopping condition prevents the team from continuing to collect data after the audit has stopped improving the decision.
Do not introduce universal thresholds without evidence from your own site and context. A page with one inbound link is not automatically defective, and a page several clicks from a starting URL is not automatically a problem. The audit identifies signals for review; it does not turn them into rules by itself.
Define the inventory before interpreting the crawl
Create a working inventory of URLs and the fields you need to make decisions. The exact fields depend on the data available, but a useful starting structure includes:
| Field | Why it matters | Evidence status |
|---|---|---|
| URL | Identifies the page or destination under review | Observation |
| Page type or section | Provides context for comparison | Observation or Unknown |
| Crawl status | Shows the response outcome observed by the crawl | Observation |
| Indexability or exclusion state | Helps separate managed pages from excluded destinations | Observation or Unknown |
| Canonical relationship | Shows whether the page points to another preferred URL, when available | Observation or Unknown |
| Inbound-link count | Indicates how many discovered internal links point to the URL | Observation |
| Outbound-link count | Indicates whether the page links to other internal destinations | Observation |
| Depth or path information | Helps identify reachability from the crawl’s starting points | Observation or Unknown |
| Issue | Describes the specific condition requiring review | Interpretation |
| Uncertainty | Records what the crawl cannot establish | Unknown |
| Possible action | Suggests improve, investigate, consolidate, or postpone | Possible action |
| Owner and review status | Makes implementation and approval visible | Operational record |
The labels matter. An Observation is something the crawl or inventory directly shows. An Assumption is an interpretation that may be reasonable but still needs confirmation. An Unknown is information the current data does not establish. Evidence identifies the supporting record. A Possible action is not yet an approved recommendation.
This vocabulary prevents a common failure mode: turning “zero discovered inbound links” into “orphan page,” then turning “orphan page” into “create more content.” Each step requires a separate check.
Keep the audit question separate from the page decision
An internal-link finding does not automatically tell you what to do with the page. A page with weak coverage might need a relevant link from an existing article, a clearer relationship to a hub, consolidation with another URL, technical investigation, or no change at all.
Before recommending a change, ask:
What is this page for?
What searcher job does it support?
Is the page still accurate and useful?
Is another URL serving the same intent or audience?
Does a plausible source page exist where a link would help the reader?
Is the destination appropriate for the source page’s context?
Can the team implement and review the change safely?
A site-first review is useful here because it keeps the audit connected to the URLs that already exist. Review existing website content before generating new SEO ideas for a related approach to checking coverage, overlap, and possible page actions. Luumera considers product context and existing website content when identifying opportunities, but the audit’s technical interpretation and final page decisions still require human review.
Reconcile crawl data with the site’s page inventory
A crawler can show what it discovered from its starting points and configuration. It may not represent every page the team considers active, important, or managed. Reconciliation is the step that distinguishes a crawl report from an audit of the site’s actual page inventory.
Compare source and destination sets
Start with at least two views:
Source URLs: pages that contain discovered internal links.
Destination URLs: URLs that those links point toward.
Compare both sets with the known site inventory. The inventory might come from the CMS, a publishing register, a manually maintained list, or another internal source. The point is not to assume that one source is complete. The point is to identify disagreement for investigation.
Useful mismatch categories include:
A managed page that does not appear in the crawl
A crawled URL that is missing from the managed inventory
A destination that differs only by normalization, such as URL formatting
A page that appears under multiple URL forms
A URL that redirects to another destination
An excluded or non-indexable page that is still linked internally
A page whose status in the inventory is outdated
Treat these as reconciliation findings, not immediate link defects. A missing page from the crawl may reflect crawl configuration, access restrictions, an unlinked state, or an incomplete inventory. A URL missing from the CMS inventory may be an old, generated, redirected, or externally managed address.
Track zero values and missing values separately
A zero-link count means the available crawl found no inbound links. A missing link count means the data does not provide a usable value. These are different conditions and should not be merged in a spreadsheet or report.
The same distinction applies to outbound links, depth, canonical relationships, and status information. A page with no discovered outbound links may be a genuine endpoint, a page template without relevant navigation, or a page the crawl did not fully process. If the field is missing, record Unknown rather than filling it with zero.
This discipline becomes more important when combining exports. One source may contain page inventory data, another may contain crawl outcomes, and another may contain editorial context. Reconcile identifiers before calculating counts. Otherwise, URL variations can create false orphan candidates or inflate the number of distinct destinations.
Use a repeatable audit record
For each finding, retain enough information for another person to reproduce the decision. A compact record might look like this:
| Source URL | Destination | Issue | Evidence | Uncertainty | Possible action | Effort | Reviewer |
|---|---|---|---|---|---|---|---|
/guides/topic-a | /products/topic-b | Redirecting destination | Internal link resolves through a redirect in the crawl | Final destination and relationship need confirmation | Improve | Low or Unknown | Content owner |
/resources/topic-c | /guides/topic-d | No discovered inbound links | Destination appears in managed inventory but has no discovered internal inbound links | Crawl coverage and excluded sources are not yet confirmed | Investigate | Medium | SEO reviewer |
/blog/topic-e | /guides/topic-f | Generic anchor | Anchor text does not describe the destination clearly | Editorial usefulness depends on surrounding copy | Improve | Low | Editor |
These rows are hypothetical examples, not measured findings. Their purpose is to show how evidence and uncertainty should travel with the proposed action.
For a large site, segment the record by section, template, or page group. A repeatable format is more valuable than an oversized report if it allows the team to review one batch, implement approved changes, and re-run the same checks later.
Where a supporting workflow can help
Once the inventory is defined, a supporting workflow can help connect existing URLs with searcher jobs and possible actions. Luumera researches a site, finds SEO opportunities worth pursuing, and turns organic growth into a clear workflow. In this audit, that positioning is most useful for organizing the review around existing coverage—not for replacing the crawl, technical checks, or human approval.
Find orphan pages, underlinked pages, and structural gaps
Orphan and underlinked pages are related but not identical findings. A suspected orphan has no discovered internal inbound links in the available crawl. An underlinked page has some internal coverage but may be difficult to find, weakly connected to related content, or absent from a useful navigation path.
Neither condition proves that the page needs a change.
Identify orphan candidates carefully
A practical orphan candidate is a page in the known inventory with no discovered internal inbound links. Record the condition precisely:
Observation: The crawl found zero internal inbound links to the URL.
Assumption: The page may be difficult for users or crawlers to discover through internal paths.
Unknown: Whether excluded sources, un-crawled areas, navigation systems, or data mismatches contain additional links.
Possible action: Investigate the page’s purpose and coverage before adding a link, consolidating it, or postponing the change.
Check the following before treating the candidate as a defect:
Was the page included in the intended crawl scope?
Were relevant navigation, footer, sitemap, or template links represented in the crawl data?
Is the page intentionally excluded, private, temporary, or part of a special workflow?
Is the page still accurate and intended to remain published?
Does another URL cover the same searcher job?
Is there a relevant source page where a link would help the reader?
If the page is obsolete or substantially overlaps another URL, adding more links may preserve a problem rather than solve it. If it is valuable and distinct, the next step may be a contextual link from an existing page, a hub relationship, or an appropriate navigation change.
Review underlinked and deep pages as signals
Inbound-link counts can help identify pages that deserve a closer look, especially when grouped by comparable page type. Compare like with like rather than applying one threshold to every URL. A support page, a campaign page, a cornerstone guide, and a legal page may have very different legitimate linking patterns.
Depth or path information can provide another signal. A page that is reachable only through a long or fragile path may deserve review, but the number alone does not establish poor usability or a technical defect. Confirm how the crawl defines depth and which starting URLs it used before drawing a conclusion.
For each candidate, ask whether the page has a meaningful role in a user journey:
Does it answer a question raised by the source page?
Does it explain a next step, concept, feature, or process?
Does it connect two related pages without forcing an unrelated recommendation?
Does it belong in a broader hub or collection?
Would adding a link make the source page clearer, or merely increase link count?
The goal is not to maximize the number of internal links. It is to make important relationships easier to understand and reach.
Use an action matrix instead of a defect list
An action matrix forces the team to consider evidence and effort together:
| Finding | Evidence needed | Uncertainty to resolve | Possible action | Effort | Reviewer |
|---|---|---|---|---|---|
| No discovered inbound links | Crawl record and inventory match | Scope, exclusions, page purpose | Investigate, improve, consolidate, or postpone | Varies | SEO and content owner |
| Few inbound links compared with similar pages | Comparable page group and source review | Whether low coverage is intentional | Improve or postpone | Low to Medium | Content owner |
| Difficult path from crawl starting points | Depth and path data | Crawl configuration and user journey | Investigate | Medium | SEO or technical owner |
| Related pages do not link to one another | Topic and searcher-job review | Whether the relationship is genuinely useful | Improve or consolidate | Medium | Editor |
The table is a decision aid, not a scoring system. Do not convert every row into a required fix. A page can have low coverage and still be correctly isolated. A page can have several links and still lack a useful relationship with its sources.
Audit broken links, redirects, destinations, and paths
Link status is one of the more direct parts of an internal-link audit, but even here the recommended action depends on context. Group links by the outcome observed in the crawl and retain the complete path from source to destination.
Group links by destination outcome
A useful set of categories may include:
Links that resolve to a valid final destination
Links that return an error outcome
Links that point to a redirecting URL
Links that pass through more than one redirect where the crawl establishes that path
Links whose final destination differs from the intended page
Links that cannot be evaluated because the crawl data is incomplete
Use the terminology supported by your data. Do not infer a redirect chain, canonical relationship, or final destination when the crawl only records the first URL. Technical interpretations should be tied to the actual response and path information available.
A redirecting internal link is not automatically harmful. The destination may be intentional, temporary, or part of a recent migration. However, repeated links to obsolete destinations can create unnecessary maintenance and make future changes harder. The first question is not “How many redirects are on the site?” It is “Which source links can be safely updated to the appropriate final destination?”
Capture the complete link path
For each problem, record:
Source URL
Source page type or section
Anchor text
Linked destination as written in the source
Observed response or outcome
Final destination, if established
Redirect or error path, if established
Proposed replacement or removal
Reason for the proposed change
Reviewer and approval status
This record separates a technical observation from an editorial decision. A source link may be technically valid but still point to a page that no longer matches the surrounding text. Conversely, a redirect may be intentional and require no change.
Prioritize repeated and obsolete paths carefully
Links repeated across a template can affect many pages, so they may deserve earlier review than a one-off link. But “repeated” is evidence of reach, not proof of priority. Confirm the template’s purpose, the destination’s accuracy, and the likely effect of changing the relationship.
A sensible review order often considers:
Whether the destination is unavailable or clearly obsolete
Whether the same issue is repeated across a managed template
Whether a safe, relevant replacement is known
Whether the change affects an important user path
Whether the implementation can be tested and reversed if needed
These are decision criteria, not universal rankings. The right order depends on the audit scope, the confidence in the data, and the team’s ability to validate changes.
Require human validation before changing ambiguous links
Do not automatically replace every redirect or remove every link with an error outcome. A human reviewer should confirm:
The proposed destination is accurate
The destination serves the source page’s likely audience and intent
Product or technical claims on the destination remain correct
The source wording still makes sense after the change
The implementation owner can make and test the update
The relationship is not being changed merely to improve a metric
This review is particularly important when a link connects product pages, documentation, regulated information, regional content, or pages with different audiences.
Evaluate anchor text and contextual usefulness
Anchor text can help readers understand where a link leads, but an audit should not turn every phrase into an optimization target. The useful question is whether the link is clear and relevant in context.
Group anchor text by source and destination
Review anchor text together with the surrounding sentence and destination page. Grouping only by phrase can hide important differences: the same words may be appropriate in one source and vague in another.
Flag candidates for review when the anchor is:
Empty or unavailable in the crawl record
Generic enough that the destination is unclear
Duplicated across unrelated destinations
Misleading relative to the destination page
Grammatically awkward after a page or template change
Disconnected from the source page’s topic or likely searcher job
A generic phrase is not automatically a defect. “Read the documentation” may be clear when the surrounding sentence identifies the product and topic. A descriptive phrase is not automatically useful if it promises something the destination does not provide.
Separate observable facts from editorial judgments
Use the same evidence labels for anchor review:
Observation: The source uses “learn more” as the anchor text.
Observation: The destination title concerns a specific implementation topic.
Assumption: The anchor may not give readers enough information before they click.
Unknown: Whether the surrounding page section provides the missing context.
Possible action: Review the sentence and revise the anchor only if clearer wording improves the reader’s understanding.
This approach avoids treating exact-match wording, keyword variation, or a preferred phrase as an automatic requirement. Anchor text should serve the relationship between source and destination, not become a separate count to maximize.
Check the searcher job and page relationship
Ask what the reader is trying to do at the point of the link. A useful internal link may:
Explain an unfamiliar concept
Provide supporting evidence
Move the reader from evaluation to implementation
Connect a broad guide to a more specific procedure
Offer a relevant next step after the current question is answered
Clarify how two related pages differ
The destination should make sense as a response to that job. If the source is about diagnosing a problem and the destination is a general company page, the relationship may be weak even if both pages use similar language. If the source introduces a concept and the destination explains how to apply it, the link may be useful even when the anchor does not contain a target phrase.
Use hypothetical records, not invented findings
The following example is illustrative:
| Source context | Anchor | Destination | Observation | Possible action |
|---|---|---|---|---|
| A guide explaining an audit method | “click here” | A detailed implementation guide | The anchor does not describe the destination | Review the sentence and use a clearer label if the destination is relevant |
| A product comparison paragraph | “internal-link workflow” | A guide about finding internal-link opportunities | The phrase describes the destination’s topic | Keep, subject to editorial review |
| A navigation module | “resources” | A mixed resource index | The label may be clear within the module but not in isolation | Review the module context before changing |
These are hypothetical records, not measurements from a real site. They demonstrate why anchor text must be judged with source context, destination purpose, and reader intent together.
For a more focused follow-up after the audit, see this guide on finding internal-linking opportunities on your website. It extends the audit into contextual validation, effort-aware prioritization, and approval checks rather than treating link counts as the final answer.
Prioritize fixes and close the audit with a bounded next action
At the end of the audit, every finding does not need to become a ticket. The team needs a reviewable set of actions with enough evidence to justify the next step.
Use clear action labels
Use separate labels for different kinds of decisions:
Improve: The page and relationship are valid, and a specific link, destination, or anchor change is sufficiently supported.
Investigate: The signal is meaningful, but crawl coverage, page purpose, destination accuracy, or another fact remains unresolved.
Consolidate: Two or more URLs may overlap or represent an outdated relationship, and the team should evaluate which page should remain primary.
Postpone: The issue is understood but not important enough, feasible enough, or certain enough for the current batch.
You may also record “no change” when review confirms that a low-link page, redirect, or anchor is intentional. Do not force a change simply because the audit found something unusual.
Compare candidates using evidence, impact, effort, and confidence
A practical prioritization record can include:
| Criterion | Question |
|---|---|
| Reach or recurrence | Does the issue affect one source, a group of pages, or a repeated template relationship? |
| Page importance | Does the page have a clear role for the audience or product context? |
| Evidence quality | Is the finding directly observed, or does it depend on incomplete data? |
| Relationship quality | Is there a clear reason the source should point to the destination? |
| Implementation effort | Can the team safely make and test the change within the current cycle? |
| Risk | Could changing the link remove useful context or send readers to the wrong page? |
| Confidence | How certain is the team that the proposed action addresses the actual problem? |
Do not use these criteria to create false precision. A numerical score can make uncertain evidence look more authoritative than it is. A short written rationale is often more useful: “Repeated template link to an obsolete destination; final replacement confirmed; low implementation effort; approve after owner review.”
Keep approval checks close to implementation
Before publishing or editing links, confirm:
The destination URL is correct and available
The source and destination serve compatible audiences or searcher jobs
The page content is accurate and current
The change does not create overlap that should instead be consolidated
The anchor remains natural in the sentence or component
The change can be reviewed after implementation
The owner understands whether the action is technical, editorial, or both
Luumera is designed for lean teams that need to keep SEO moving without making it another job. In this context, use the workflow to organize a shortlist of improve, investigate, consolidate, or postpone actions. The point of a supporting workflow is to reduce coordination overhead, not to remove editorial, strategic, or subject-matter judgment.
Define the smallest defensible next batch
A useful closing decision might be:
Fix a small group of confirmed obsolete destinations
Investigate a defined set of orphan candidates whose crawl coverage is uncertain
Review one template with repeated redirecting links
Validate a short list of contextual links between clearly related existing pages
Consolidate a small group of overlapping URLs before adding more links
Postpone low-confidence anchor changes until the source content is revised
Choose the batch that has clear evidence, a named owner, and a way to confirm completion. If the team cannot explain why a link should change, the item belongs in investigate or postpone, not in an automatic implementation queue.
After the batch is complete, record what changed and what the crawl still cannot establish. Re-audit after a meaningful site change, such as a migration, template revision, major content release, or URL restructuring. A maintenance trigger is usually more useful than an arbitrary promise to review every page at a fixed interval.
The practical rule for an internal-link audit
An internal-link audit is successful when it turns crawl observations into a small number of well-supported decisions. It does not need to prove that every page has an ideal number of links, that every anchor uses preferred wording, or that every unusual path is harmful.
Use this sequence:
Define the section, page group, crawl date, and stopping condition.
Build the managed URL inventory before interpreting the crawl.
Reconcile source URLs, destinations, status outcomes, exclusions, and missing data.
Treat orphan, underlinked, depth, redirect, broken-link, and anchor signals as observations to validate.
Check page purpose, searcher job, overlap, product fit, and destination accuracy before recommending a change.
Classify actions as improve, investigate, consolidate, or postpone.
Approve and implement the smallest defensible batch.
Record the result and define the trigger for the next re-audit.
The next step is not necessarily a complete site-wide cleanup. Start with one bounded section or one repeated template relationship, preserve the uncertainty in the record, and fix only what the evidence and human review can support.
