Skip to main content

CLI commands

Six commands. All are registered via Magento\Framework\Console\CommandList in etc/di.xml and run from the Magento root.

seosuite:meta:generate

Bulk AI meta generation. See AI Meta Generator → CLI bulk for recipes.

bin/magento seosuite:meta:generate
-e <product|category|cms_page> # required, default: product
[-i <comma-separated-ids>] # default: all entities
[-s <store_id>] # default: 0 (admin)
[-l <limit>] # default: no limit
[--dry-run] # list IDs and exit, no API calls
[-b <batch_id>] # default: cli-YYYYMMDD-HHMMSS

Exit code: 0 if at least one row succeeded; 1 if every row failed.

seosuite:hreflang:validate

Hreflang health audit. See Hreflang → Validator.

bin/magento seosuite:hreflang:validate
[-l <limit>] # entities per type per store
[-f <table|json>] # default: table

Exit code: 1 if any errors detected; 0 otherwise.

seosuite:hreflang:match

Auto-discover and persist cross-store hreflang pairs. See Hreflang → Auto-matcher.

bin/magento seosuite:hreflang:match
[-e <product|category|both>] # default: both
[-l <limit>] # entities per store
[--dry-run] # report what would be added without writing

Exit code: always 0 (failures are logged, not fatal).

seosuite:index:audit

Index Budget Audit. See Index Budget → Overview.

bin/magento seosuite:index:audit
[-l <limit>] # entities per auditor
[-a <code1,code2>] # specific auditor codes (default: all)
[-f <table|json>] # default: table

Exit code: 1 if any errors found; 0 otherwise.

Available auditor codes for -a:

  • out_of_stock_indexable
  • disabled_url_rewrite
  • layered_nav_explosion
  • canonical_config
  • cms_missing_meta

seosuite:category:generate (v1)

Bulk generates URL rewrites for categories.

bin/magento seosuite:category:generate
[-i <comma-separated-ids>] # default: all categories

Lives in byte8/module-core — preserved unchanged from v1.x.

seosuite:product:generate (v1)

Bulk generates URL rewrites for products. Excludes products with visibility Not Visible Individually.

bin/magento seosuite:product:generate
[-i <comma-separated-ids>] # default: all eligible products

Lives in byte8/module-core — preserved unchanged from v1.x.

seosuite:delete (v1)

Bulk deletes URL rewrites for entity types in specific stores.

bin/magento seosuite:delete
-e <comma-separated-types> # required: product | category
-s <comma-separated-store-ids> # required

Example: bin/magento seosuite:delete -e product,category -s 1,2,3

Lives in byte8/module-core — preserved unchanged from v1.x.

CI patterns

# .github/workflows/seo-audit.yml — fail builds on hreflang errors
- run: bin/magento seosuite:hreflang:validate --format json
- run: bin/magento seosuite:index:audit --format json

Both commands return non-zero on errors, so CI gates work without parsing output.

Cron equivalents

CLIEquivalent cron job
seosuite:meta:generatebyte8_seosuite_ai_auto_generate (every 30 min)
seosuite:hreflang:validatebyte8_seosuite_hreflang_scan (daily 02:30)
seosuite:index:auditbyte8_seosuite_index_audit (daily 02:00)
(no CLI)byte8_seosuite_oos_rules (daily 03:00)

See Cron jobs for the complete cron reference.