Internal Linking Automation
Adding internal links to a thousand published pages is a far larger job than generating them with the pages. Ivan Sp writes internal linking logic into the page template, so generated pages arrive already connected. Adding links to a thousand published pages afterwards is a far larger job than generating them correctly the first time.
Why Links Belong in the Template
A generated page with no internal links pointing to it is an orphan the moment it publishes. Crawlers reach orphaned pages slowly or not at all, and internal links are the main signal telling a search engine which pages matter.
Linking logic therefore sits in the template alongside headings and schema. Each generated page links upward to its category, sideways to genuinely related pages, and receives links from the pages above it.
The Rules the Logic Enforces
Five rules govern generated linking:
- Every page reaches within three clicks of the homepage
- No page publishes without at least one internal link pointing to it
- Anchor text describes the destination in four to eight words rather than a bare keyword
- The same anchor text does not repeat past a set cap across the site
- Links do not sit in the first paragraph or on the first words of a page
The anchor cap matters most at scale. A template repeating one exact-match phrase across 1,000 pages produces exactly the over-optimization pattern that triggers algorithmic suppression.
Pointing Equity Where It Helps
Links get directed deliberately rather than evenly. Established pages with existing traffic and authority link to new or underperforming pages, which concentrates the site’s existing strength where it changes an outcome.
Even distribution wastes that opportunity, because authority pools on pages already performing well and never reaches pages that need it.
Respecting Semantic Hierarchy
Generated links follow the site’s structure rather than cutting across it. A deep page linking straight to another deep page, with no parent having introduced that entity, flattens the hierarchy a silo structure exists to create.
Links therefore travel through categories and hub pages. Category pages introduce their children, and children link back upward, which keeps the structure legible to both crawlers and readers.
Discovery Compared to Generation
Two separate services touch internal links, and the difference is worth stating. Internal linking automation writes links into pages as they get generated. A discovery tool analyses an existing site to find missing links and orphans that are already published.
Most engagements need both, in sequence. Existing pages get analysed through the internal link discovery agent, and new pages arrive already linked.
What the Linking Logic Enforces
- Where the logic lives
- Inside the page template, so links generate with the page.
- Link source
- Genuine relationships in the data rather than a fixed list repeated everywhere.
- Anchor text
- Generated from the destination’s own fields, so anchors describe what they point at.
- Anchor variety
- Varied across the set, since identical anchors describe a page once.
- Hierarchy rule
- A parent introduces a topic before deep pages link across to each other.
- Link volume per page
- Bounded, since an unbounded rule produces pages that are mostly links.
- Equity direction
- Weighted toward the pages that carry commercial value.
- What changes when data changes
- Links regenerate, so the graph stays correct as rows are added.
Where the Standard Internal Linking Advice Breaks Down
How would a crawler find page nine hundred of your generated set?
- The usual advice
- Publish the pages first, then add internal links once you can see how the set turned out.
- What holds up in practice
- Retrofitting links across a generated set costs many times what generating them costs. The links are also the mechanism by which new pages get discovered, so a set published without them starts with a crawl problem.
Consider a build publishing 1,200 generated pages, with internal linking planned as a follow-up phase. The pages are good and the plan is reasonable.
Discovery stalls immediately, because nothing links to most of them. The follow-up phase is now a manual project across 1,200 pages rather than one template rule.
Ivan Sp writes the linking logic into the template before the first page generates. Every page then arrives already connected.
Retrofitting links is the most expensive avoidable phase in a programmatic project. The same outcome costs a template rule when it is built in.
Pages nothing links to are pages Google may never fetch. The content was built and the discovery path was left for later.
Four Things Commonly Assumed About Generated Linking
Which of these describes your generated page set?
I meet these four assumptions whenever linking is treated as a later phase.
| Commonly assumed | What actually holds |
|---|---|
| A sitemap is enough for discovery. | A sitemap is a discovery aid rather than an instruction. Internal links are what signal that a page matters. |
| Links can be added after publishing. | Retrofitting across a generated set is a manual project. Generating them with the pages is one template rule. |
| The same links on every page is fine. | Identical links repeated site-wide describe a destination once. Links generated from real relationships describe it many ways. |
| More links per page is better. | Unbounded rules produce pages that are mostly links. Bounded, relevant linking distributes authority more effectively. |
| Any deep page can link to any other. | A parent introducing a topic before deep pages link across preserves the hierarchy a site structure exists to build. |
The linking rule is written once and applies to every page you will ever generate. Leaving it out means writing it by hand a thousand times later.
A Worked Example: Links Built In Against Retrofitted
Consider 1,200 generated pages, handled two ways. The comparison below is illustrative, written to show what timing changes. No client engagement is described here.
| Measure | Links added later | Links in the template |
|---|---|---|
| Effort to implement | Manual across 1,200 pages | One template rule |
| Pages with any inbound internal link at launch | Close to none | All of them |
| Anchor text variety | Whatever was written by hand | Generated from destination fields |
| Behaviour when new rows are added | Manual work again | Links generate automatically |
| Discovery speed after launch | Slow | Normal |
| Orphan pages after 90 days | Many | None |
I write the rule before the first page generates. The fourth row is why the difference compounds rather than being a one-off.
Publishing without internal links is opening a library and leaving the catalogue for later. Every book is on a shelf and nobody can find shelf nine hundred.
The anchor variety row is the quiet benefit. Generated anchors drawn from destination fields describe a page in as many ways as there are linking pages.
How the Linking Logic Gets Built
I define the relationships before writing any rule, since the data decides what can link to what.
- Map which fields in the data source express a genuine relationship between rows.
- Define which relationships are worth a link and which are merely coincidental.
- Write the anchor text rule so anchors draw on the destination’s own fields.
- Set an upper bound on links per page, so a page never becomes mostly links.
- Weight the logic so commercially valuable destinations receive more links.
- Enforce the hierarchy rule, so parents introduce topics before deep pages link across.
- Confirm every generated page receives at least one inbound link from within the set.
- Generate a sample and export the resulting link graph before publishing anything.
- Check the sample graph for orphans, for loops, and for pages exceeding the link bound.
- Re-export the graph after each batch, since new rows change the relationship map.
How This Engagement Is Scoped
I scope linking logic as part of the template build rather than as a separate phase.
- What arrives
- A relationship map, the linking rule, an anchor text rule, and a checked sample link graph.
- Typical duration
- One to two weeks inside a wider programmatic build.
- What the client supplies
- The data source and template access.
- Included
- Relationship mapping, rule writing, anchor generation, bounds, and sample graph review.
- Not included
- Retrofitting links onto pages generated before the rule existed.
- What changes the estimate
- Several page types, or a data source with few expressed relationships.
- How it is quoted
- As a phase inside a programmatic build, quoted with the template.
Tools and Primary Sources
The references below cover link behaviour and discovery. Each opens in a new tab.
- Google crawlable links guidance sets out what makes a link followable and why anchor text carries meaning.
- Google site structure guidance covers navigation, hierarchy, and how a crawler discovers pages.
- Google sitemaps documentation explains what a sitemap does and does not do for discovery.
- Screaming Frog SEO Spider exports the generated link graph, which is how a sample gets checked.
Check Discovery on Your Own Generated Set
I suggest a check that exposes a discovery problem in about ten minutes.
- Pick a generated page from deep in your set, not one of the first few.
- Search Google for its exact URL to confirm whether it is indexed.
- Crawl your own site and check how many internal links point at that URL.
- Repeat on two more pages from different parts of the set.
A page with no inbound internal links is relying entirely on a sitemap for discovery. Most generated sets published without a linking rule have hundreds of them.
Common Questions
How many internal links should a generated page carry?
Enough to connect it to its category and to genuinely related pages, usually between three and eight. Templates producing 40 identical footer links add nothing and dilute each link.
Do automated internal links look unnatural to Google?
Links generated from real topical relationships read the same as hand-placed ones. Problems come from repeated identical anchors and from links between unrelated pages, not from automation itself.
What happens to links when a page gets deleted?
The template regenerates affected links from current data, so removing a page removes references to it. Hard-coded links are where broken internal links accumulate.
Is an XML sitemap enough to get generated pages indexed?
A sitemap helps discovery and does not signal importance. Internal links are what tell a crawler a page is part of the site and worth returning to.
Discuss This Work
The first call is a free 30-minute consultation with no pitch attached. You receive an honest assessment of where the site stands and what can realistically be built.
