WooCommerceVariable ProductsUpdated for 2026

WooCommerce Product Variations Not Showing

IN
Reviewed by the Instant Nerds Team|Last updated: June 2026
Quick summary

When a variable product shows an empty dropdown, a missing option, or an Add to Cart button that will not enable, the cause is one of a small set of things, and most are configuration rather than a real bug. An empty selector usually means the attribute is not marked Used for variations. A single missing option usually means that variation has no price, because WooCommerce hides variations without a price. A button that stays disabled after a full selection means the variation script is not running. And a product with 30 or more variations behaves differently by design. This page separates each cause, points to the exact setting or fix, and covers the short-lived WooCommerce 10.5 button change that was reverted in 10.5.2.

Key facts at a glance

WooCommerce variation display in 2026

Last updated

Empty dropdown, cause number one
The attribute is not marked Used for variations. Without that checkbox ticked and saved, WooCommerce treats the attribute as informational and never builds a selectable dropdown from it. The product must also be set to Variable and have variations created.
Why a single variation hides
WooCommerce documents it directly: variations without prices do not show in your store. Regular Price is a required field on each variation. A variation also hides if it is not Enabled or is out of stock with backorders off.
The greyed-out button is usually normal
Add to Cart is intentionally disabled until a complete, valid, in-stock variation is selected. It is only a fault if it stays disabled after a full valid selection, which points at the variation script not running.
The 30-variation threshold
By default WooCommerce loads up to 30 variations dynamically, set by woocommerce_ajax_variation_threshold. At 30 or more, dropdowns go static and show impossible combinations until full selection. Raise the threshold or cut variations.
The early-2026 quirk
WooCommerce 10.5 kept the button disabled until add-to-cart-variation.js loaded, then reverted it in 10.5.2 on February 18, 2026. It only hit stores that dequeued that script on the classic template. Update to 10.5.2 or later.
The silent trap
Converting a product from Simple to Variable, or certain bulk edits, can quietly uncheck Used for variations on attributes that look fully configured. Combined with the price rule, a product can have visible attributes and saved variations in the admin and still show an empty selector on the front end, because the link between attribute and variation, or the price that makes a variation visible, dropped without warning.

Source: the WooCommerce variable product documentation, the WooCommerce developer advisory on the 10.5 Add to Cart button change, the WooCommerce documentation on the dynamic variation dropdown limit, the WooCommerce GitHub issue tracker, and our hands-on store repairs. Get a quote in 60 seconds →

How WooCommerce variations are built

A variable product is built from two separate pieces that people often conflate: attributes and variations. An attribute is a characteristic like Size or Color along with its values, such as Small, Medium, Large. A variation is a specific purchasable combination of those values, like Medium and Blue, with its own price, stock, and SKU. The crucial link between them is one checkbox. On each attribute there is a Used for variations option, and only when it is ticked does WooCommerce treat that attribute as something a customer selects to build a variation. Without it, the attribute is just descriptive text and powers no dropdown.

Once attributes are marked for variations and saved, you create the variations themselves, either generating every combination or adding them by hand, and give each one the data it needs. WooCommerce is strict about what makes a variation visible. A variation with no Regular Price does not show on the store front at all, by design. A variation that is not Enabled, or that is out of stock with backorders disabled, also drops off the selectable list. So a product can have a complete-looking grid of variations in the admin while the front end shows fewer options or none, purely because some variations are missing the data that makes them purchasable.

On the front end, a small script reads the variation data and drives the dropdowns: it enables and disables options as the customer chooses, and it tells the Add to Cart button when a valid, in-stock combination has been selected. If that script does not load, the dropdowns become inert and the button never enables. And once a product crosses 30 variations, WooCommerce changes that behavior on purpose, loading variations by AJAX and showing static dropdowns instead of dynamically filtered ones. Knowing these three layers, the attribute link, the per-variation data, and the front-end script, is what makes diagnosis fast.

The three layers a variation depends on
  • The link: the attribute must have Used for variations checked, so it powers a dropdown.
  • The data: each variation needs a price, must be Enabled, and must be in stock or allow backorders to be visible.
  • The script: the front-end variation script must load to drive the dropdowns and enable the button.

Which symptom matches yours

Find the row that matches what shoppers see. Each one points to a different layer of the variation setup.

SymptomMost likely root cause
The variation dropdown is completely empty with no options to chooseThe attribute is not marked Used for variations, the product is not set to Variable, or no variations were created. Converting Simple to Variable can also silently uncheck Used for variations.
Most options show but a specific variation is missingThat variation is not purchasable. The most common reason is a blank Regular Price, since variations without a price do not show. It can also be not Enabled or out of stock with backorders off.
Add to Cart is greyed out before any option is selectedNormal and intended. WooCommerce disables the button until a complete, valid, in-stock variation is chosen. It is only a problem if it stays disabled after a full valid selection.
Add to Cart stays disabled even after selecting every optionThe variation JavaScript is not running, so the dropdowns cannot tell the button a valid variation was chosen. A plugin or theme conflict, a dequeued script, or a caching issue.
A product with many options lets shoppers pick combinations that then say unavailableThe product has 30 or more variations, so WooCommerce switched to static dropdowns that show every option and only validate after full selection. Raise the variation threshold or reduce variations.
Variations look correct in the admin but are wrong on the live pageA rendering-layer problem: a page or CDN cache serving a stale version, a theme custom single-product template, or a script conflict. Clear caches and run a conflict test.
Button behavior changed right after a WooCommerce 10.5 updateThe short-lived 10.5 change that kept the button disabled until the variation script loaded, reverted in 10.5.2 on February 18, 2026. Update to 10.5.2 or later.

The five root causes

Almost every variation display problem is one of these five. The first two are configuration, the next two are behavior and rendering, and the last is the 2026 version quirk.

1. The attribute is not marked Used for variations

This is the number one cause of an empty dropdown. In the product Attributes tab, every attribute a customer should choose from must have the Used for variations checkbox ticked and the attributes saved. Without it, WooCommerce keeps the attribute as descriptive information and never builds a selector from it, and it will not even let you create variations from that attribute. The trap that catches experienced store owners is that converting a product from Simple to Variable, and some bulk edits, can silently uncheck this box on attributes that were previously configured, a behavior documented in the WooCommerce issue tracker. So even on a product that worked before, re-confirm the box is still checked.

2. A variation has no price, or is disabled or out of stock

When the dropdown shows some options but a specific combination is missing, that variation is not purchasable. The WooCommerce documentation is explicit that variations without prices do not show in your store, and Regular Price is a required field on each variation for exactly this reason. A variation created in a hurry and left without a price simply vanishes from the front end. The same disappearance happens when a variation is unchecked from Enabled, or when it is out of stock and the product does not allow backorders. The fix is per variation: open the Variations tab, expand each missing combination, and confirm it has a price, is Enabled, and has a valid stock status.

3. The product has 30 or more variations

WooCommerce changes its dropdown behavior at scale, on purpose. By default it loads up to 30 variations on the front end for dynamic dropdowns, a limit set by the woocommerce_ajax_variation_threshold filter. Below that, the dropdowns are smart: choosing one option disables the combinations that do not exist. At 30 or more variations, WooCommerce switches to static dropdowns that show every option, including impossible combinations, and only loads and validates the chosen variation by AJAX after all attributes are selected. To a shopper this looks broken, because they can pick a combination that then reports as unavailable. The fix is to raise the threshold above your variation count with a small filter, or to genuinely reduce the number of variations.

4. The front-end script is blocked, or caching is serving stale output

When the data is right in the admin but the live page is wrong, the problem is on the rendering side. The variation dropdowns are driven by a script, add-to-cart-variation.js, and if a plugin or theme conflict stops it loading, the dropdowns go inert and the Add to Cart button never enables even after a full selection. The other common culprit is caching. A page cache, a CDN, or even the browser can serve a stale version of the product page or its scripts, so a correct fix does not appear. Always clear every caching layer and test in an incognito window, then run a conflict test with a default theme if the script still is not behaving, since a custom single-product template can also fail to output the variation form.

5. The short-lived WooCommerce 10.5 Add to Cart change

If variation button behavior changed right after an early-2026 update, this is likely why. WooCommerce 10.5 changed variable product pages to keep the Add to Cart button disabled until the variation script had fully loaded, intended to stop shoppers on slow connections from submitting before the selection logic was ready. It caused compatibility problems with some extensions and was reverted in WooCommerce 10.5.2, released February 18, 2026. The change only affected stores that had dequeued the default add-to-cart-variation.js script while still using the unmodified classic template. Stores on the newer Add to Cart with Options block were unaffected. If you are on 10.5.0 or 10.5.1, updating to 10.5.2 or later restores the original behavior with no other action needed.

DIY vs hand it off

Most variation problems are a settings fix you can do yourself. A few involve code, conflicts, or a catalog-wide pattern that is faster to hand off. If the left column matches you can likely fix this. If the right column matches, get help.

Realistic on your own

  • One product has an empty dropdown and you can check Used for variations
  • A specific variation is missing and just needs a price set
  • Clearing the cache and testing in incognito resolves it
  • You only need to update WooCommerce to 10.5.2 or later
  • You are comfortable adding one small filter to functions.php
  • The product simply has too many variations and you can trim them

Hand it off, save the time

  • Variations are missing across many products, not just one
  • A plugin or theme conflict is blocking the variation script
  • A custom single-product template is not outputting the variation form
  • Variations broke after a migration or a bulk import
  • You have thousands of variations and need a sane threshold strategy
  • You are not comfortable editing theme code on a live store

How to diagnose it

Walk the three layers in order: the link, the data, then the rendering. Most cases resolve in the first two steps.

1
Confirm the product type and the attribute link

Edit the product. Confirm Product data is set to Variable product. In the Attributes tab, confirm each selectable attribute has values entered, the Used for variations box checked, and that you clicked Save attributes. If this box was unchecked, that alone explains an empty dropdown.

2
Check each variation has a price and is enabled

Open the Variations tab and expand the variations. Confirm every one that should appear has a Regular Price, since variations without a price do not show. Confirm each is Enabled and has a valid stock status. A missing single option is almost always a missing price here.

3
Count the variations

If the product has 30 or more variations, the dropdowns switch to static behavior that shows impossible combinations until full selection. That is the threshold, not a bug. Note the count so you know whether to apply the threshold filter.

4
Clear caches and test in incognito

If the admin data looks correct but the live page is wrong, clear the page cache, the CDN cache, and the browser cache, then load the product in an incognito window. Caching serving stale output is one of the most common reasons a correct fix does not appear.

5
Open the browser console and check the script

On the product page, press F12, open the Console, and reload. Look for JavaScript errors and confirm add-to-cart-variation.js is loading. If the button stays disabled after a full selection, the script is the suspect, often a plugin or theme conflict or a dequeued script.

6
Run a conflict test and check the WooCommerce version

Switch to a default theme on staging and deactivate non-essential plugins, then retest. If it works, reintroduce them one at a time to find the conflict. Also confirm your WooCommerce version: 10.5.0 and 10.5.1 had the short-lived button change, fixed in 10.5.2.

How to fix it

Each branch stands alone. Pick the one your diagnosis pointed to.

If the dropdown is empty: fix the attribute link

Edit the product and confirm Product data is set to Variable product. In the Attributes tab, for each attribute customers should choose, enter the values, tick Used for variations, and click Save attributes. Then go to the Variations tab and generate variations from all attributes, or add them manually.

If this product was recently converted from Simple to Variable, specifically re-check the Used for variations box, because that conversion can silently uncheck it. Save, then clear caches and reload the live page.

If a specific variation is missing: give it the data it needs

Open the Variations tab and expand the missing combination. Set its Regular Price, which is required and is the most common reason a variation hides. Confirm the Enabled checkbox is ticked, and set a stock status that allows purchase, either In stock or out of stock with backorders allowed if that fits your store. Save and reload the front end.

If the product has 30 or more variations: raise the threshold

Add a small filter to your theme functions file or a site-specific plugin to raise the dynamic-dropdown limit above your variation count, so the dropdowns stay smart and disable impossible combinations.

// Raise the dynamic variation dropdown limit above your variation count
add_filter( 'woocommerce_ajax_variation_threshold', function( $qty, $product ) {
    return 100; // set higher than the most variations any product has
}, 10, 2 );

Set the number comfortably above your largest variable product. Be aware that very high thresholds load more data on the product page, so if a product has many hundreds of variations, reducing the variation count is the better long-term answer.

If the live page is wrong: clear caches and fix the conflict

Clear the page cache, the CDN cache, and the browser cache, then test in an incognito window. If the dropdowns are still inert or the button will not enable after a full selection, run a conflict test: switch to a default theme and deactivate non-essential plugins on staging, confirm variations work, then re-enable one at a time to find the offender.

Confirm add-to-cart-variation.js is loading on the product page. If a plugin or theme dequeued it, restore it. If a custom single-product template is not outputting the variation form, align the template with the current WooCommerce template, or move the product to the Add to Cart with Options block.

If it broke after a 10.5 update: update WooCommerce

Update WooCommerce to 10.5.2 or later, which reverted the short-lived change that kept the Add to Cart button disabled until the variation script loaded. No other action is needed once you are on 10.5.2 or above. If you cannot update immediately and you had dequeued the default variation script, re-enqueue it as an interim measure so the button enables normally.

Variations missing across many products, or a script conflict you cannot pin down?

Let us fix it in 2 hours →

A real variations debug session

A composite from the WooCommerce variation repairs we run most weeks, with identifying details removed.

Scenario

An apparel store reported that a popular t-shirt suddenly showed an empty Size and Color selector, and a separate hoodie product with many color and size combinations let shoppers pick options that then said the variation was unavailable. Both had been working. The store had recently done a bulk edit to update prices across the catalog.

Diagnosis

On the t-shirt, the Attributes tab showed Size and Color present but Used for variations had been unchecked during the product edits, so the attributes powered no dropdown. Two of its variations had also lost their Regular Price in the bulk update, which would have hidden them even after the link was fixed. The hoodie had 36 variations, over the default limit of 30, so WooCommerce had switched it to static dropdowns that displayed impossible size-and-color combinations.

Resolution

We re-checked Used for variations on both attributes, saved, and restored the Regular Price on the two stripped variations, which brought the t-shirt selector back in full. For the hoodie we added a woocommerce_ajax_variation_threshold filter set to 100, so its dropdowns became dynamic again and disabled impossible combinations. We cleared the page and CDN caches and verified both products end to end in an incognito window. Shoppers could select and buy every valid combination.

Total elapsed
Both products selling again inside the 2-hour window, with the threshold filter preventing the static-dropdown problem across the catalog.

When to stop and hand it off

Four situations where DIY costs more than help. First, variations are missing across many products rather than one, which usually means a bulk-edit or import problem that needs a systematic fix, not product-by-product clicking. Second, the variation script is being blocked by a plugin or theme conflict you cannot isolate. Third, a custom single-product template is not outputting the variation form, which is a code fix on the theme. Fourth, you run thousands of variations and need a threshold and performance strategy rather than one filter. We find the broken layer fast, fix the attribute links, restore the variation data, resolve script and template conflicts, and set a sane threshold across the catalog. Flat $49 to $149, done in two hours when scope fits, money back if we cannot.

Get a quote in 60 seconds

WooCommerce variations FAQ

My variable product shows no options in the dropdown at all. Where did the variations go?

An empty selector almost always means the attribute is not actually linked to the variations. In the product Attributes tab, every attribute you want customers to choose from must have the Used for variations checkbox checked and saved. Without it, WooCommerce treats the attribute as informational only and never builds a selectable dropdown from it. The second most common cause is that no variations were ever created, or were created and then lost. After checking Used for variations and saving attributes, open the Variations tab and confirm actual variations exist there. A subtle trap is that converting a product from Simple to Variable, or some bulk edits, can silently uncheck Used for variations on attributes that looked configured, so re-confirm that box is still ticked.

The dropdown shows options but one or two variations are missing. Why?

Individual variations disappear when they are not purchasable, and the single biggest reason is price. WooCommerce documentation states plainly that variations without prices do not show in your store. If you created a variation but left its Regular Price blank, that combination silently vanishes from the front end even though it exists in the admin. Open the Variations tab, expand each missing combination, and set the Regular Price, which is a required field. The other reasons a specific variation hides are that it is not Enabled, or it is out of stock with backorders turned off. Check the Enabled checkbox and the stock status on each variation that is not appearing.

Why is the Add to Cart button greyed out on my variable product?

On a variable product, a greyed-out Add to Cart button before the customer has chosen options is normal and intended. WooCommerce disables it until a complete, valid, in-stock variation is selected, then enables it. If you click it early, you get a prompt to select attributes first. So a disabled button on page load is not a bug by itself. It only becomes a problem if the button stays disabled even after a valid combination is fully selected, which points at the variation JavaScript not running. In that case, check the browser console for errors and confirm the variation script is loading, because without it the dropdowns cannot tell the button a valid variation was chosen.

I have a product with lots of variations and the dropdowns behave strangely. Is there a limit?

Yes. By default WooCommerce only loads up to 30 variations on the front end for dynamic dropdowns, controlled by the woocommerce_ajax_variation_threshold value. Below 30, the dropdowns are smart: choosing one option automatically disables combinations that do not exist. At 30 or more variations, WooCommerce switches to static dropdowns that show every option, including impossible combinations, and only checks availability after the customer has selected all attributes, loading the chosen variation by AJAX. So a large product can look broken, letting shoppers pick a combination that then reports as unavailable. The fix is to raise the threshold above your variation count with a small filter, or to reduce the number of variations on the product.

Variations work in the admin but not on the live product page. What is different?

When the data is correct in the admin but the front end is wrong, the cause is almost always on the rendering side: caching, a theme template, or a script conflict. Caching is the first suspect, because both page caches and browser caches can serve a stale version of the product page or its scripts, so a fix you just made does not appear. Clear every caching layer, including any CDN, and test in an incognito window. If it still fails, the variation script that powers the dropdowns may be blocked by a plugin or theme conflict, or the theme may use a custom single-product template that does not output the variation form correctly. A conflict test with a default theme isolates which it is.

My variations broke right after a WooCommerce update in early 2026. Is that a known issue?

There was a short-lived change worth knowing about. WooCommerce 10.5 changed the variable product page to keep the Add to Cart button disabled until the variation script had fully loaded, to stop shoppers on slow connections from clicking before the selection logic was ready. That change caused problems with some extensions and was reverted in WooCommerce 10.5.2, released February 18, 2026. It only affected stores that had dequeued the default add-to-cart-variation.js script while still using the unmodified classic template; stores on the newer Add to Cart with Options block were not affected. If you are on 10.5.0 or 10.5.1 and saw button behavior change, update to 10.5.2 or later and the original behavior returns with no action needed.

Do the new product blocks change how variations work?

They can change how the variation selector is rendered, which matters when you are debugging. The classic single-product template outputs the variation form through a specific template file and the add-to-cart-variation.js script. The newer block-based approach uses an Add to Cart with Options block instead. The two render the selector differently, so a customization or a plugin written for the classic template may not apply to the block, and vice versa. When variations show on one product but not another, or stopped after a template change, check whether the affected products use the classic template or the block, because the fix differs depending on which one is rendering the selector.

How do I rebuild variations cleanly if they are a mess?

Work top down. First confirm the product type is set to Variable product. Second, in the Attributes tab, make sure each attribute used for choosing has its values entered, the Used for variations box checked, and attributes saved. Third, in the Variations tab, either generate variations from all attributes or add them manually, then give every variation a Regular Price, set it to Enabled, and set its stock status. Save. Then clear your caches and test the live page in incognito. If you have more than 30 variations, add the threshold filter so the dropdowns stay dynamic. Doing it in that order avoids the common trap of creating variations before the attribute is actually marked for variations, which produces variations that exist but cannot be selected.

Sources and further reading

Every WooCommerce-specific claim on this page traces back to WooCommerce documentation, the WooCommerce developer blog, or the WooCommerce GitHub issue tracker.

Why we fix variation problems faster than a support ticket

2h

2-Hour Guarantee

Fixed in 2 hours or your money back. A product nobody can add to cart is a product that earns nothing.

$49

Flat Rate $49 to $149

No hourly billing. We fix the attribute links, the variation data, and the script conflicts the first time.

100%

Money-Back Guarantee

Cannot fix it? You do not pay. Zero risk to you.

Get your variable products selling again

We fix WooCommerce variation problems every week, from empty dropdowns to the 30-variation threshold to script conflicts. Flat $49 to $149, done in 2 hours when scope fits, money back if we cannot.

Fix My Variations Now