Related Products & Internal Linking

Related-product modules — 'You May Also Like,' 'Frequently Bought Together,' 'Customers Also Viewed' — aren't just merchandising. Every item is an internal link, which makes them a crawl-path and anchor-text asset. How to implement them so they help SEO: real <a href> links, descriptive anchors, relevance over volume, and reconciling cross-sell with orphan-page rescue — without scrambling your category hierarchy.

First published: Jul 3, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #5 in Architecture & Crawl Control#29 in Ecommerce SEO#378 on the site
1 evidence signal on this page

Related-product modules ('You May Also Like,' 'Frequently Bought Together,' 'Customers Also Viewed') are internal links, not just merchandising widgets — so they open crawl paths into deep catalog pages and pass relevance and PageRank. The accuracy spine: they only help SEO if they're real crawlable <a href> links (Google can't reliably extract URLs from <a> elements without an href), use descriptive anchor text (the product name, not 'View' or 'Learn more'), and point to genuinely relevant products. Two purposes fight inside one widget — a rules engine optimizes for order value, not for rescuing orphaned or thin-authority pages — so deliberately steer some links toward deep, high-margin, and best-selling products. Dense cross-linking on ecommerce sites is not inherently a problem (Mueller); the real risk is letting cross-links replace a recognizable category hierarchy. A sitemap gets pages indexed, not well-contextualized — it's not a substitute for on-page links.

TL;DR — Related-product modules are internal links first and merchandising second, so treat them as a crawl-path and anchor-text asset. The accuracy spine: they only pass value if they’re real crawlable <a href> links — “Google can’t reliably extract URLs from <a> elements that don’t have an href attribute” — and if the anchor text is descriptive (the product name, not “View”). Two goals fight inside one widget: a rules engine optimizes for order value, not for rescuing orphaned/thin pages, so deliberately steer some links toward deep, high-margin, and best-selling products. Dense cross-linking on ecommerce sites is not inherently a problem (Mueller) — the real failure mode is letting cross-links replace a recognizable category hierarchy. A sitemap gets pages indexed, not well-contextualized — it’s a supplement to on-page links, not a substitute.

Evidence for this claim If category pages do not directly link to all products, Googlebot may not find every product by crawling alone. Scope: Google ecommerce site-structure guidance. Confidence: high · Verified: Google Search Central: Ecommerce site structure Evidence for this claim Product recommendation modules provide a crawl path only when they expose crawlable anchor elements with href attributes. Scope: Google crawlable-link requirements. Confidence: high · Verified: Google Search Central: Crawlable links

The two purposes hiding in one widget

Every “You May Also Like” module is doing two jobs that don’t automatically align:

  • Commerce-driven linking — a merchandiser or a rules engine picks the items (complementary products, “frequently bought together,” basket-affinity data). It’s optimized for conversion and average order value.
  • SEO-driven linking — deliberately linking to orphaned, deep, or thin-authority product pages, with descriptive anchor text, so they get crawled, indexed, and passed relevance signal.

Most stores only do the first and get the second by accident. The whole point of this piece is to make them overlap — or at least coexist without one degrading the other. Because a rules engine tuned for order value has no reason to link to your low-margin, low-conversion product that badly needs the internal-link signal. If SEO value is going to happen, someone has to steer it there.

The candidates themselves come from different places, and it’s worth knowing which: manual merchandiser curation, behavioral/co-purchase data, and rules-based similarity (shared category or attributes) are distinct recommendation sources with different inputs — platform docs from Shopify and Adobe both document these as separate recommendation types, not one interchangeable “related products” pool. That provenance matters because a candidate that’s a good conversion pick isn’t automatically a good SEO pick, and vice versa.

The crawl-path case: category pages and sitemaps aren’t enough

Google reaches your product pages mostly by following the links on your category pages — but category listings can’t always link to everything. Pagination cuts a long catalog into pages; filters and merchandising exclusions hide items; best-sellers hog the top slots. Google states the gap plainly: “If category pages don’t include direct links to all products in a category, Googlebot might not find all of your products by crawling alone.”

Evidence for this claim If category pages do not directly link to all products, Googlebot may not find every product by crawling alone. Scope: Google ecommerce site-structure guidance. Confidence: high · Verified: Google Search Central: Ecommerce site structure

Related-product modules are a second, product-page-level path into those pages. They matter because Google’s own guidance is that “every page you care about should have a link from at least one other page on your site” — and a related-products module is one of the few on-page mechanisms that can be that link for a deep SKU.

Two myths die here:

  • “A sitemap covers it.” No. Google frames sitemaps and Merchant Center feeds as a supplement“these sources can include links to pages a crawler would not otherwise find” — not a replacement for crawlable on-page links. Sitemaps get pages indexed; they don’t give Google the on-page context that decides how a page is understood and ranked. A page reachable only via sitemap is a page Google sees with almost no relevance context.
  • “Best-sellers don’t need extra links.” They benefit most. Google’s ecommerce guidance: “if you have a best selling product, consider linking to it from the home page or in other content, such as blog posts or newsletters.” The same logic applies to steering related-product links toward your revenue-critical items.

Getting the technical implementation right

This is the load-bearing requirement, and it’s where JS-heavy recommendation apps fail silently.

Real <a href> links, not JS-only click handlers. Google is explicit: “Google can’t reliably extract URLs from <a> elements that don’t have an href attribute.” If your carousel renders each item as a <div onclick> or a button wired to a router event, Google may never discover those products through the module — no matter how good “Google renders JavaScript now” sounds. Rendering is a second wave that can lag, and it doesn’t manufacture an href that was never in the markup.

Practical implementation rules (these echo the widget guidance vendors like Bloomreach publish for their recommendation products):

  • Render the module’s links in HTML, server-side, not injected by a client-side AJAX call after load.
  • Make the module visible on page load — not hidden behind a tab, an accordion, or a “load more” click, and not styled invisible.
  • Keep desktop and mobile URL structure matching — with mobile-first indexing, Google predominantly uses the mobile rendering of your page, so a module that only exists (or only links) on desktop is a module Google largely doesn’t see.

Anchor text for recommendation widgets

Anchor text is a relevance signal Google reads, and for image-based product tiles the image’s alt text functions as the anchor text. So the rule is the same as anywhere: describe the destination.

  • Use the product name or a short descriptive phrase, not “View,” “Shop now,” or “Learn more.” Google’s link guidance tells writers to avoid generic anchors like “click here” and to make anchor text that makes sense on its own. Jon Clark’s ecommerce internal-linking guide critiques a real West Elm implementation on exactly this point — arguing “a better anchor text implementation could be done here” about generic “Learn more” links.
  • Vary the phrasing naturally across the same product’s inbound related-links rather than repeating one exact-match phrase in every module that points to it. Ramming the identical keyword-stuffed anchor into hundreds of tiles is an over-optimization signal, not a ranking hack.

A “related products” grid that’s really just “here are eight random SKUs from the same category” reads as low-value to users and, by Google’s own framing, as poorly integrated content. Mueller’s advice for making deep pages count is to “make sure that those pages are well-integrated with your website so that we have a clear context of how those pages should belong” — an arbitrary category-fill grid does the opposite of that.

The relevance ranking, roughly:

  • Co-purchase / “Frequently Bought Together” — driven by actual basket-affinity data, so items tend to be genuinely related (a phone and its case), which gives you better anchor-text context and avoids the thin-block problem.
  • Complementary products — a merchandiser or rules engine pairing categories (a blazer → shirts and trousers). Relevant when the rules are sane.
  • “Related”/“same category” fill — the weakest, because “also in this category” isn’t the same as “actually related to this item.”

None of these is a distinct ranking factor. “Frequently Bought Together” isn’t magically better SEO than “Related Products” — its only edge is relevance quality, which is exactly the thing that makes the anchors and crawl paths worth having.

Less of a problem than people fear. Google has no ideal internal-link count, and Mueller has said he doesn’t see an issue with dense internal linking specifically on ecommerce sites. The real constraint isn’t a link-count ceiling — it’s keeping the category hierarchy recognizable when Google crawls. His framing on flat vs. pyramid structure is the caveat: “Whereas if it’s very flat, then we think, oh all of these are equally important and we don’t really know which of these are connected to each other.”

So the failure mode isn’t “too many related-product links.” It’s related-product links that replace or obscure the pyramid — a product discoverable only via other products’ widgets, never via its own category page. Related links are a supplement to category → subcategory → product, not a substitute for it. On this site, ecommerce site architecture treats related products as one of the four link types (nav, category pages, breadcrumbs, related products) that tie the hierarchy together — they work with the pyramid, not instead of it.

There’s a long-running community retort — “I’ll stop doing it when it stops working” — aimed at tactics SEOs keep using despite Google’s guidance because they still seem to move rankings. My take is the same as it is for keyword-stuffed footer text: betting against a documented spam signal is fragile. Build the module for genuine relevance and you never have to make that bet.

Reconciling cross-sell (commerce) and SEO-driven linking

The practical reconciliation:

  1. Let the rules engine drive the primary carousel for conversion — that’s what it’s good at, and AOV pays the bills.
  2. Add a deliberate SEO layer. Either configure the rules engine to include, or add a separate curated set of links to: (a) orphaned/deep/thin-authority products that need the crawl path and signal, and (b) your highest-margin and best-selling items (Google explicitly recommends linking best-sellers from high-authority pages). Before adding a rescue link, check the destination’s response status, canonical, and index eligibility — a related-products link to a 404, a redirect chain, or a noindexed page doesn’t rescue anything, it just moves the problem one hop deeper into the catalog.
  3. Global vs. contextual placement. For a handful of revenue- or traffic-critical SKUs, a global header/footer link earns its place. For the long tail, page-specific contextual related-product modules are the right tool — that’s where the crawl-path value for deep pages actually lives.

Related-product links are a quiet source of technical debt. When a linked item goes out of stock, is discontinued, or gets redirected, the module keeps pointing at it.

  • Out of stock ≠ delete the link. The general guidance covered under out-of-stock products applies: keep the page live and linked with an OutOfStock availability rather than reflexively stripping internal links, since removing internal links can weaken the pages you still care about.
  • Discontinued products — Google’s guidance favors keeping the URL live with alternatives, or redirecting to a relevant category or replacement product, over a blanket 404; a wave of related-product links suddenly pointing at soft-404s is the kind of mess that accumulates unnoticed.
  • Audit for it. Stale related-product links pointing to 404s and redirect chains are easy to miss because the widget still looks fine on the page.

Measuring whether it worked

  • Internal-link reports. Ahrefs Site Explorer’s “Pages by internal links” and “Internal link opportunities,” plus Google Search Console’s internal-links report, show which products are under-linked and which the related modules are actually feeding.
  • A lightweight before/after test. Pick comparable product cohorts, add or expand the related-links module on one cohort, and compare indexing speed, impressions, and pageviews against the held-back cohort. Treat any single-store case study — including the vendor case studies floating around claiming large conversion lifts from added internal links — as directional, not proof.

Where this sits

Related products are one piece of ecommerce site structure. For the pages on either end of these links, see product page SEO (the PDP the module lives on — it shouldn’t be a dead end) and category page SEO (the listing whose crawl-path gaps these modules backfill). Faceted navigation is the adjacent crawl-budget concern when the same products appear across dozens of parameterized “related” URLs. And the general mechanics — internal links, internal linking strategy, and anchor text — live in the technical-SEO website-structure cluster; this piece is their ecommerce-specific application.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.