Skip to main content

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.

PathDefaultDescription
widget_enabled1Show the SEO Health widget on the Magento dashboard
notify_on_errors1Post to admin bell-icon inbox when cron audits find errors
cron_index_audit_enabled0Enable nightly Index Budget audit
cron_hreflang_scan_enabled0Enable nightly Hreflang scan

byte8_seosuite/hreflang/*

Hreflang configuration. Website scope.

PathDefaultDescription
is_active0Master switch
inc_reg_code0Include region variations (en-gb vs just en)
is_active_x_default0Emit <link rel="alternate" hreflang="x-default">
x_default_store0Store ID for x-default (0 = use website's default store)

byte8_seosuite/canonical/*

Canonical tag for CMS pages. Website scope.

PathDefaultDescription
is_active0Enable canonical URL on CMS pages

byte8_seosuite/meta_templates/*

Meta title + description templates. Store scope.

PathDefaultDescription
is_active0Master 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.

PathDefaultDescription
is_active0Master switch
site_name(store name)og:site_name value
default_image(empty)Fallback share image (URL or relative path)
twitter_cardsummary_large_imagesummary / summary_large_image / app / player
twitter_site(empty)Twitter @handle

byte8_seosuite/structured_data/*

JSON-LD configuration. Store scope.

PathDefaultDescription
is_active0Master switch
product1Emit Product JSON-LD on product pages
breadcrumb1Emit BreadcrumbList
organization1Emit Organization on home page
website1Emit 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_templatecatalogsearch/result/?q={search_term_string}WebSite SearchAction URL pattern

byte8_seosuite/robots/*

Per-store robots.txt overrides. Store scope.

PathDefaultDescription
is_active0Master switch
modeappendappend (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.

PathDefaultDescription
is_active0Master switch
modenoindex_anynoindex_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.

PathDefaultDescription
is_active0Master switch — also enables the daily cron
threshold_days30Days OOS before action fires
actionnoindexnoindex / redirect / disable
redirect_to_root_if_no_category0Fallback when product has no category (only for redirect action)

byte8_seosuite/ai/*

AI Meta Generator. Store scope.

PathDefaultDescription
is_active0Master switch (gates CLI, in-context button, cron)
api_key(empty)Anthropic API key (encrypted)
modelclaude-haiku-4-5claude-haiku-4-5 / claude-sonnet-4-6 / claude-opus-4-7
max_output_tokens1024Per-request output cap
title_limit60Meta title char limit (truncates output)
description_limit155Meta 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_approve0Apply suggestions immediately without queue review
cron_enabled0Enable 30-minute cron auto-generation
cron_budget_per_run25Hard cap per cron run
cron_entitiesproduct,category,cms_pageEntity 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)