How to Add Upsells and Cross-Sells in WooCommerce for Beginners

Checked for accuracy and updated on August 24, 2026.

A customer adds a $30 candle to their cart and checks out without ever seeing the $60 candle set or the $8 wick trimmer sitting a few clicks away. That’s the gap upsells and cross-sells are built to close — and in WooCommerce, both are already built in. No extra plugin, no extra cost, just two fields most beginners never notice on the product editing screen.

A Stat Worth Being Skeptical Of

Almost every article on this topic opens with some version of “35% of Amazon’s revenue comes from its recommendation engine.” It’s worth knowing where that number actually comes from before repeating it: it traces back to a McKinsey estimate, not anything Amazon has ever officially disclosed, and at least one university researcher who looked into it publicly called the figure hard to believe. That doesn’t mean upsells and cross-sells don’t work — the mechanism is sound and well-documented in ecommerce generally — it just means the specific number everyone quotes is closer to industry folklore than a verified fact. Worth remembering next time it shows up as the justification for something.

The Two Fields, and What Each One Actually Does

Open any product, go to Product data → Linked Products, and there are two search fields. Upsells — higher-value alternatives, shown on the product page itself — think “you might prefer this better version.” Cross-sells — complementary add-ons, shown on the cart page — think “people who bought this also grabbed these.” Mixing the two up is the most common beginner mistake: an accessory placed in Upsells shows up looking like a replacement for the main product, which just confuses the page rather than helping it.

Worth knowing exactly how cross-sells trigger, since it’s not the general “customers also bought” logic some assume: they only appear on the cart page once one of the specific products manually linked in that field is actually sitting in the cart — nothing broader, nothing automatic beyond what’s explicitly configured per product. Both fields take effect immediately on save, no theme changes needed, though appearance is theme-dependent.

Setting It Up

Start with whatever’s already driving the most orders, not every product on day one — that’s where the extra exposure earns its keep fastest. For each one: in Upsells, add two to four products that are a genuine step up (a premium version, a bigger size, a bundle that includes it) — more than that and the page starts feeling cluttered rather than helpful. In Cross-sells, add products that pair naturally without replacing it — accessories, refills, a smaller companion item. Update, then check both pages live: view the product page to confirm upsells appear, add the item to cart to confirm cross-sells show up there.

Keep upsells genuinely better, not just more expensive — a customer who feels upsold rather than helped won’t come back. Revisit these fields every few months as the catalogue changes; an upsell pointing at a discontinued or out-of-stock product actively hurts the page instead of helping it. If a product naturally belongs to a themed set, a product bundle is worth considering alongside cross-sells, since a bundle can offer a small discount a plain suggestion can’t — and none of this compensates for a weak product page; if it isn’t converting already, fix that first.

Checking Whether It’s Actually Working

WooCommerce doesn’t surface upsell/cross-sell click-through or attributed revenue anywhere in its default dashboard — the fields work, but there’s no built-in “here’s what this earned you” report. The practical way to check is Google Analytics 4’s ecommerce tracking (if it’s already set up on the store) filtered to item-view and add-to-cart events on the specific products used as upsells/cross-sells, or a periodic manual spot-check: pick a best-seller with upsells configured, and eyeball whether its order-details “customer also bought” pattern in WooCommerce’s own order history shows the linked products showing up together often. Neither is perfect measurement, but both beat assuming the feature is working just because it’s configured — the whole point of setting this up is the extra order value, and that’s worth actually verifying rather than taking on faith.

Built-in upsells and cross-sells are the right starting point for almost every store — free, native, minutes to set up once products exist. Get the catalogue and checkout solid first if the store is still new; reach for a dedicated bundling or “frequently bought together” plugin only once real order data shows which products genuinely sell well side by side — guessing at bundles ahead of that data usually just adds clutter instead of revenue.