Internal linking strategy template: plan and audit your internal links
Short answer
An internal linking strategy decides which pages on your site link to which, and with what anchor text, so Google can find and understand your pages and visitors can reach your services. This free template walks you through page priorities, an anchor text register, a hub-and-spoke map, a link plan and a quarterly audit for orphan pages.
What internal linking is and why it needs a plan
Internal linking covers every link that takes a visitor from one page of your site to another: the main menu, breadcrumbs, links in the body copy, “related” blocks and the footer. External links point to other domains, and link building means earning links from other sites to yours. Internal links are fully under your control, which makes them one of the cheapest SEO levers you have.
Google’s documentation describes three ways internal links work. First, Google finds pages mainly through links from pages it has already crawled. Second, it uses links as a signal of what a page is about, and the anchor text tells both Google and the reader what to expect after the click. Third, every page you care about should have a link from at least one other page on your site. A page without one is an orphan page: Google can only find it through your sitemap or external links, and visitors usually never reach it.
An internal linking strategy fixes what happens by accident on most sites. Authors link to whatever they remember, the menu grows for years, and the most important service pages end up with fewer links than an old blog post. The template turns that into a list of decisions: which pages matter most, which pages link to them, with what anchor text, and when you check that nothing has broken.
| Link type | Where it sits | What it does | What to watch |
|---|---|---|---|
| Main menu | On every page | A path to the key sections from anywhere on the site | Only pages customers actually look for; an overloaded menu dilutes the choice |
| Breadcrumbs | Above the content | Shows where the page sits and links to its parent page | Google recommends a typical user path rather than a copy of the URL structure |
| In-content links | In paragraphs | The most context: the anchor text and its sentence describe the target page | Descriptive anchor text, no links chained next to each other |
| “Related” blocks | Below the content | Connects pages within one cluster | Pick by topic, not “latest posts” |
| Footer | On every page | Constant access to contact, legal pages and key services | It doesn’t replace in-content links; a long keyword list in the footer doesn’t help customers |
What is inside this internal linking template: 8 parts
The template takes you from a baseline, through decisions about priorities and specific links, to measurement. Each part answers one question and lists where the data comes from, so you know what to pull together before you start.
| Part | Question it answers | Where the data comes from |
|---|---|---|
| 1. Baseline | How many pages the site has, how many are orphans, how many links point to errors and redirects | A crawler, your XML sitemap, the Links report in Search Console, the free SEO audit |
| 2. Page priorities | Which pages should get the most links | Your offer, key events in GA4, Search Console |
| 3. Anchor text register | Which anchor text belongs to which page | The primary keyword of each page in part 2 |
| 4. Hub-and-spoke map | Which hub connects to which spoke pages | Keyword clusters from your SEO strategy or content calendar |
| 5. Link plan | From where, to where and with what anchor text you link | Parts 2, 3 and 4 |
| 6. Quarterly audit | What has broken since the last review | A crawler, Search Console |
| 7. Orphan pages | Link it, merge it, remove it or keep it out of the index | Parts 1 and 6, Search Console |
| 8. Results and next steps | Did the new links help the target pages, and what comes next quarter | The Links and Performance reports in Search Console |
You fill in parts 1 to 5 when you build the first plan and update them as new pages appear. Parts 6 to 8 are the ongoing rhythm: a review every quarter, and straight after any big change such as a new menu, a migration or a new blog section. If you already have an SEO strategy with keyword clusters, copy part 4 from it. New pieces from your content calendar go into part 5 on the day they are published.
Internal linking strategy: the hub-and-spoke model
The model that works for a company website, an online store and a blog alike is hub and spokes. The hub is the page that covers the topic most fully and sells most often: a service page, a store category or a topic guide. Spoke pages expand on its parts: costs, comparisons, how-to guides, case studies and customer questions.
The rules we apply for clients and on our own site:
- The hub links to every spoke, and every spoke links back to the hub.
- Every new piece links to its hub and to 2–4 related spokes in the same cluster, and the hub gets a link to the new piece on the day it goes live.
- Your most important business pages get the most internal links. If an old blog post has more links than a service page, the plan reverses that.
- Key pages sit no more than 3 clicks from the homepage. It’s the same threshold our SEO checklist uses in check B10.
A cluster is a group of keywords with the same intent, served by one page. That is why every hub in the map has its own primary keyword and no spoke targets the same one. If two pages compete for one query (keyword cannibalization), internal links won’t fix it. Merge the pages first, then plan the links.
| Page | Role | Links to | Gets links from | Anchor text for this page |
|---|---|---|---|---|
| /bathroom-renovation | Hub (service page) | Every page in the cluster and the contact page | Menu, homepage, every page in the cluster | “bathroom renovation in Warsaw” |
| /blog/bathroom-renovation-cost | Spoke: costs | Hub, tile guide, Mokotów case study | Hub, apartment renovation guide | “how much a bathroom renovation costs” |
| /blog/apartment-bathroom-renovation | Spoke: how-to guide | Hub, cost article | Hub, tile guide | “renovating a bathroom in an apartment block, step by step” |
| /blog/how-to-choose-bathroom-tiles | Spoke: how-to guide | Hub, apartment renovation guide | Hub, cost article | “how to choose bathroom tiles” |
| /projects/bathroom-mokotow | Spoke: case study | Hub | Hub, cost article | “bathroom renovation in Mokotów: case study” |
Page series built from one template
Businesses that build many pages from one template, such as city pages, industry pages, comparisons or document templates, need a hub that links to every one of them. Without it, series pages quickly become orphans: they are in the sitemap, but nobody reaches them from the menu or the content. The minimum is a hub that lists the series, grouped the way customers search, for example by region or category. Each series page links back to the hub and to its 2–3 nearest neighbours, such as nearby cities. Links won’t rescue pages that differ only by the city name, though: every page in a series needs its own data.
Anchor text: how to choose it
Anchor text is the clickable text of a link. Google says good anchor text is descriptive, reasonably concise and relevant to the page it sits on. It warns against generic text such as “click here” and against cramming every keyword related to the target page into the link. Keyword stuffing violates Google’s spam policies. The sentence around the link matters too: the words before and after it add context.
In the template you keep an anchor text register (part 3). For each important page, note a primary anchor, usually close to its primary keyword, and a few variants that fit naturally into different sentences. One rule is strict: the same anchor text never points to two different pages. If “pricing” leads to your service prices in one article and to product prices in another, neither readers nor search engines can tell which page answers that term.
| Anchor text | Verdict | Why |
|---|---|---|
| “click here”, “more”, “read more” | Bad | Generic: it doesn’t say where the link goes. Google lists “click here” as a bad example |
| “bathroom renovation in Warsaw” | Good (primary anchor) | Descriptive, concise and on topic for the target page |
| “see how we run a bathroom renovation” | Good (variant) | Reads naturally in a sentence and still says what the page is about |
| “bathroom renovation Warsaw cheap bathroom renovations prices” | Bad | Stuffed keywords; Google counts keyword stuffing as spam |
| “here you can read everything about how much a bathroom renovation in a flat or a house costs and how long it takes” | Bad | Too long; the link stops being readable |
| “bathroom renovation” pointing once to /bathroom-renovation and once to a blog post | Bad | One anchor, two targets: a conflicting signal |
For image links, the image’s alt attribute works as the anchor text. Google uses it that way, so don’t leave it empty. Also avoid chaining links next to each other: readers find them harder to tell apart, and each link loses the sentence that describes it.
How many links, where to place them and how to make sure Google can read them
How many links per page
There is no ideal number of links per page. Google says so directly, and adds that if you think there are too many, there probably are. In practice we follow the hub-and-spoke model: in the body of every article, a link to the hub and 2–4 links to related spokes. What matters more than the count is whether the link helps the reader take the next step.
Click depth and navigation
Every important page should be reachable within 3 clicks of the homepage. The menu and breadcrumbs provide a path to each section, and in-content links shorten the way to your service pages. Google recommends that breadcrumbs reflect a typical user path to the page rather than mirror the URL structure. You can mark them up with BreadcrumbList structured data.
Links Google can read
- An <a> element with an href attribute. Google can’t reliably extract URLs from <a> elements without href, or from links built with onclick or <span>. Links inserted with JavaScript are fine as long as they end up as a regular <a href> element.
- The canonical URL in the link. Google recommends linking to the canonical URL within your site rather than to a duplicate, such as a URL with a parameter. Our canonical tag guide covers this in detail.
- The final URL, not a redirect. When a URL changes, fix the link at the source, as in check A7 of the SEO checklist. Keep the redirect for external links and old bookmarks.
- No rel="nofollow" on links to important pages. Google describes this attribute in the context of outbound links. When you don’t want Google to fetch a URL on your own site, it points you to a disallow rule in robots.txt instead.
- Key links in the HTML your server sends. Google usually renders JavaScript, but some AI bots don’t run it, so keep menu and in-content links in the server-sent HTML.
An XML sitemap doesn’t replace links. Google says that if your pages are properly linked, it can usually discover most of your site, and that a sitemap helps most on large and new sites. On large sites it is harder to make sure every page is linked from at least one other page, and that is exactly where orphan pages tend to appear.
Quarterly internal linking audit: criteria
Internal linking breaks quietly: someone changes a URL, deletes a post, rebuilds the menu or adds a filter that creates hundreds of new URLs. That is why the template includes a quarterly internal linking audit with the same criteria every time, so you can compare the results.
You need three sources. A crawler such as Screaming Frog or Seobility walks your site like a search bot and shows click depth, links to errors and redirects, and sitemap URLs that no link points to. The Links report in Search Console shows which pages are linked most often within your site. It is a sample, and its tables are limited to 1,000 rows, so treat it as a cross-check rather than a complete list. For a quick check, our free SEO audit covers up to 25 pages and flags broken internal links, redirect chains and pages returning 4xx/5xx errors.
| Criterion | Pass rule | How to check |
|---|---|---|
| Orphan pages | Every important page has a link from at least one other page | Crawler: sitemap URLs that no link points to |
| Click depth | Important pages within 3 clicks of the homepage | Crawler: crawl depth report |
| Links to errors | Zero internal links to 4xx and 5xx pages | Crawler or the free SEO audit |
| Links through redirects | Links point to the final URL, with no 301 on the way | Crawler; the free audit flags redirect chains |
| Canonical URLs | Links point to canonical URLs, not duplicates | Crawler: compare the linked URL with the target’s canonical tag |
| Priority pages | Priority 1 pages are among the most linked pages | Links report in Search Console against part 2 of the template |
| Anchor text | Descriptive; one anchor points to one page | Anchor export from the crawler against the anchor text register |
| Link format | An <a href> element, no onclick or <span> links | Page source, or the rendered HTML in URL Inspection |
| Extremes | No important pages with a single incoming link, no pages overloaded with in-content links | Crawler: incoming and outgoing links per page |
| Internal nofollow | Links to important pages without rel="nofollow" | Crawler: filter internal links with nofollow |
Every check that fails goes into part 5 (link plan) or part 7 (orphan pages) with a URL, an owner and a due date. We describe a full technical audit, with internal linking as one of its areas, on our SEO audit page. The audit is included in every SEO plan, and as a standalone service it starts at €350 net.
Orphan pages: link them, merge them or remove them
To find orphan pages, compare two lists: the URLs in your XML sitemap (or a CMS export) and the URLs a crawler reached by following links. Anything that appears only in the sitemap has no link from any other page. The second clue is Search Console: pages with impressions that the crawler didn’t find are usually orphans too.
Not every orphan is worth saving. Decide based on what the page delivers today and what it could deliver once it is linked:
| Situation | Decision | What to do |
|---|---|---|
| A service page, category or article with impressions or keywords in positions 4–20 | Link it | Add a link from the hub and from 2–4 closely related pages; refresh old content while you are at it |
| Several weak pages on the same topic | Merge | Keep the best one, 301 the rest, fix links at the source and remove old URLs from the sitemap |
| A page with no traffic, no external links and no business value | Remove | Return 410 or 301 to the parent page; remove the URL from the sitemap |
| A page people need but search results don’t, such as a form thank-you page | Keep out of the index | Add noindex and remove it from the sitemap; link to it only where needed |
A rule from our playbook: we check for orphan pages every quarter, and every page kept out of the index is there by decision, not by accident. Record the decision in part 7 of the template with a date, so the next review doesn’t analyse the same URLs from scratch.
Common internal linking mistakes
- Random pages get the most links. The latest posts or an old guide collect links from across the blog, while the service page has a handful. On our own blog, the related-articles block once showed the two newest posts, so 19 of 20 articles linked to the same two, and our canonical tag guide had only 3 in-content links. Since 20 October 2026, every post has a hand-picked list of articles on the same topic.
- Generic anchor text such as “click here”, “more” or “here”.
- The same anchor pointing to different pages, or two pages competing for the same keyword.
- Links to redirects and errors after URL changes, especially after a site move. Our website migration checklist helps here.
- Links only in the menu and footer. They are needed, but they carry no sentence context. Service pages also need links from the body copy.
- Links Google can’t read, such as JavaScript buttons without an href attribute.
- New content with no incoming links. The article links to the hub, but neither the hub nor other cluster pages link back to it.
- A plan made once. Without a quarterly audit, links drift away from the site’s new structure.
If you would rather have a team that does this every day handle internal linking, content and technical SEO, see our SEO services. As part of ongoing work, we also improve internal linking architecture. For earning links from other sites, read our B2B link building guide.
Internal linking template: what you fill in (preview)
Below is the full content of the template. You can copy it into a spreadsheet or download the PDF with space to write.
Part 1. Baseline (date measured: …)
| Metric | Value today | Source |
|---|---|---|
| URLs in the XML sitemap | … | sitemap.xml |
| URLs found by following links (200, indexable) | … | Crawler |
| Orphan pages (sitemap only) | … | Crawler and sitemap |
| Internal links to 4xx/5xx pages | … | Crawler or the free SEO audit |
| Internal links through redirects | … | Crawler (the free audit flags redirect chains) |
| Important pages deeper than 3 clicks | … | Crawler |
| Priority 1 pages among the most linked pages | … of … | Links report in Search Console |
Part 2. Page priorities
| URL | Type (service, category, hub, article) | Cluster | Priority (1–3) | Incoming links today | Target | Click depth |
|---|---|---|---|---|---|---|
| … | … | … | … | … | … | … |
| … | … | … | … | … | … | … |
| … | … | … | … | … | … | … |
Priority 1: service pages, categories and content that bring in leads. Priority 2: pages that support sales. Priority 3: everything else.
Part 3. Anchor text register
| Target page | Primary anchor | Allowed variants | Don’t use (belongs to another page) |
|---|---|---|---|
| … | … | … | … |
| … | … | … | … |
Part 4. Hub-and-spoke map
| Cluster and hub | Spoke page | Hub → spoke | Spoke → hub | Links to 2–4 cluster pages |
|---|---|---|---|---|
| Cluster: … Hub: … | 1. … | ☐ | ☐ | ☐ |
| 2. … | ☐ | ☐ | ☐ | |
| 3. … | ☐ | ☐ | ☐ | |
| 4. … | ☐ | ☐ | ☐ |
Part 5. Link plan
| No. | Source page | Target page | Anchor text | Placement (body, menu, breadcrumbs, footer) | Live | Date |
|---|---|---|---|---|---|---|
| 1 | … | … | … | … | ☐ | … |
| 2 | … | … | … | … | ☐ | … |
| 3 | … | … | … | … | ☐ | … |
Part 6. Quarterly audit (quarter: …)
- ☐ Every important page has a link from at least one other page (no orphan pages)
- ☐ Important pages within 3 clicks of the homepage
- ☐ Zero internal links to 4xx and 5xx pages
- ☐ Links point to the final URL, with no redirects on the way
- ☐ Links point to canonical URLs
- ☐ Priority 1 pages among the most linked pages (Links report)
- ☐ Descriptive anchor text; one anchor = one target page
- ☐ Links are <a href> elements, present in the HTML
- ☐ No important pages with a single incoming link, no pages overloaded with links
- ☐ Links to important pages without rel="nofollow"
Part 7. Orphan pages and decisions
| URL | How we know (sitemap, Search Console, CMS) | Decision (link, merge with 301, remove with 410, noindex) | Link from / 301 to | Owner and due date |
|---|---|---|---|---|
| … | … | … | … | … |
| … | … | … | … | … |
Part 8. Results and next steps
| Target page | Date links went live | Incoming links before / after | Google clicks, 28 days before / after | Average position before / after |
|---|---|---|---|---|
| … | … | … / … | … / … | … / … |
| … | … | … / … | … / … | … / … |
| Review findings and tasks for next quarter | Owner | Due date |
|---|---|---|
| … | … | … |
| … | … | … |
Get the internal linking template (PDF)
We will email you the PDF with all 8 parts: baseline, page priorities, anchor text register, hub-and-spoke map, link plan, quarterly audit, orphan pages, and results and next steps. Print it or fill it in with any PDF editor.
Related guides and tools
- SEO checklist: 50 checks, including internal links (A7, B10, B11)
- Free SEO audit: broken internal links and redirect chains across 25 pages
- Content calendar template: the publishing schedule that feeds new pages into your link plan
- Canonical tag guide: which URL to link to when a page has duplicates
- B2B link building: how to earn links from other sites to your service pages
Frequently asked questions
Internal linking means the links between pages on your own site: the menu, breadcrumbs, in-content links and the footer. Link building means earning links from other domains to your site. Internal links are fully under your control and you can change them in minutes. External links take effort to earn, so it makes little sense to point them at pages that no internal link leads to.
There is no single right number. Google says plainly that there is no ideal number of links per page, and that if it feels like too many, it probably is. A practical rule: an article links to the hub of its topic and to 2–4 related spokes, while the service page gets the most incoming links from every page in its cluster. Descriptive anchor text and placement in a sentence matter more than the count.
It is a page that no other page on your site links to. Google can only find it through your sitemap or external links, and visitors usually never reach it. To find orphans, compare the URLs in your XML sitemap with the URLs a crawler reached by following links. Another clue is pages with impressions in Search Console that the crawler didn’t find.
Usually not. Menu and footer links give every page a path to your key pages, but they lack the sentence context that describes the target. Google points out that the words before and after a link matter too. That is why service pages and topic hubs should also get links from the body copy of articles, case studies and guides in the same cluster.
Every quarter, and after every major change: a migration, a menu rebuild, URL changes or a new site section. Use the same criteria each time so you can compare results: orphan pages, click depth, links to errors and redirects, canonical URLs and anchor text. You can run a quick check of up to 25 pages with the free SEO audit and a full review with a crawler.
Not necessarily, but it should make clear what the target page is about. Most often the primary anchor is close to the page’s primary keyword, and variants fit different sentences. Avoid cramming several keywords into one link: Google treats keyword stuffing as spam. Also stick to the rule that the same anchor text always points to the same page.
Sources
- Google Search Central: Link best practices for Google (accessed November 11, 2026)
- Google Search Central: SEO Starter Guide (accessed November 11, 2026)
- Google Search Central: How to specify a canonical URL with rel="canonical" and other methods (accessed November 11, 2026)
- Google Search Central: What is a sitemap (accessed November 11, 2026)
- Google Search Central: Breadcrumb (BreadcrumbList) structured data (accessed November 11, 2026)
- Google Search Central: Qualify your outbound links to Google (accessed November 11, 2026)
- Search Console Help: Links report (accessed November 11, 2026)
- Vercel: The rise of the AI crawler (December 2024) (accessed November 11, 2026)