/ โ† Internal Linking Fixes / Product Page Linking
In this guide
  1. Why product pages end up poorly linked
  2. One product, one address in every link
  3. Breadcrumbs and the primary category
  4. Category listings that crawlers can page through
  5. The fix, step by step
  6. Linking into products from content
  7. Platform notes
  8. Questions and answers

Why product pages end up poorly linked

On a typical shop, internal links concentrate at the top. The homepage links to main categories, categories link to subcategories, and every page repeats the same menu. Products only receive links from the listing pages they appear on, plus whatever related-product blocks happen to include them. The Internal Link Analysis makes the pattern visible: it measures how many clicks each page sits from the homepage and counts links in and out of each page. For most shops the products are the deepest pages with the fewest incoming links.

Some of that is natural. There are many more products than categories, so each will receive fewer links. The trouble is the avoidable part:

Choosing which products to show in "related" and "frequently bought together" blocks is a separate job, covered in the product cross-links guide. Products with no links at all are covered in the orphan products guide. This guide deals with the structural routes that every product depends on.

One product, one address in every link

A product can often be reached at several addresses. Search engines usually consolidate them using the canonical tag, but every internal link to a non-canonical version is a link that has to be worked out rather than one that lands directly on the page you want.

Platform patternExampleLink to
Shopify collection-aware path/collections/boots/products/fellside-walking-boot/products/fellside-walking-boot
Variant parameter/products/fellside-walking-boot?variant=40211The product address, unless the link is deliberately for one variant
WooCommerce with category in the permalink/shop/boots/womens/fellside-walking-boot/ and /shop/boots/fellside-walking-boot/The single address set by the primary category
Tracking parameters on internal links?utm_source=homepage-bannerThe clean address; use analytics events for internal campaigns
Search or filter results linking with parameters/products/fellside-walking-boot?_pos=2&_sid=a1b2The clean address where the theme allows it

Shopify: the collection-aware link

Some Shopify themes build product links with the within filter, which produces the /collections/.../products/... form so the breadcrumb can show the collection. The canonical tag on those pages points to /products/handle, so every collection listing is linking to a duplicate. In the product card snippet, look for something like the first line below and change it to the second:

<a href="{{ product.url | within: collection }}">{{ product.title }}</a>

<a href="{{ product.url }}">{{ product.title }}</a>

Check the theme's related-products and search templates for the same pattern. If you rely on the collection path to show a breadcrumb, use a fixed breadcrumb based on the product's main collection instead, as described below.

Internal campaign tracking

Adding utm_ parameters to links between your own pages creates extra addresses and, in most analytics setups, starts a new session attributed to your own site. Track clicks on homepage banners and promo blocks with analytics events instead, and keep the link itself clean.

Category listings that crawlers can page through

Category pages are the main road into products. If a crawler cannot get past the first page of a category, every product beyond it depends on sitemaps and related blocks alone.

โš ๏ธ Sorting and filter controls can generate thousands of crawlable variations of each category. Keep product links on the plain paginated listings, and handle filters as described in the faceted navigation guide.

The fix, step by step

Step 1

Map how the analysis reaches your products

Run the Internal Link Analysis and filter the results to product pages. Note each product's click depth and number of incoming internal links, then sort by depth. Pick your twenty best-selling or highest-margin products and check them specifically. If key products sit five or more clicks from the homepage, or are only linked from one listing page, you have found the structural gap this guide fixes. Keep the list as your baseline for later comparison.

Step 2

Point every product link at the canonical address

Open a category page, a search results page and a product page, and check the href of product links in developer tools. If they use collection-aware paths, variant parameters, tracking parameters or category-dependent permalinks, change the card and related-product templates so they output the canonical product address. On Shopify that usually means removing the within: collection filter; on WooCommerce, setting a primary category so each product has one permalink.

Step 3

Give each product one breadcrumb path

Assign every product a primary category, choosing its most specific permanent category rather than a sale or seasonal collection. Change the breadcrumb template to build the trail from that field instead of the visitor's route, include every level from the top category down, and make each crumb a real link. Add matching BreadcrumbList structured data. Every product then links up to its subcategory and category in the same way on every visit.

Step 4

Make category listings crawlable to the last page

Check that each category's later pages have their own addresses and are reachable through ordinary links, not only through a load-more button or infinite scroll. Remove canonical tags that point page two onwards at page one. Consider showing more products per page, and split very large categories into subcategories so no product sits deep in a long run of pages. Confirm by disabling JavaScript and paging through one category to the end.

Step 5

Link to products from guides and brand pages

Review your buying guides, comparison pages, care guides and brand pages. Where a guide recommends a type of product, link to the specific products or the relevant subcategory with anchor text that names them. Brand pages should link to that brand's products or to a filtered listing. These pages often attract visits and links from other sites, so a few well-placed product links here can bring key products much closer to the rest of the site.

Step 6

Tidy the links that leave each product page

Look at every link a product page sends out: breadcrumb, brand, size guide, delivery and returns information, reviews, related products and footer. Make sure each points at a live, canonical address, and that shared information pages such as the size guide use one address rather than a copy per product. Remove links to discontinued products and empty categories. Keep the page focused on buying, with a small number of useful routes onward rather than dozens of repeated blocks.

Step 7

Recrawl and compare product depth and inlinks

After the changes are live and caches are cleared, run the Internal Link Analysis again and compare your key products against the baseline from step one. Click depth should have fallen for products that were buried in long categories, and incoming links should now land on canonical product addresses rather than duplicates. In Search Console, watch whether more product pages are indexed over the following weeks, and repeat the check after any theme change.

Linking into products from content

Editorial pages, such as buying guides, "how to choose" articles, care instructions and comparisons, are often the pages on a shop that other websites link to. They are also read by people close to a purchase. Both are reasons to connect them to products carefully.

For how to place links inside long articles generally, see the Internal Links Guide. Here the key point is simply that content should lead to products, not only to other content.

Platform notes

Shopify

WooCommerce

Custom and headless shops

Questions and answers

1. Why do my product links go to a collection address on Shopify?

Some Shopify themes build product links with the within collection filter, which creates an address that includes the collection so the page can show where the visitor came from. The canonical tag on that page points to the plain products address, so the listing is linking to a duplicate. Changing the product card and related snippets to use the plain product URL means every internal link lands directly on the canonical page, with no consolidation needed.

2. Which category should a product's breadcrumb show?

Choose one primary category per product: its most specific permanent category, such as women's walking boots rather than walking boots or a seasonal sale collection. Build the breadcrumb from that stored choice rather than the route a visitor took, so the trail is the same for everyone and for crawlers. Include every level from the top category down, and make each crumb except the current page a real link that points at the category's canonical address.

3. Do breadcrumbs actually help product pages?

They help in two ways. Visitors get a clear route back to the category and subcategory, which is useful when a product is not quite right. And every product page links up to its categories, so those category pages receive links from all their products, while the product's own place in the catalogue is made explicit. Adding matching BreadcrumbList structured data describes the trail to search engines, though the visible links are what crawlers follow.

4. Is infinite scroll bad for product discovery?

Not for visitors, but it can hide products from crawlers if the extra products are only loaded by scrolling or pressing a button. The fix is to make the same products available at paginated addresses, such as page two and page three, linked with ordinary links, and to update the address as the visitor scrolls. Test by switching JavaScript off in your browser and checking that you can still reach the last page of the category.

5. Should page two of a category be canonicalised to page one?

No. Later pages of a category list different products, so they are not duplicates of page one. Pointing their canonical tag at page one tells search engines to treat them as the same page, which can remove the only route to the products listed further down. Give each paginated page a self-referencing canonical, link the pages together with normal links, and consider splitting very long categories into subcategories so fewer products sit on deep pages.

6. How many links should a product page have?

There is no correct number. A product page needs its breadcrumb, the site navigation, links to shared information such as delivery and sizing, and a small set of genuinely related products. Problems appear when repeated blocks of recommendations, recently viewed items and promotions add dozens of links that distract from buying. Aim for a few clear routes onward that a shopper would use, and check that each link points at a live, canonical address.

7. What should happen to links when a product is discontinued?

Find every page that links to it, including buying guides, brand pages and related-product blocks, and point those links at the replacement product or the most relevant category. Then decide what the product page itself should do: keep it live with a clear note and alternatives if people still look for it, or redirect it to a close replacement. Avoid leaving links to a page that returns an error or redirects to the homepage.

Measure how deep your products sit

The Internal Link Analysis maps every internal link across your crawled pages, measures how many clicks each page sits from the homepage, and counts links in and out of each page, including your products.

Open Internal Linking Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Internal Linking Fixes  ·  Product Cross-Links  ·  Orphan Products  ·  Pages Too Deep  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.