XStore Swatches Filter widgets causing huge WooCommerce layered nav transients and server overload

This topic has 2 replies, 2 voices, and was last updated 5 days, 1 hour ago ago by Andrew Mitchell

  • Avatar: Elgaroe
    Elgaroe
    Participant
    September 1, 2026 at 08:39

    Hello,

    We are experiencing a serious performance issue on a WooCommerce store using XStore and the XStore “Swatches Filter” widgets.

    The shop sidebar was using three XStore Swatches Filter widgets for the following WooCommerce attributes:

    pa_color
    pa_talla (size)
    pa_copa (cup size)

    The widgets were configured with query type AND, with product counts, search and AJAX preload disabled.

    We noticed that WooCommerce’s wc_layered_nav_counts transients associated with these filters were continuously growing in the wp_options table (qtd_options in our installation).

    During normal monitoring, we observed them progressively increasing over several days. Immediately before the server became severely overloaded, their sizes were:

    _transient_wc_layered_nav_counts_pa_copa: 8.58 MB
    _transient_wc_layered_nav_counts_pa_talla: 4.92 MB
    _transient_wc_layered_nav_counts_pa_color: 4.89 MB

    All of them had autoload = off.

    At the same time, a simple query measuring these transients increased from approximately 0.81 seconds under normal conditions to 5.46 seconds during the performance problem.

    The problem became severe enough that:

    The WooCommerce store became extremely slow.
    WordPress Admin became extremely slow/unavailable.
    The server’s real RAM usage increased to approximately 7–8 GB out of 9 GB.
    Other websites hosted on the same server also became slow.
    Eventually the WooCommerce website started returning 502 Bad Gateway errors.

    We deleted ONLY the following WooCommerce layered navigation transients and their timeout entries:

    pa_color
    pa_talla
    pa_copa

    Immediately after deleting them, the server and all websites became responsive again.

    WooCommerce recreated the transients almost immediately, but initially they were only approximately 0.01 MB each, and the same SQL query then completed in approximately 0.63 seconds.

    We then removed the three XStore Swatches Filter widgets from the shop sidebar.

    After removing the widgets and navigating through the website, the transients remain extremely small:

    pa_talla: 0.02 MB
    pa_color: 0.02 MB
    pa_copa: 0.01 MB

    The SQL query now completes in approximately 0.24 seconds, and the server/websites are running normally again.

    We have therefore temporarily disabled these XStore filter widgets because we cannot risk this WooCommerce store affecting every other website hosted on the server.

    The site is currently using:

    WooCommerce: 11.0.1
    XStore: 9.7.7
    XStore Core: updated to the latest compatible version.

    Could you please investigate whether there is a known issue with the XStore Swatches Filter widget and WooCommerce wc_layered_nav_counts, particularly with WooCommerce 11.x?

    We would specifically like to know:

    Why these XStore widgets can cause the layered navigation count transients to grow to several MB.
    Whether this is a known compatibility/performance issue.
    Whether there is a fix or patch available.
    Whether there is a recommended XStore filtering method that allows us to filter by Color, Size and Cup Size without generating these extremely large transients.
    Whether the XStore filter widgets are fully compatible with WooCommerce 11.0.1.

    We can provide screenshots showing the transient sizes, SQL execution times, server RAM/CPU usage and the 502 errors if required.

    Thank you.

    Files is visible for topic creator and
    support staff only.
    1 Answer
    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    September 2, 2026 at 14:24

    Hello, Elgaroe,

    Thank you for contacting our support and for providing such a thorough and detailed breakdown of the issue, along with server specs and SQL query results.

    The standard WooCommerce layered navigation widgets calculate product counts based on attribute combinations and cache these results using transients (_transient_wc_layered_nav_counts_*). On stores with a large catalog, multiple complex attributes (like color, size, cup size), or frequent AJAX filtering requests, WooCommerce generates a vast matrix of permutation transient rows. Over time, this can lead to database bloat in wp_options and high CPU/RAM usage.

    To help us investigate and resolve this for your setup, please try the following steps:

    Clear WooCommerce Transients: Go to WooCommerce > Status > Tools and run Clear WooCommerce transients as well as Clear expired transients.

    Alternative Filtering Options: Consider testing the default XStore Smart Product Filters / AJAX Filters or native WooCommerce Filter by Attribute widgets to check if the transient accumulation persists.

    Staging / Access Verification: If you would like our development team to inspect the issue directly on your site, please ensure that the provided staging or admin access details in the private credentials area are active so we can run tests without affecting your live site.

    Best Regards,
    8Theme’s Team

  • Viewing 2 results - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.Log in/Sign up

We're using our own and third-party cookies to improve your experience and our website. Keep on browsing to accept our cookie policy.