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
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 linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. 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 textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. 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 pagesThin content is web content that provides little or no value to users. Google's spam policies name it 'thin content with little or no added value' — and it's about value per page, not word count., 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 sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. gets pages indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., 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 textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page., 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. PaginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does. 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, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. might not find all of your products by crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. alone.”

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 sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. covers it.” No. Google frames sitemaps and Merchant Center feeds as a supplement“these sources can include links to pages a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. 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. RenderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. 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 structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. matching — with mobile-first indexingGoogle's practice of using the mobile version of a page's content — crawled by Googlebot smartphone — for indexing and ranking. It is not a separate index and not a ranking boost., 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 textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search. 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.
TIP Audit the links the widget actually renders

Inspect the rendered module, not the merchandising configuration. Generic labels such as “Learn more” can repeat across different targets, and an internal nofollow can quietly prevent the signal you intended to create.

Run a product page through my link checker to surface generic anchors, ambiguous labels, internal nofollow, and broken or redirected targets. Link Analyzer Free

  1. Test a representative product page with the recommendation module visible.
  2. Check that each product tile renders a real destination and a descriptive product-name anchor.
  3. Fix generic, nofollowed, broken, or redirected links in the shared widget template, then rerun.

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 linkingLinks between pages on the same site. 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 architectureEcommerce site architecture is how an online store's pages — categories, subcategories, and products — are organized and linked. Google reads the link structure (not the URL path) to work out hierarchy and relative importance, so a logical pyramid plus good internal links matters more than how deep the URLs look. treats related products as one of the four link types (nav, category pages, breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results., 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 chainA → B → C instead of A → C. Each hop loses link equity and adds latency., 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 linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., since removing internal links can weaken the pages you still care about.
  • Discontinued productsA discontinued product is an item you'll never sell again — the manufacturer stopped making it, or you dropped the line. The SEO decision is end-of-life: 301-redirect the URL to a genuinely similar replacement or the closest relevant category if it earned links or traffic, 404/410 it if it didn't, or keep it live as a Discontinued tombstone page only when it still helps users. This is distinct from a temporary out-of-stock product, which you keep live at 200. — 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 redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. 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 ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’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 indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. 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 SEOProduct page SEO is the practice of optimizing an individual product detail page (PDP) so it ranks in organic search and earns rich results. It blends unique product copy, structured data, variant canonicalization, image SEO, and customer reviews — but the structured data earns rich results and eligibility for free product listings, it doesn't make the page rank. (the PDP the module lives on — it shouldn’t be a dead end) and category page SEOCategory page SEO is the practice of optimizing an ecommerce listing page (also called a PLP or collection page) — the page that groups products under a classification like /shoes/running/ — so it ranks for broad commercial queries and routes crawlers and link equity to the products beneath it. (the listing whose crawl-path gaps these modules backfill). Faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. 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 strategyAn internal linking strategy is the deliberate, planned process of deciding which pages on a site should link to which others — with what anchor text and in what priority order — before or while you build, rather than adding links ad hoc as you publish., 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 a quote first.