Skip to main content
WooCommerce guide

Internal Linking for WooCommerce Stores

By ยท Updated ยท 8 min read

How WooCommerce Shapes Your Internal Linking Structure

WooCommerce builds its URL architecture on WordPress permalinks, which means your product pages live under /product/, your category archives under /product-category/, and your shop root at /shop/ by default. Every internal link you create must account for these paths โ€” and the fact that changing them later triggers mass 301 redirects that bleed link equity during the transition period.

The platform separates content into three distinct taxonomies: product categories, product tags, and custom attributes (used for filterable facets like color or size). Each taxonomy generates its own archive URLs. A well-structured internal linking strategy treats these archives as real destination pages with editorial value, not just filter byproducts โ€” because WooCommerce renders them as indexable pages by default.

Unlike Shopify, WooCommerce gives you full control over permalink slugs, template files, and hook placements. That flexibility is an advantage, but it also means there is no built-in internal linking logic. Nothing in core WooCommerce automatically surfaces related products with contextual anchor text, creates breadcrumb links, or cross-links blog content to product pages. Every link is deliberate or absent.

WooCommerce Permalink and Taxonomy Conventions to Know

The /product-category/ base is one of the most commonly changed WooCommerce settings. Store operators remove it to shorten URLs (e.g., /running-shoes/ instead of /product-category/running-shoes/). Before making that change, audit how many internal links hard-code the full path โ€” Page Builder blocks, ACF fields, and navigation menus all store absolute URLs that break silently when the base changes.

WooCommerce attribute archives (/product-attribute/color/red/) are often accidentally indexed and rarely receive internal links. If your catalog uses attributes heavily, decide early whether these archives get curated content and internal links or get noindexed. Half-measures โ€” indexing them but never linking to them โ€” result in orphaned pages that accumulate crawl budget without contributing to site architecture.

Product tags in WooCommerce are frequently overlooked. Unlike categories, tags have no hierarchy, so they function best as horizontal connectors: a tag archive for 'waterproof' pulls together products from boots, jackets, and backpacks. Linking to well-optimized tag archives from product descriptions and blog posts creates cross-category pathways that category links alone cannot provide.

Native WooCommerce Linking Features and Their Limits

WooCommerce core includes a Related Products section that appears below the product description. It pulls from shared categories and tags, displays a random subset (default: four products), and uses generic anchor text rendered in template HTML โ€” not editable anchor text in the traditional SEO sense. The links exist, but they carry no editorial context and rotate randomly on each page load, making them unreliable as a linking signal.

The Upsells and Cross-Sells feature lets you manually assign specific products to appear in the single product template. Upsells appear on the product page; cross-sells appear in the cart. These are the closest WooCommerce comes to intentional internal product links, but the interface requires manual assignment one product at a time and the anchor text is still the product title โ€” no custom anchor text is possible without template customization.

Breadcrumbs in WooCommerce are generated by the active theme or by Yoast SEO / Rank Math's breadcrumb shortcode. They create category-to-product links automatically, but only follow the primary category assigned to each product. If a product belongs to three categories, breadcrumbs link to one. Products in the non-primary categories receive no breadcrumb equity from those relationships.

Plugins That Extend Internal Linking in WooCommerce

Yoast SEO and Rank Math both run on WooCommerce and flag internal linking opportunities inside the post editor. Yoast's internal linking suggestions surface related posts and pages based on content analysis; Rank Math's Link Suggestions panel operates similarly. These tools work on product pages just as they do on blog posts, meaning you can get prompt-based suggestions to link from product descriptions to buying guides, comparison pages, or category archives.

For automated cross-linking at catalog scale, plugins like Link Whisper integrate directly with the WordPress editor and scan existing content to suggest contextual internal links. On a WooCommerce store with thousands of SKUs, manual link insertion is not feasible โ€” Link Whisper or similar tools let you approve bulk suggestions and insert links across the catalog without opening each product individually.

AIOSEO (All in One SEO) includes an orphaned content report that identifies product pages, category pages, and posts with zero inbound internal links. For WooCommerce stores that import product feeds or migrate from other platforms, this report surfaces entire swaths of the catalog that were never linked into the site architecture. Fixing orphaned products is typically the highest-leverage internal linking action available on a WooCommerce site.

Workarounds for WooCommerce-Specific Linking Challenges

Variable products create a structural problem: the parent product page and its variations share one URL, but individual variation attributes are surfaced via JavaScript, not separate pages. You cannot link directly to a variation. The workaround is to link to the parent product and use URL query parameters (e.g., ?attribute_pa_size=large) to pre-select a variation on load โ€” this technique works in modern WooCommerce but is not a canonical URL and should not be used as the primary link destination in site navigation.

Faceted navigation (powered by plugins like FiboFilters or WooCommerce's own layered navigation widget) generates filtered archive URLs that can multiply your indexable pages dramatically. Without a controlled internal linking strategy, crawlers follow every filter combination. The fix is to noindex filtered URLs you do not want to rank and reserve internal links exclusively for hand-curated collection pages built on categories or tags โ€” pages you actively control and optimize.

For stores running Gutenberg or a page builder like Elementor, product description fields accept full block or shortcode content, including manual internal links. The most scalable approach is to build a product description template that includes a hardcoded 'You may also need' section with links to consumable accessories or complementary product categories. Applied via bulk CSV import using WooCommerce's native importer or a plugin like WP All Import, this method populates contextual links across hundreds of products without manual editing.

Actionable Priorities for WooCommerce Internal Linking

Start with an orphaned page audit using Yoast, Rank Math, or AIOSEO to identify product and category pages with no inbound internal links. Resolve orphaned category pages first โ€” they sit above products in your hierarchy and fixing one category link can extend equity to every product in it. Then address orphaned products by adding links from the most relevant existing category descriptions, buying guides, and blog posts.

Next, audit your primary category assignments. Every product's primary category determines its breadcrumb chain. Products miscategorized at import often receive breadcrumb links to irrelevant parent categories, wasting that structural link equity. Correct primary category assignments in bulk using the WooCommerce product list screen or a CSV export.

Finally, build at least five to ten 'hub' content pages โ€” buying guides, comparison posts, or curated collection pages โ€” that link out to product categories and individual products with descriptive anchor text. These hubs give you editorial control over anchor text and link targets that WooCommerce's native related products and upsells cannot provide. Internally link these hubs from your homepage, main navigation footer, and relevant product descriptions to ensure they receive crawl priority.

Frequently asked questions

Does WooCommerce have built-in internal linking features?

WooCommerce core includes Related Products (auto-generated from shared categories and tags), Upsells (manually assigned product links on the product page), and Cross-Sells (manually assigned links in the cart). None of these support custom anchor text without template edits. Breadcrumbs exist but depend on the active theme or an SEO plugin. No tool in WooCommerce core audits internal links or flags orphaned pages.

What is the best plugin for internal linking on WooCommerce?

The answer depends on catalog size. For stores under a few hundred products, Yoast SEO or Rank Math provide in-editor link suggestions with no additional cost. For larger catalogs where manual insertion is impractical, Link Whisper automates bulk link suggestions across product descriptions. AIOSEO's orphaned content report is useful for any store that has imported products or migrated from another platform.

Should WooCommerce product tag and attribute archive pages receive internal links?

Only if they are indexable and optimized. If a tag or attribute archive is indexed with no curated content and no internal links pointing to it, it becomes an orphaned page consuming crawl budget. The decision tree is: optimize the archive and link to it, or noindex it. Tag archives work well as cross-category hubs when the tag groups products meaningfully (e.g., 'waterproof', 'best-seller', 'bundle').

How do you handle internal links when WooCommerce faceted navigation creates hundreds of filtered URLs?

Noindex filtered URLs generated by faceted navigation widgets so crawlers do not follow endless filter combinations. Reserve internal links for hand-built collection pages โ€” typically category or tag archives with added editorial content. This concentrates link equity on pages you control and optimize, rather than distributing it across auto-generated filter permutations that you cannot realistically manage.

Can changing the /product-category/ permalink base hurt internal linking?

Yes, if internal links hard-code absolute URLs with the old base. After changing the permalink structure, WooCommerce issues 301 redirects, but blocks, navigation menus, and ACF fields that store full URLs break silently and serve as 404s or un-redirected links. Audit all internal link sources โ€” page builder blocks, widget areas, custom fields โ€” before and immediately after any permalink base change.

MG
Written by

Matt is the founder of RunOctopus. He built All Angles Creatures from zero to page-1 rankings in reptile feeder insects in under 60 days using exactly this method โ€” turning a hard, entrenched niche into RunOctopus's proof store for programmatic SEO and AI search citation.

Connect on LinkedIn →

See what Otto would build for your store

Free architecture preview. No card required. Five minutes.

Generate Preview →