Configure meta templates, robots, canonical, hreflang, structured data, and analysis thresholds
Module settings live at Stores > Configuration > OCM Labs > SEO (section ocmlabs_seo). Config paths are ocmlabs_seo/<group>/<field>. Unless a group says otherwise, every field can be set at default, website, or store view scope. Access requires the OCMLabs_Seo::config ACL resource. The section opens with a Module Information group that shows the installed version.

Changes to meta templates, robots, canonical, and hreflang settings appear on pages as they are generated. Flush the full page cache after changing them to see the change on pages that are already cached.
General
Default scope only.
| Field | Config path | Default | Description |
|---|---|---|---|
| Enable SEO Module | ocmlabs_ | Yes | No turns off all storefront output (meta templates, robots, canonical, hreflang, JSON-LD, social tags), the SEO panel, and save-time and nightly scoring. The ocmlabs:seo:rescore command still runs. |
| Enable SEO Panel on Edit Screens | ocmlabs_ | Yes | Shows the live score, checklist, and previews on product, category, and CMS page edit screens. The panel needs both this and Enable SEO Module. |
Meta Templates
Templates fill in a title or description only when the page has none of its own. See Meta Templates for the variables.
| Field | Config path | Default |
|---|---|---|
| Product Meta Title Template | ocmlabs_ | {{name}} {{sep}} {{store_ |
| Product Meta Description Template | ocmlabs_ | {{name}} at {{store_ |
| Category Meta Title Template | ocmlabs_ | {{name}} {{sep}} {{store_ |
| Category Meta Description Template | ocmlabs_ | Shop {{name}} at {{store_ |
| CMS Page Meta Title Template | ocmlabs_ | {{name}} {{sep}} {{store_ |
| CMS Page Meta Description Template | ocmlabs_ | (empty) |
| Separator | ocmlabs_ | | |
An empty template leaves Magento’s own value in place.
Robots
Each field offers Use Default (inherit), index, follow, noindex, follow, and noindex, nofollow. Use Default leaves Magento’s own robots value in place. A robots value set on an individual product, category, or page always wins.
| Field | Config path | Default | Applies to |
|---|---|---|---|
| Catalog Search Results | ocmlabs_ | noindex, follow | Catalog search result pages |
| Filtered Category Pages | ocmlabs_ | noindex, follow | Category pages with layered navigation filters applied |
| Paginated Category Pages | ocmlabs_ | Use Default (inherit) | Category pages beyond page 1 |
Canonical
| Field | Config path | Default | Options |
|---|---|---|---|
| Manage Canonical Tags | ocmlabs_ | Yes | When No, Magento’s own canonical settings apply untouched. |
| Product Canonical URL | ocmlabs_ | No category path (product URL) | No category path, Shortest category path, Default (first) category path |
| Filtered Category Canonical | ocmlabs_ | Unfiltered category URL | Unfiltered category URL, Self (filter parameters kept) |
| Paginated Category Canonical | ocmlabs_ | Self (page parameter kept) | Self (page parameter kept), First page of the category |
See Robots & Canonical.
Hreflang
| Field | Config path | Default | Scope | Description |
|---|---|---|---|---|
| Enable Hreflang Alternates | ocmlabs_ | No | Default, website, store view | Adds alternate links for the other store views that show the same product, category, or CMS page. |
| x-default Store View | ocmlabs_ | None (no x-default alternate) | Default only | The store view the x-default alternate points to. One value for all store views, so every page lists the same alternates. |
| Locale Override | ocmlabs_ | (empty) | Default, website, store view | A language code used for this store view instead of its locale, for example en-GB or de. Invalid values are ignored. |
See Hreflang.
Structured Data
| Field | Config path | Default | Description |
|---|---|---|---|
| Enable JSON-LD | ocmlabs_ | Yes | Outputs Product, BreadcrumbList, Organization, and WebSite structured data. |
| Brand Attribute Code | ocmlabs_ | manufacturer | Product attribute used for the schema brand. |
| GTIN Attribute Code | ocmlabs_ | (empty) | Product attribute holding the GTIN, EAN, or UPC. Empty omits it. |
| MPN Attribute Code | ocmlabs_ | (empty) | Product attribute holding the manufacturer part number. Empty omits it. |
| Organization Name | ocmlabs_ | (empty) | Empty uses the store name. |
| Organization Logo | ocmlabs_ | (empty) | Path of an image inside pub/, for example logo/. Other values are ignored. |
| Organization Profile URLs | ocmlabs_ | (empty) | Social and directory profile URLs, one per line. Only absolute http or https URLs are used. |
Analysis
The thresholds behind the checklist. See SEO Panel & Checks for how each one is used.
| Field | Config path | Default |
|---|---|---|
| Keyword Density Minimum (%) | ocmlabs_ | 0.5 |
| Keyword Density Maximum (%) | ocmlabs_ | 2.5 |
| Minimum Words, Products | ocmlabs_ | 150 |
| Minimum Words, Categories | ocmlabs_ | 100 |
| Minimum Words, CMS Pages | ocmlabs_ | 300 |
| Title Length Pass, Minimum | ocmlabs_ | 30 |
| Title Length Pass, Maximum | ocmlabs_ | 60 |
| Title Length Warning, Minimum | ocmlabs_ | 20 |
| Title Length Warning, Maximum | ocmlabs_ | 70 |
| Description Length Pass, Minimum | ocmlabs_ | 120 |
| Description Length Pass, Maximum | ocmlabs_ | 160 |
| Description Length Warning, Minimum | ocmlabs_ | 70 |
| Description Length Warning, Maximum | ocmlabs_ | 180 |
| Flesch Reading Ease, Pass | ocmlabs_ | 60 |
| Flesch Reading Ease, Warning | ocmlabs_ | 30 |
| Long Sentence Threshold (words) | ocmlabs_ | 20 |
| Long Sentences Allowed (%) | ocmlabs_ | 25 |
| Paragraph Length Maximum (words) | ocmlabs_ | 150 |
Length thresholds are in characters. Between the warning and pass limits a check shows a warning; outside the warning limits it fails. The density minimum cannot exceed the maximum, and saving such a pair is rejected.