System config paths
All paths live under the byte8_seosuite/ config namespace. Set via Stores → Configuration → SEO Suite in the admin, or programmatically via bin/magento config:set.
The SEO Suite section is visible at all three admin scopes — Default Config, Website, Store View — so per-website settings (e.g. hreflang on/off per website) and per-store settings (e.g. robots.txt rules per store, AI brand voice per store) can be edited from the matching scope selector at the top of the configuration page. Individual fields within each group are only editable at the scopes that match their own showIn* flags — Magento hides or greys out fields at the wrong scope automatically.
When a child field's "depends" condition references a parent toggle (e.g. auto_heal_min_confidence depends on auto_heal_active=1), the dependency chain also requires the group's master is_active to be true. Otherwise turning off the master switch would leave child fields visible whenever their direct parent was previously enabled (since Magento's <depends> doesn't cascade — each field must list every ancestor explicitly).
byte8_seosuite/dashboard/*
Dashboard widget + nightly cron toggles. Default scope.
| Path | Default | Description |
|---|---|---|
widget_enabled | 1 | Show the SEO Health widget on the Magento dashboard |
notify_on_errors | 1 | Post to admin bell-icon inbox when cron audits find errors |
cron_index_audit_enabled | 0 | Enable nightly Index Budget audit |
cron_hreflang_scan_enabled | 0 | Enable nightly Hreflang scan |
byte8_seosuite/hreflang/*
Hreflang configuration. Website scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch |
inc_reg_code | 0 | Include region variations (en-gb vs just en) |
is_active_x_default | 0 | Emit <link rel="alternate" hreflang="x-default"> |
x_default_store | 0 | Store ID for x-default (0 = use website's default store) |
byte8_seosuite/canonical/*
Canonical tag for CMS pages. Website scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Enable canonical URL on CMS pages |
byte8_seosuite/meta_templates/*
Meta title + description templates. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch |
suffix | | {{store.frontend_name}} | Appended to all rendered titles |
product_title | {{product.name}} | Product title template |
product_description | {{product.short_description}} | Product description template |
category_title | {{category.name}} | Category title template |
category_description | {{category.description}} | Category description template |
cms_title | {{cms.title}} | CMS page title template |
cms_description | (empty) | CMS page description template |
byte8_seosuite/open_graph/*
Open Graph + Twitter Cards. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch |
site_name | (store name) | og:site_name value |
default_image | (empty) | Fallback share image (URL or relative path) |
twitter_card | summary_large_image | summary / summary_large_image / app / player |
twitter_site | (empty) | Twitter @handle |
byte8_seosuite/structured_data/*
JSON-LD configuration. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch |
product | 1 | Emit Product JSON-LD on product pages |
breadcrumb | 1 | Emit BreadcrumbList |
organization | 1 | Emit Organization on home page |
website | 1 | Emit WebSite + SearchAction on home page |
org_name | (store name) | Organization schema name |
org_logo | (empty) | Organization schema logo URL or path |
org_same_as | (empty) | Newline/comma-separated official URLs for sameAs |
search_url_template | catalogsearch/result/?q={search_term_string} | WebSite SearchAction URL pattern |
byte8_seosuite/robots/*
Per-store robots.txt overrides. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch |
mode | append | append (add to website-level rules) or replace |
custom_rules | (empty) | The robots.txt content for this store |
byte8_seosuite/layered_nav/*
Layered Navigation SEO controls. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch |
mode | noindex_any | noindex_any or noindex_unlisted |
allowed_attributes | (empty) | Allow-list of attribute codes (only used in noindex_unlisted mode) |
ignored_params | (default ignore list) | Override the default list of non-filter params |
Default ignored params: p, product_list_limit, product_list_dir, product_list_order, utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, fbclid, msclkid.
byte8_seosuite/oos/*
Out-of-Stock Rules Engine. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch — also enables the daily cron |
threshold_days | 30 | Days OOS before action fires |
action | noindex | noindex / redirect / disable |
redirect_to_root_if_no_category | 0 | Fallback when product has no category (only for redirect action) |
byte8_seosuite/ai/*
AI Meta Generator. Store scope.
| Path | Default | Description |
|---|---|---|
is_active | 0 | Master switch (gates CLI, in-context button, cron) |
api_key | (empty) | Anthropic API key (encrypted) |
model | claude-haiku-4-5 | claude-haiku-4-5 / claude-sonnet-4-6 / claude-opus-4-7 |
max_output_tokens | 1024 | Per-request output cap |
title_limit | 60 | Meta title char limit (truncates output) |
description_limit | 155 | Meta description char limit |
brand_voice | (empty) | Free-form tone instructions (folded into cached system prompt) |
global_keywords | (empty) | Strategic keywords to weave in (cached system prompt) |
auto_approve | 0 | Apply suggestions immediately without queue review |
cron_enabled | 0 | Enable 30-minute cron auto-generation |
cron_budget_per_run | 25 | Hard cap per cron run |
cron_entities | product,category,cms_page | Entity types the cron processes |
Programmatic config
# Enable JSON-LD across all stores
bin/magento config:set byte8_seosuite/structured_data/is_active 1
# Set per-store
bin/magento config:set byte8_seosuite/ai/is_active 1 --scope=stores --scope-code=en_gb
# Encrypted (API key)
bin/magento config:sensitive:set byte8_seosuite/ai/api_key sk-ant-...
What's NOT here
- Per-product / per-category / per-CMS settings (
meta_robots,hreflang_identifier) live on the entity edit forms, not in system config - ACL resources (see Permissions)
- Cron schedules (see Cron jobs — schedules are in
etc/crontab.xml, not config)