Installation
Requirements
| Requirement | Version |
|---|---|
| Magento Open Source / Adobe Commerce | ≥ 2.4.0 |
| PHP | 8.2 / 8.3 / 8.4 / 8.5 |
magento/module-catalog | ^104 |
magento/module-cms | ^104 |
magento/module-catalog-inventory | * |
magento/module-review | * |
magento/module-robots | * |
byte8/module-core | * |
module-core is the shared Byte8 base library — abstract resource models, UI components, schedule helpers — used by every Byte8 Magento module.
Composer install
composer require byte8io/magento-seosuite
If your composer doesn't yet have access to byte8/*, add the registry:
composer config repositories.byte8 composer https://repo.byte8.io
composer config http-basic.repo.byte8.io <username> <token>
Magento setup
bin/magento module:enable Byte8_SeoSuite
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
In production mode also run:
bin/magento setup:static-content:deploy -f
What setup:upgrade creates
Three new tables:
byte8_seosuite_url— manual canonical / hreflang URL relationships (existed since v1.0.4)byte8_seosuite_meta_suggestion— AI-generated meta suggestion queue (v2.3.0)byte8_seosuite_hreflang_issue— persisted hreflang scan results (v2.5.0)byte8_seosuite_index_issue— persisted index-budget audit findings (v2.6.0)byte8_seosuite_oos_tracking— out-of-stock tracking with action history (v2.8.0)
Plus two new columns on cms_page:
meta_robots— overrides the store-level robots default per CMS pagehreflang_identifier— links translated CMS-page variants together
And one new EAV attribute meta_robots on the catalog_category_entity set.
Post-install verification
bin/magento module:status Byte8_SeoSuite
# Module is enabled
bin/magento config:show byte8_seosuite/dashboard/widget_enabled
# 1
Open the admin and confirm:
- Marketing → SEO Suite menu has 9 entries (URL Relationship, AI Meta Suggestions, Hreflang Health, Index Budget Audit, Out-of-Stock Tracking, Redirects, 404 Log, 404 Auto-Heal Suggestions, GSC Performance)
- The Magento dashboard home shows the SEO Suite Health widget at the top
- Stores → Configuration → SEO Suite lists all 12 config groups (Admin Dashboard, Hreflang, Canonical, Meta Templates, Open Graph & Twitter, Structured Data, AI, Robots.txt, Layered Navigation, OOS Rules, Redirects, GSC). The section is visible at Default Config, Website, and Store View scopes.
Cron registration
Four cron jobs are registered (all opt-in via config flags except the 30-min AI auto-generator, which only runs if the AI feature is enabled):
| Job | Schedule | Default state |
|---|---|---|
byte8_seosuite_ai_auto_generate | every 30 min | Disabled (cron toggle off) |
byte8_seosuite_index_audit | daily 02:00 | Disabled |
byte8_seosuite_hreflang_scan | daily 02:30 | Disabled |
byte8_seosuite_oos_rules | daily 03:00 | Disabled |
Enable each in Stores → Configuration → SEO Suite → Admin Dashboard (audits) or its own feature group (AI, OOS).
Confirm cron is reading the new entries:
bin/magento cron:status
bin/magento cache:flush config
Composer suggest
The composer.json suggest block recommends:
hyva-themes/magento2-theme-module— Hyvä themes consume the samehead.additionalblocks that Luma uses, so no extra compat module is needed
Troubleshooting
"Class Byte8\Core\Model\AbstractModel not found" → byte8/module-core not installed. Run composer require byte8/module-core.
Setup fails with byte8_seosuite_url already exists → You're upgrading from a pre-1.0.4 install where the table was created differently. Drop the table and re-run setup:upgrade (it will recreate empty — no relationships ever existed before 1.0.4).
Dashboard widget not visible → byte8_seosuite/dashboard/widget_enabled is 0, or admin user lacks Byte8_SeoSuite::base ACL.
GraphQL seo field missing → setup:di:compile not run after install. The schema is compiled into var/cache/; a fresh DI compile picks it up.
Uninstall
bin/magento module:disable Byte8_SeoSuite
composer remove byte8io/magento-seosuite
The five module tables and the EAV attribute are not auto-dropped — drop them manually if you want a clean slate.