Skip to main content

v2.8.0 — Layered-nav controls and OOS rules engine

· 4 min read
Magento + commerce specialists

The eighth point release in v2 — and arguably the most impactful pair of features yet.

After v2.7's dashboard widget made everything visible at a glance, the obvious next question was: "great, you've shown me the bleed — what's the fix?" v2.8 ships two of the highest-impact answers.

Layered Navigation SEO controls

The single biggest crawl-budget sink on any catalog of meaningful size. With ~10 filterable attributes, layered nav can produce hundreds of thousands of crawlable URL variants from filter combinations alone — and Google will pick a tiny sample, ignore the rest, and your important URLs lose crawl priority.

The fix is one observer:

// Byte8\SeoSuite\Observer\ApplyLayeredNavRobotsObserver
public function execute(Observer $observer): void
{
if ($this->request->getFullActionName() !== 'catalog_category_view') return;
if (!$this->resolver->shouldNoindex($storeId, $this->request->getQueryValue())) return;
$this->pageConfig->setRobots('NOINDEX,FOLLOW');
}

Two modes:

  • noindex_any (recommended) — any non-ignored query param triggers noindex. Pair with Magento's built-in category canonical and you have full coverage with zero per-attribute config
  • noindex_unlisted — only filters NOT in your allow-list trigger noindex. Use when you want certain attribute filters (e.g. ?color=red) to stay indexable as separate landing pages

The default ignored param list covers p, product_list_*, utm_*, gclid, fbclid, msclkid — so out of the box, only real filters trigger the noindex.

Full docs

Out-of-Stock Rules Engine

Brief stockouts aren't an SEO problem. Two-month stockouts are. The Rules Engine tracks days-OOS per product per store and applies one of three configurable actions once a threshold is crossed:

  • noindex,follow (default) — auto-reverts when stock returns
  • redirect — 301 product URL → primary category URL
  • disable — sets product status to disabled

A daily cron does the work:

  1. Insert a tracking row for newly OOS products
  2. Delete tracking rows for restocked products (and revert noindex if applied)
  3. Apply the configured action to rows past the threshold

Manual override per row protects intentional stockouts (pre-orders, seasonal staples). Everything visible in a new admin grid at Marketing → SEO Suite → Out-of-Stock Tracking with a Run-Now button for one-shot triggers.

Full docs

How they pair

The Index Budget Audit detects both problems — but as of v2.7 it could only recommend fixes. v2.8's out_of_stock_indexable auditor now ships an Apply Fix that calls the same meta_robots setter the OOS Rules Engine uses, and layered_nav_explosion recommendations link straight to the new layered-nav config screen.

So the workflow becomes:

  1. Audit detects layered-nav explosion (12 filterable attributes)
  2. You enable Layered Navigation SEO with noindex_any
  3. Filtered URLs disappear from the index over the next few weeks
  4. Crawl budget gets reclaimed by your important pages

Same for OOS:

  1. Audit detects 47 OOS-but-indexable products
  2. Apply Fix on the worst offenders immediately, OR
  3. Enable the OOS Rules Engine with threshold_days = 14 and let it run nightly

Migration

Pure additive. New tables (byte8_seosuite_oos_tracking), new config groups, new admin grid, new cron job — but all gated by config flags off by default. Existing v2.7 installs upgrade with setup:upgrade and see no behaviour change until they enable the new features.

composer update byte8io/magento-seosuite
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush

Then enable in Stores → Configuration → SEO Suite → Layered Navigation SEO and → Out-of-Stock Rules Engine.

What's next

The roadmap from here:

  • HTML sitemap + image/video XML sitemaps — the last big "table stakes" piece of the SEO surface that the suite doesn't yet cover
  • Pagination SEO controlsview-all canonical or noindex from page 2+
  • Redirects manager v2 — CSV import/export, regex redirects, automatic 404 capture
  • 404 auto-healer — log-watching service that fuzzy-matches old URL → closest live URL → suggested 301
  • Schema Composer — visual JSON-LD builder with live Rich Results preview
  • Google Search Console integration — pull impressions/clicks per URL into the dashboard widget

Stack ranking on these will depend on what actual customer demand looks like through the rest of 2026 — open an issue or hit helo@byte8.io if any of these would unblock your project.

— The Byte8 team