/ โ† Ecommerce Audit Fixes / Product Cross-Links
In this guide
  1. The kinds of cross-link and what each does
  2. Recommendation blocks crawlers never see
  3. Links to sold-out, discontinued and redirected products
  4. The same bestsellers on every page
  5. Helping people browse without losing the sale
  6. The fix, step by step
  7. Platform notes
  8. Questions and answers

The kinds of cross-link and what each does

"Related products" is used loosely for several different links. Treating them as one thing is why many shops end up with a single generic block that does none of the jobs well.

Link typePurpose for the shopperExample (fictional shop)
AlternativesA similar item if this one is not quite right: different size, price or styleOther two-person tents on a tent page
Accessories or complementsThings needed with it, or that make it betterFootprint groundsheet and spare pegs on the tent page
Frequently bought togetherItems other buyers chose in the same orderSleeping mat and camping stove
UpsellA better or bigger versionThe same tent in a lighter fabric
Same range or brandItems from the same collection or makerOther products in the fictional "Fernfold Trail" range
Breadcrumb and category linksA way back up to browse more widelyHome, Tents, Two-person tents
Editorial linksHelp choosing or using itA buying guide on choosing a tent

For search engines, these links spread the importance a product earns across the catalogue, show which products belong together, and give crawlers routes to products that are deep in pagination or not linked from any category. Products with no links pointing to them at all, known as orphans, are covered in Fixing orphan products; this guide deals with the links between product pages themselves.

Recommendation blocks crawlers never see

The most common cross-linking fault is invisible to anyone looking at the page in a browser. Recommendation apps often fetch their products from an external service after the page loads, sometimes only when the block scrolls into view. The shopper sees a neat carousel. A crawler that does not run scripts, or that renders the page without scrolling, sees an empty container.

Google renders JavaScript, so it may eventually see script-built links, but rendering can lag behind crawling and links that load only on scroll or click are often missed. Other search engines and most AI assistants that fetch pages directly see only the HTML that arrives from the server.

How to check

  1. Open a product page, press Ctrl+U (Cmd+Option+U on a Mac) and search the source for the name of one of the recommended products. If it is not there, the block is built by script.
  2. In the Rich Results Test or URL Inspection in Search Console, view the rendered HTML and search again. If the product appears there but not in the source, Google can read it after rendering; other crawlers cannot.
  3. Check that the recommended items are real links. A product card that navigates through a JavaScript click handler attached to a <div> or <button> is not a link a crawler can follow. It must be an <a href="..."> with a real address.
<!-- Crawlable: a real link in the HTML -->
<a href="/products/tent-footprint-2p">
  <img src="/images/footprint-400.jpg" alt="" width="400" height="400" loading="lazy">
  Tent footprint for two-person tents
</a>

<!-- Not crawlable: navigation only through script -->
<div class="card" data-url="/products/tent-footprint-2p">Tent footprint</div>
๐Ÿ’ก A practical compromise: render a fixed set of hand-picked or rule-based related products on the server, so there are always crawlable links, and let the personalised recommendation widget load underneath for shoppers.

Links to sold-out, discontinued and redirected products

Recommendation engines trained on past orders keep suggesting products you no longer sell. Manual related-product lists are worse, because nobody revisits them. The audit usually finds three patterns:

Filter recommendations by stock and status at the point they are built. For a sold-out alternative, either skip it or label it clearly. For discontinued products that you redirected to a replacement, update the links to point straight at the replacement. A crawler's list of internal links to redirects and errors, filtered to product URLs, shows exactly which pages need correcting.

The same bestsellers on every page

Many themes fill the "you may also like" block with the shop's bestsellers or with random products from the same collection. The result is that a few popular products receive links from every page in the shop, while the rest of the catalogue gets almost none, and the links tell neither shoppers nor search engines anything about how products relate.

A better approach is to base cross-links on relationships you can explain:

Keep the number sensible. A block of four to eight items is usually enough; forty links in three carousels dilutes all of them and slows the page. The broader balance of internal links across a site is covered in the Internal Links fixes.

Helping people browse without losing the sale

Cross-links serve the shopper who is not yet sure. For the shopper who has decided, they can be a distraction. Placement decides which effect you get.

PositionSuitsAvoid
Near the add to basket buttonOne or two essential accessories, such as batteries or a compatible chargerCarousels of alternatives that pull people away before they buy
Below the description and reviewsAlternatives and same-range products for people still comparingNothing in particular; this is the natural place for most blocks
In the basket or after addingLow-cost complementsPop-ups that block the checkout button
Out-of-stock product pagesClose alternatives placed prominently near the topLeaving the shopper with only a "sold out" message

Measure the effect rather than guessing. Most platforms and analytics tools can show clicks on recommendation blocks and whether those sessions converted. If a block near the buy button gets many clicks but sessions that use it convert worse, move it further down.

The fix, step by step

Step 1

Check whether crawlers can see the links

On three typical product pages, search the raw page source for the name of a recommended product, then search the rendered HTML from URL Inspection. Confirm every product card is an <a href> link with a real address, not a click handler. Run a crawler with JavaScript rendering switched off and compare how many internal links each product page has with a rendered crawl. A large gap means your cross-links depend on scripts.

Step 2

Decide what each block is for

List every cross-link block on the product template and give each one a single job: alternatives, accessories, frequently bought together, same range or upsell. Remove blocks that duplicate each other, such as two carousels both showing bestsellers, and rename headings so shoppers know what they are looking at. A tent page with "Pitch it with these" and "Other two-person tents" is clearer than one called "You may also like".

Step 3

Choose relationships that make sense

Set the rules behind each block: attributes such as category, price band and compatibility for alternatives, genuine order data with bestsellers excluded for frequently bought together, and manual picks for your most valuable products. Limit each block to around four to eight products. Check a sample of pages to confirm the suggestions are ones a knowledgeable shop assistant would make, and that less popular products also receive links.

Step 4

Stop linking to dead and redirected products

Export internal links that return 404 or redirect from a crawl and filter them to links inside product recommendation blocks. Update manual lists, and set your recommendation app or template to exclude products that are unpublished, discontinued or out of stock, or to label sold-out items clearly. Where a discontinued product redirects to a replacement, point links directly at the replacement so shoppers and crawlers skip the extra hop.

Step 5

Add fixed routes out of every product

Make sure each product page has links that do not depend on any app: a breadcrumb trail back to its category, a link to its brand or range page, and a small server-rendered block of related products. These links remain even if a recommendation service fails, times out or is removed, so no product becomes a dead end. Where a helpful buying guide exists, link to it from the description with descriptive anchor text.

Step 6

Place blocks so they help the sale

Keep the area around the price and add to basket button for the product itself and, at most, one or two essential accessories. Move alternatives and same-range carousels below the description and reviews, where shoppers still comparing will look for them. On out-of-stock pages, promote close alternatives near the top. Use your analytics to compare conversion for sessions that click each block before and after moving it.

Step 7

Crawl again and compare

Rerun your crawl with the same settings and compare the number of unique products linked from product pages, the spread of inlinks across the catalogue and the count of links to errors and redirects. Rerun the Ecommerce Audit on the same pages. In Search Console, the Links report's internal links list should gradually reflect a wider spread once Google has recrawled the updated pages and processed the new links.

Platform notes

Shopify

Many themes include a "Related products" section that uses Shopify's product recommendations, loaded through a separate request after the page. Check whether your theme renders it on the server or fetches it with script. Complementary products can be set up through Shopify's Search and Discovery app. For guaranteed crawlable links, many shops add a static block driven by product metafields listing hand-picked related items.

WooCommerce

WooCommerce has built-in upsells and cross-sells set in each product's Linked Products tab: upsells show on the product page and cross-sells show in the basket. Related products are chosen automatically from shared categories and tags, and are rendered on the server by default. Messy tags produce odd related products, so tidy the tags before blaming the feature.

Headless and custom

Fetch related products on the server as part of the page data and render them as links. If you also use a personalisation service in the browser, treat it as an addition, not the only source of cross-links.

For linking strategy across whole categories rather than between products, see Fixing product internal linking.

Questions and answers

1. How many related products should a product page show?

There is no set number, but four to eight items per block is a sensible range for most shops, with no more than two or three blocks on a page. That is enough to offer real choice without burying the product itself or slowing the page. Each link you add shares attention with the others, so forty loosely related products help nobody. Choose fewer, better matched items and give each block a clear heading.

2. Can Google follow links in a recommendation carousel?

It depends on how the carousel is built. If the products are real links in the HTML the server sends, any crawler can follow them. If they are fetched by script after the page loads, Google may see them after rendering, but other crawlers and many AI tools will not, and links that load only on scroll or click are often missed. Check the raw page source for a recommended product name to find out.

3. Should I nofollow links to related products?

No. Internal links to your own products are exactly the links you want search engines to follow, and nofollow on them only makes it harder for crawlers to discover and understand your catalogue. If some linked pages should not be indexed, such as filtered URLs, deal with that on those pages. If a block links to products you do not want found, the fix is to stop linking to them, not to add nofollow.

4. Do cross-links reduce conversion by distracting shoppers?

They can if they sit in the wrong place. A carousel of alternatives right beside the add to basket button invites a shopper who had decided to start comparing again. Placed below the description and reviews, the same block helps people who were not sure. Keep the buy area for the product and perhaps one essential accessory, and measure conversion for sessions using each block before and after any change.

5. What should an out-of-stock product page link to?

Keep the page live if the product is coming back, show when it is expected, and place close alternatives prominently near the top so the shopper has somewhere useful to go. If the product is gone for good, either redirect to a direct replacement or keep the page with clear alternatives when it still attracts searches and links. Either way, update cross-links on other pages so they stop presenting the missing item as available.

6. Are breadcrumbs cross-links?

Strictly they link upwards rather than across, but they belong in the same review because they are the most dependable route out of a product page. A breadcrumb trail back through the category tree gives shoppers a way to browse more widely and gives crawlers consistent links to your categories from every product. Make sure breadcrumbs are real links in the HTML and reflect a sensible main category for each product.

See how your products link to each other

The Ecommerce Audit checks internal links between your top store pages, alongside product page completeness, category depth, Product and review schema, faceted navigation, product images and product page speed.

Open Ecommerce Audit Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Ecommerce Audit Fixes  ·  Fixing Orphan Products  ·  Product Internal Linking  ·  Fixing Thin Category Pages  ·  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.