Magento 2 Layered Navigation Not Showing: Causes and Fixes

Magento 2 Layered Navigation Not Showing: Causes and Fixes

[Updated: March 13, 2026]

Your layered navigation filters vanished from category pages and customers cannot narrow down products. This breaks the shopping experience and tanks conversions.

This guide covers 7 proven fixes for Magento 2 layered navigation not showing, from basic configuration errors to OpenSearch compatibility issues in Magento 2.4.8.

Key Takeaways

  • Missing layered navigation is most often caused by categories not set as anchor or attributes not marked as filterable
  • OpenSearch/Elasticsearch misconfiguration is the top cause in Magento 2.4.6+ stores after upgrading
  • Flat Catalog is deprecated since Magento 2.3 and should not be enabled as a fix
  • Always run bin/magento indexer:reindex and bin/magento cache:flush after any configuration change
  • Magento 2.4.5 has a known bug where "Display Out of Stock Products" breaks layered navigation filters

What is Magento 2 Layered Navigation?

Magento 2 layered navigation = sidebar filters on category pages that let customers narrow products by price, color, size, brand, or custom attributes. It reduces browsing friction and drives faster purchase decisions.

Perfect for: stores with large catalogs, multi-attribute products, fashion/electronics retailers

Not ideal for: stores with fewer than 10 products per category, single-product landing pages

Layered navigation appears on category pages when a category is configured as an "anchor" category. Magento queries the search engine (OpenSearch or Elasticsearch) to build filter options based on product attributes assigned to that category.

When any part of this chain breaks, the filters disappear.

Why Layered Navigation Stops Showing

The filter sidebar depends on four systems working together:

  1. Category configuration (anchor setting)
  2. Attribute settings (filterable flag)
  3. Search engine (OpenSearch/Elasticsearch indexing)
  4. Cache and indexes (data freshness)

A failure in any one of these removes the filters from the frontend. The sections below walk through each cause with exact steps to fix it.

How to Fix Magento 2 Layered Navigation Not Showing

1. Set Categories as Anchor Categories

The most common cause. Magento only displays layered navigation on categories marked as "anchor." Non-anchor categories show products but hide all filter options.

Fix:

  1. Go to Catalog > Categories in the Magento admin panel
  2. Select the affected category
  3. Open Display Settings
  4. Set Is Anchor to Yes
  5. Save the category

CLI verification:

bin/magento indexer:reindex catalog_category_product
bin/magento cache:flush

Parent categories set as anchor pass the setting down to subcategories. Check parent categories first if multiple subcategories are affected.

2. Configure Attribute Filterable Settings

Attributes must be marked as filterable to appear in layered navigation. New or imported attributes default to "No" for this setting.

Fix:

  1. Go to Stores > Attributes > Product
  2. Select the attribute (e.g., Color, Size, Brand)
  3. Under Storefront Properties, set:
    • Use in Layered Navigation → "Filterable (with results)" or "Filterable (no results)"
    • Use in Search Results Layered NavigationYes
  4. Save the attribute

Important: Only Dropdown, Multiple Select, Yes/No, and Price input types support filtering. Text fields, text areas, and other input types cannot be used in layered navigation.

After saving, reindex and flush cache:

bin/magento indexer:reindex
bin/magento cache:flush

Review your full product attribute configuration if multiple attributes are missing from filters.

3. Check Search Engine Configuration

Starting with Magento 2.4.0, layered navigation relies on a search engine (OpenSearch or Elasticsearch) instead of MySQL queries. If the search engine is misconfigured, down, or incompatible, filters disappear without any visible error.

Verify your search engine is running:

# For OpenSearch
curl -X GET "localhost:9200" 

# Check cluster health
curl -X GET "localhost:9200/_cluster/health?pretty"

Verify Magento configuration:

  1. Go to Stores > Configuration > Catalog > Catalog > Catalog Search
  2. Confirm Search Engine is set to OpenSearch (recommended) or Elasticsearch 7
  3. Verify Server Hostname and Server Port match your installation

Version compatibility (Magento 2.4.8):

Search Engine Status Notes
OpenSearch 2.x Recommended Default for new installations
OpenSearch 3.x Supported For 2.4.8-p4+
Elasticsearch 8.x Deprecated Shows deprecation warning in admin
Elasticsearch 7.x Deprecated End of upstream support

Elasticsearch is deprecated in Magento 2.4.8. If you upgraded and still point to an old Elasticsearch instance, migrate to OpenSearch. Read the full Magento Elasticsearch tutorial for migration steps.

After fixing search engine config:

bin/magento indexer:reindex catalogsearch_fulltext
bin/magento cache:flush

4. Assign Products With Correct Attributes

Products need two things to appear in layered navigation:

  1. Assigned to an anchor category
  2. Have values set for filterable attributes

Products without attribute values (e.g., Color left blank) will not generate filter options. If only one product in a category has the "Blue" value for Color, the filter still shows. But if zero products have values, the entire attribute filter disappears.

Quick check:

  1. Open a product in the affected category
  2. Verify all filterable attributes have values assigned
  3. Check that the product is assigned to the correct category under Categories tab

For configurable products, both the parent and child (simple) products must have attribute values set.

5. Clear Cache and Reindex

Configuration changes do not take effect until the cache is flushed and indexes are rebuilt. This applies to every fix listed above.

Full reset via CLI:

# Reindex all indexes
bin/magento indexer:reindex

# Flush all cache types
bin/magento cache:flush

# If issues persist, clean generated files
rm -rf generated/code/* generated/metadata/*
bin/magento setup:upgrade
bin/magento setup:di:compile

Via Admin Panel:

  1. Go to System > Cache Management
  2. Select all cache types → Flush Magento Cache
  3. Go to System > Index ManagementReindex All

If you use Varnish or a CDN, purge those caches as well. Stale full page cache is a frequent cause of "I changed the setting but nothing happened."

6. Resolve Third-Party Extension Conflicts

Third-party extensions that modify catalog search, product filtering, or navigation can override core layered navigation behavior. Popular layered navigation extensions (Amasty, Mirasvit, Mageplaza) replace the default rendering. If misconfigured, they break it.

Diagnostic steps:

  1. Switch to Developer Mode: bin/magento deploy:mode:set developer
  2. Check var/log/exception.log and var/log/system.log for filter errors
  3. Disable suspect extensions one by one:
bin/magento module:disable Vendor_ModuleName
bin/magento setup:upgrade
bin/magento cache:flush
  1. If layered navigation reappears after disabling a module, that extension is the cause

Common culprits:

  • Layered navigation extensions with AJAX filtering
  • Search extensions that replace the catalog search adapter
  • Product sorting/filtering extensions
  • SEO extensions that modify category URLs

7. Fix Theme Compatibility Issues

Custom Magento themes may not include the layered navigation template blocks. This is common with themes that were built for an older Magento version and not updated.

Test with the default theme:

# Temporarily switch to Luma
bin/magento config:set design/theme/theme_id 2
bin/magento cache:flush

If layered navigation appears with Luma, the issue is in your custom theme. Check these template files:

  • Magento_LayeredNavigation/templates/layer/view.phtml
  • Magento_Catalog/templates/product/list.phtml
  • Layout XML: catalog_category_view.xml must include the catalog.leftnav block

For Hyvä themes, layered navigation uses Alpine.js components instead of Knockout.js. Ensure the Hyvä compatibility module for layered navigation is installed.

Known Bugs in Specific Magento Versions

Magento 2.4.5: Out-of-Stock Products Bug

When Display Out of Stock Products is set to Yes in Stores > Configuration > Catalog > Inventory > Stock Options, layered navigation shows incorrect filter counts or hides filters entirely.

This is a confirmed bug (GitHub issues #35197, #36312). The Elasticsearch adapter miscounts products when out-of-stock items are included.

Workarounds:

  • Set Display Out of Stock Products to No (if acceptable for your store)
  • Apply the community patch from Plumrocket's fix module
  • Upgrade to a newer Magento version with the latest patches applied

Magento 2.4.6+: Elasticsearch Deprecation

Stores that upgrade to 2.4.6 or later without migrating from Elasticsearch to OpenSearch may experience degraded layered navigation. The admin panel shows a deprecation notice for Elasticsearch 8.

Fix: Migrate to OpenSearch 2.x. The migration is straightforward since OpenSearch is a fork of Elasticsearch 7.10.2 and uses the same API format.

Best Practices for Layered Navigation

Keep filter counts meaningful. Remove filterable attributes that produce zero results in most categories. Filters with one option that does not reduce results add no value.

Use OpenSearch 2.x or newer. It is the supported and recommended search engine for all current Magento versions. Elasticsearch support ends with 2.4.x.

Reindex on schedule. Set indexers to "Update on Schedule" mode in production. Manual reindexing during business hours can lock tables and cause temporary filter outages.

Test after every upgrade. Layered navigation is one of the first features to break during Magento version upgrades. Include filter verification in your upgrade checklist.

Monitor server resources. OpenSearch needs adequate heap memory (allocate at least half of available system RAM, with 2 to 4 GB recommended for most Magento stores). Under-resourced search engines return incomplete filter data. Proper managed Magento hosting ensures your search engine has dedicated resources.

FAQ

Why are my layered navigation filters not showing on category pages?

The most common cause is that the category is not set as an anchor category. Go to Catalog > Categories, select the category, and set Is Anchor to Yes under Display Settings. Then reindex and flush cache.

How do I make an attribute appear in layered navigation?

Go to Stores > Attributes > Product, select the attribute, and under Storefront Properties set Use in Layered Navigation to Filterable (with results). Only Dropdown, Multiple Select, Yes/No, and Price input types support filtering.

Why does layered navigation work on some categories but not others?

Each category has its own anchor setting. Check that all affected categories have Is Anchor set to Yes. Also verify that products in those categories have values assigned for filterable attributes.

Does layered navigation require Elasticsearch or OpenSearch?

Yes. Since Magento 2.4.0, layered navigation requires a search engine. OpenSearch 2.x is recommended for Magento 2.4.8. Elasticsearch 7 and 8 are deprecated.

How do I fix layered navigation after a Magento upgrade?

Run bin/magento indexer:reindex followed by bin/magento cache:flush. If filters still do not appear, verify your search engine configuration in Stores > Configuration > Catalog > Catalog Search. Upgrades can reset these settings.

Why do filter counts show wrong numbers?

This is a known issue in Magento 2.4.5 when Display Out of Stock Products is enabled. Upgrade to a newer version with the latest patches or apply the community patch to resolve incorrect filter counts.

Can I use layered navigation with a custom theme?

Yes, but the theme must include the layered navigation template blocks. Test with the Luma theme first. If filters appear with Luma but not your custom theme, check your theme's layout XML for the catalog.leftnav block.

How do I add custom filters to layered navigation?

Create a new product attribute with input type Dropdown or Multiple Select. Set Use in Layered Navigation to Filterable (with results) under Storefront Properties. Assign values to your products, then reindex.

CEO & Co-Founder

Raphael Thiel co-founded MGT-Commerce in 2011 together with Stefan Wieczorek and has built it into a leading Magento hosting provider serving 5,000+ customers on AWS. With 25+ years in e-commerce and cloud infrastructure, he oversees hosting architecture for enterprise clients. He also co-founded CloudPanel, an open-source server management platform.


Get the fastest Magento Hosting! Get Started