In a webshop, internal links decide which category pages collect authority and which products get crawled at all. The structure that works is not complicated: a shallow hierarchy where every product is reachable in three clicks or fewer, breadcrumbs on every page, buying guides and blog posts that link down into categories, related blocks that crawlers can see, filters that do not create crawlable duplicates, pagination that keeps deep products reachable, and a routine that finds orphan pages. This guide goes through each of those, with the mistakes we see most often and the steps to fix them.
Why internal linking matters more in a shop than on a blog
A blog with two hundred posts can get away with a loose structure. A shop with five thousand products and thirty thousand URLs cannot. Three things change at that scale.
Crawl budget becomes real. Googlebot crawls a limited number of URLs per day on your site, and every filter combination, sort order and paginated page it visits is a product it did not visit. Internal links are how you tell it what matters.
Category pages are the ranking asset. The terms people type ("women's running shoes", "cordless drill") map to categories, not products. Categories rank when they receive links from the navigation, from breadcrumbs, from guides and from sibling categories, with descriptive anchor text.
Products depend on paths. A product with one inbound link from page seven of a category is, in practice, invisible. Related-product blocks, breadcrumbs and guides give it more paths.
The link types in a webshop
| Link type | Purpose | Common mistake |
|---|---|---|
| Main navigation | Reach the top categories from every page | A mega menu with four hundred links that dilutes everything |
| Breadcrumbs | Show the hierarchy and pass anchor text upward | Missing on product pages, or a path that changes depending on how the visitor arrived |
| Category to subcategory | Pass authority down the tree | Subcategories only reachable through filters |
| Category text links | Contextual links to child and sibling categories | No text on the category page at all |
| Product to category | Link back up | Only the breadcrumb, nothing in the content |
| Related products | Crawl paths between products | Rendered client-side or fully personalised, so crawlers see nothing |
| Guides and blog to categories | Send authority from content to commercial pages | Blog posts that only link to other blog posts |
| Footer | Utility and trust links | A dumping ground for keyword-rich links |
Step 1: Fix the hierarchy and click depth
Crawl your shop and look at click depth per URL. Every product you want to sell should sit at depth three or four at most: home, category, subcategory, product. Products deeper than that are usually there because a category is too large and has no subcategories, or because they are only reachable through pagination.
Decide one primary path per product. A product can appear in several categories, but it should have one canonical URL and one breadcrumb path. Shops that generate a different URL per category path multiply their own duplicates.
Step 2: Breadcrumbs with structured data
Every category, subcategory and product page gets a breadcrumb that shows the full path from the home page, uses the category names as anchor text, and is marked up with BreadcrumbList schema. Breadcrumbs are the most consistent internal links in a shop, and they are the ones that carry the cleanest anchor text for categories. Keep them server-rendered; a breadcrumb that appears after JavaScript runs is a breadcrumb crawlers may miss.
Step 3: Give category pages text with links
A category page that consists of a title and a product grid has nothing to rank with. Add an introduction above the grid that explains what the category covers and for whom, and a longer section below the grid that links to child categories, sibling categories and the buying guide, with descriptive anchors ("trail running shoes", "how to choose a running shoe"). This is also where you answer the questions AI assistants get asked about the category, which is why the text should be real advice rather than keyword filler.
Step 4: Connect guides and categories
Buying guides, comparisons and how-to posts are where a shop earns authority and AI citations. That authority only reaches the commercial pages if the links exist. Each guide should link to the two to four categories it supports and to a handful of representative products; each category should link back to its guide. When a guide is written with the categories in mind from the start, this is natural. When it is bolted on afterwards, it is usually forgotten, so put it in the brief for every piece of content.
Step 5: Tame faceted navigation
Filters are the largest source of wasted crawl budget in a shop. Sort out the facets in three groups:
- Facets that deserve a landing page. A filter with real search demand (a brand, a colour, a material) becomes a category-like page with a clean URL, its own title, text and links, and it is linked from the parent category.
- Facets that stay out of the index. Everything else gets a canonical to the parent category or a noindex, and is excluded in robots rules where possible.
- Links to those facets. Do not link to parameter URLs from crawlable HTML if you do not want them crawled. Use forms, buttons or JavaScript-driven filtering for the non-indexable set, and real links only for the landing pages.
Step 6: Pagination that keeps products reachable
Google no longer uses rel="next" and rel="prev" as an indexing signal, so pagination has to stand on its own. Keep paginated pages indexable with a self-referencing canonical (do not canonicalise page 2 to page 1), link to the first few pages and the last page from every paginated page, and for small categories consider a "view all" page as the canonical version. Infinite scroll without real paginated links is the fastest way to bury half your catalogue.
Step 7: Related blocks that crawlers can see
"Related products" and "customers also bought" blocks are crawl paths, but only if they are in the initial HTML and not purely personalised. Base them on category and attributes, render them on the server, and keep them to four to eight links so they mean something. Add "related categories" on category pages for the same reason.
Step 8: Find orphans and weak pages on a schedule
Products get added, categories get merged, campaigns end. Every month, crawl the site and compare the crawled URL list with your product database or sitemap. Products that exist but received zero or one inbound link are orphans or nearly so; give them a place in a category, a guide or a related block. Do the same for seasonal categories that were unlinked after the season and left indexed. If you want a quick reading before you set that routine up, the free Internal Link Checker lists orphan pages, weak links and pages buried too deep.
Anchor text: descriptive, natural, not stuffed
Use the name of the target page as the anchor: "cordless drills", "how to choose a drill". Vary phrasing where it reads naturally, avoid "click here" and "read more", and do not repeat an exact-match phrase in twenty links on one page. Anchor text tells both Google and AI assistants what the target page is about; it should read like a description, not a keyword list.
Conclusion
Internal linking in a webshop is structure work: a shallow hierarchy, breadcrumbs everywhere, categories with real text and links, guides wired into categories, facets and pagination under control, related blocks in the HTML, and a monthly orphan check. Done once and kept up, it lifts categories, gets products crawled and gives the guides you publish a commercial purpose. If you want that structure designed and maintained as part of the content that gets published, read how Traze approaches e-commerce SEO.