Fixing Product Cross-Links
Cross-links are the links from one product to others: "related items", "customers also bought", "complete the look", accessories, alternatives and the breadcrumb back to the category. They help shoppers find the right item and help search engines understand how your catalogue fits together.
They go wrong in predictable ways: the block is built by a script that crawlers never run, it points at sold-out or discontinued items, it shows the same bestsellers on every page, or it tempts people away from the product they were about to buy. This guide covers how to find and fix each of these.
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 type | Purpose for the shopper | Example (fictional shop) |
|---|---|---|
| Alternatives | A similar item if this one is not quite right: different size, price or style | Other two-person tents on a tent page |
| Accessories or complements | Things needed with it, or that make it better | Footprint groundsheet and spare pegs on the tent page |
| Frequently bought together | Items other buyers chose in the same order | Sleeping mat and camping stove |
| Upsell | A better or bigger version | The same tent in a lighter fabric |
| Same range or brand | Items from the same collection or maker | Other products in the fictional "Fernfold Trail" range |
| Breadcrumb and category links | A way back up to browse more widely | Home, Tents, Two-person tents |
| Editorial links | Help choosing or using it | A 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
- 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.
- 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.
- 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>
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:
- Links to products that now return 404, wasting the shopper's click and the crawler's time.
- Links to products that redirect, often to a category or the home page. Each costs an extra request and passes the shopper somewhere they did not expect.
- Links to out-of-stock products presented as if available, which frustrates shoppers even when the page itself is fine.
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:
- Attributes. Same category and a similar price band, compatible size or fitting, same material.
- Purchase data. Items genuinely bought in the same orders, with bestsellers excluded so they do not swamp everything else.
- Manual curation for your top products, where a person who knows the range picks the most useful alternatives and accessories.
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.
| Position | Suits | Avoid |
|---|---|---|
| Near the add to basket button | One or two essential accessories, such as batteries or a compatible charger | Carousels of alternatives that pull people away before they buy |
| Below the description and reviews | Alternatives and same-range products for people still comparing | Nothing in particular; this is the natural place for most blocks |
| In the basket or after adding | Low-cost complements | Pop-ups that block the checkout button |
| Out-of-stock product pages | Close alternatives placed prominently near the top | Leaving 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.
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.
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 โ