Internal Linking for Online Stores
Stores need collection–product links, breadcrumbs and a path to orphan SKUs. Related-product widgets are merchandising; SEO links need crawlable HTML.
Internal linking on a store is how you tell crawlers and shoppers which collection a product belongs to and what to buy next. Magazines think in related posts. Catalogs think in hubs (collections) and leaves (products), plus a few editorial guides.
If the graph is wrong, category SEO and product SEO fight each other. The e-commerce SEO guide is the wider process. This article is the link layer.
Use consistent handles when you create collections—the URL slug generator is for naming, not for stuffing.
Collection ↔ product
Downward: A collection page must list products as HTML links (<a href="/products/...">), not only as JavaScript cards. Pagination or “load more” must expose a crawlable next URL (category page SEO).
Upward: Each PDP should link to its primary collection in the breadcrumb and in a text or nav module. If a product sits in eight collections for merchandising, pick one canonical parent for the crumb.
Sideways: Sibling collections (“trail” vs “road”) help users and spread crawl. Do not create twenty overlapping automated collections that all link to the same 400 SKUs.
Related products vs SEO links
| Mechanism | Job | SEO-useful when |
|---|---|---|
| Collection grid | Hub → leaves | Links in HTML, in-stock, matching the H1 |
| Breadcrumb | Hierarchy | One path, matches live IA |
| Related / complete-the-set | Merchandising | Crawlable anchors, not only “customers also bought” in an iframe |
| Footer / mega-menu | Navigation | Real URLs, not images-only menus |
| Sitemap XML | Hint | Complements links; does not replace them |
Recommendation engines are fine for conversion. For crawl, view-source a PDP: if related SKUs are not in the HTML, assume Googlebot may not treat them as your internal graph.
Manually curated “pairs well with” for high-margin SKUs is often better than a generic app on every template.
Orphan SKUs
An orphan is a product URL with no internal inbound links (or only links from noindexed pages).
They appear when:
- You create products and never add them to a collection.
- You remove a collection and leave products hanging.
- The only path is site search or a paid landing URL.
Find them by comparing the product catalog to links in collections (export, or a crawler). Put orphans in the right hub or noindex them if they should not rank.
Sitemaps still help discovery; technical SEO covers that. Links pass context (“this is a trail shoe in the trail collection”).
Breadcrumbs
Breadcrumbs are a UX pattern and a BreadcrumbList candidate—only if they match what is on the page.
Rules:
- Home → department → collection → product (or shorter).
- Do not show a collection the product is not in.
- Do not rotate the parent based on whichever ad the user clicked if that creates five URL variants of the crumb.
Shopify collection-product paths vs canonical product URLs: link the breadcrumb to the collection, the canonical to /products/handle as discussed in Shopify SEO fundamentals.
Guides and contextual links
Buying guides should link to in-stock SKUs and collections with descriptive anchors (“men’s trail shoes”), not “click here.” That is how problem queries connect to the catalog (keyword research).
Do not dump 50 product links in a paragraph. A compact list or comparison table is enough.
Practical audit
- Crawl the store (or sample 50 PDPs): inbound internal links count.
- Open a new product: is it in a collection in the HTML?
- Disable JS in a test browser: does the grid still link?
- Check breadcrumbs vs canonical.
- Fix orphans before you write more blog posts that never mention a SKU.
Pagination, filters, and “view all”
Page 2 of a collection should still link products in HTML. If page 2 is only reachable by a button that never adds ?page=2 or /page/2/, crawlers that do not click will under-discover SKUs. That is an internal-link problem as much as a technical one.
Filtered states should not become a second copy of the collection with a full set of product links and a competing title—unless you intentionally index that facet. Otherwise you split crawl between /shoes and /shoes?color=navy with the same grid.
A “view all” URL that lists 2,000 products can be a crawl gift and a performance bomb. If you offer it, make it the canonical hub or do not index it.
Cross-links that are not spam
Footer links to every collection on every URL are a lazy graph. Prefer:
- Contextual links in unique category copy (“see also trail socks”).
- A compact HTML module of 4–8 related SKUs on the PDP.
- Guide → collection → product chains for problem queries.
Anchor text should name the destination (leather tote 14"), not “learn more.” Repeating the exact target keyword on 200 PDPs pointing at one collection is still a pattern engines have seen; vary anchors with real product names.
Seasonal collections: when you unpublish, 301 to the parent department or the next season’s hub so product links do not die with the campaign URL.
New product launches should join a collection before ads point at the PDP, so crawlers and shoppers share a path. Launching a SKU that is only in a campaign landing URL is how orphans start.
Internal linking is catalog IA made visible. Widgets are optional. HTML paths are not.
Key takeaways
- Every indexable product should be reachable from a collection (or another crawlable hub) in HTML—not only from site search or a JS carousel.
- Breadcrumbs should match one primary hierarchy. Five parents on one PDP confuse users and dilute the graph.
- Related products can be SEO-useful if they are real links to in-stock SKUs, not a black-box widget that never renders in the source.
- Orphan SKUs (no inbound internal links) get crawled slowly or not at all. Sitemaps help; they do not replace links.
Frequently asked questions
How many internal links should a product page have?+−
Enough to place it in the IA: breadcrumb, parent collection, a few related in-stock products, maybe a guide. Dozens of footer links to every category are not a strategy. Quality and crawlability beat count.
Do related-product apps help SEO?+−
Only if the recommendations output crawlable anchors to real URLs. A slider that loads after JavaScript with no fallback is merchandising, not an internal-link graph.
Should I link to out-of-stock products?+−
Link if the URL is still the right landing page (back-in-stock). Do not build hubs of dead SKUs. Offer substitutes on the OOS template with HTML links.
Related tools
- URL Slug Generator
Turn a page title into a clean, lowercase, hyphenated slug for products, guides and articles.
- Meta Title Preview
Check title length, pixel-style width and a desktop SERP-style preview for e-commerce pages.
- Meta Description Preview
Draft a meta description, watch length, and preview how it may appear under a search title.
- SERP Snippet Preview
Preview title, URL and description together as a desktop-style search snippet.
Related guides
- E-Commerce SEO Guide
A practical map of e-commerce SEO: information architecture, keyword research, product and category pages, technical indexation, schema, Core Web Vitals and measurement.
Related articles
- Category Page SEO
Category pages rank for broader intent. Unique copy, faceted navigation, pagination and indexation decide whether the grid is a landing page or a duplicate farm.
- Product Page SEO
Product SEO is unique titles, specs, variant indexation and internal links. Duplicate manufacturer copy—not missing adjectives—is the usual ranking problem.
- E-Commerce Schema Markup
Product, Offer, BreadcrumbList and visible FAQ markup help machines parse the page. Never fake reviews or ratings. Schema follows what shoppers can see.