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:reindexandbin/magento cache:flushafter 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:
- Category configuration (anchor setting)
- Attribute settings (filterable flag)
- Search engine (OpenSearch/Elasticsearch indexing)
- 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:
- Go to Catalog > Categories in the Magento admin panel
- Select the affected category
- Open Display Settings
- Set Is Anchor to Yes
- 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:
- Go to Stores > Attributes > Product
- Select the attribute (e.g., Color, Size, Brand)
- Under Storefront Properties, set:
- Use in Layered Navigation → "Filterable (with results)" or "Filterable (no results)"
- Use in Search Results Layered Navigation → Yes
- 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:
- Go to Stores > Configuration > Catalog > Catalog > Catalog Search
- Confirm Search Engine is set to OpenSearch (recommended) or Elasticsearch 7
- 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:
- Assigned to an anchor category
- 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:
- Open a product in the affected category
- Verify all filterable attributes have values assigned
- 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:
- Go to System > Cache Management
- Select all cache types → Flush Magento Cache
- Go to System > Index Management → Reindex 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:
- Switch to Developer Mode:
bin/magento deploy:mode:set developer - Check
var/log/exception.logandvar/log/system.logfor filter errors - Disable suspect extensions one by one:
bin/magento module:disable Vendor_ModuleName
bin/magento setup:upgrade
bin/magento cache:flush
- 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.xmlmust include thecatalog.leftnavblock
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.