Platform capabilities
Not every signal Clione generates can be written to every platform on every entity type. Each platform's catalog API has its own quirks — what fields are writable, what types they accept, what's read-only, where JSON-LD lives.
This page documents the capability matrix so you can predict what to expect when you enrich a BigCommerce category, a Shopify page or a WooCommerce product.
Signal-by-signal matrix
Clione works with three platforms. The entity types are named the way each platform names them: BigCommerce has products, categories and pages; Shopify has products, collections and pages; WooCommerce has products, product categories and pages.
| Signal | BigCommerce | Shopify | WooCommerce |
|---|---|---|---|
| meta_title | Products: yes. Categories and pages: opt-in, off by default | Products: yes. Collections and pages: opt-in, off by default | Products: yes. Product categories and pages: opt-in, off by default |
| meta_description | Yes, all entity types | Yes, all entity types (Shopify's native SEO description) | Yes, all entity types |
| meta_keywords | Yes (array on products and categories, string on pages) | — | — |
| search_keywords (BigCommerce internal site search) | Categories and pages | — | — |
| canonical_url | Yes, all entity types | — | — |
| JSON-LD (including FAQPage) | Yes, all entity types (widget) | Yes, all entity types (Clione SEO app embed) | Yes, all entity types (Clione WordPress plugin) |
| Visible FAQ accordion | Yes (Schema Injector script) | Yes, all entity types (Clione FAQ app embed) | Yes, all entity types (Clione WordPress plugin) |
| OG tags | Products: native Open Graph fields. Categories and pages: through a widget | — | — |
| Enriched description appended to the product description | — | Products only, opt-in, off by default | — |
— means Clione does not write that signal there. The opt-in signals are switched on per store in Store Settings: Push meta_title to categories, collections, and pages, and, on Shopify, Enriched product description.
On Shopify, a store connected through an app you created yourself (Client ID and Secret) gets sync, enrichment and the meta title and description, which Clione writes through the Admin API. The JSON-LD (Clione SEO app embed), the FAQ accordion (Clione FAQ app embed), llms.txt and the .md documents under /apps/clione come only with Clione's Shopify app.
Other capabilities
| Capability | BigCommerce | Shopify | WooCommerce |
|---|---|---|---|
Variant price ranges in JSON-LD (AggregateOffer with lowest and highest price) | Yes | Yes | Yes |
Multi-currency JSON-LD (one Offer per currency) | — | Yes | — |
| Per-language signals for each market | — | Yes | — |
llms.txt and .md documents on your own domain | Yes (a verified subdomain you point at Clione) | Yes (/apps/clione/, through Clione's Shopify app) | — |
| Product webhooks (a product created, updated or deleted in your store syncs on its own) | Yes | Yes | Yes |
Categories, collections and pages are kept up to date by syncing.
Quirks you should know about
meta_keywords types differ within the same platform
On BigCommerce:
- Products: array of strings.
- Categories: array of strings.
- Pages: a single string, comma-separated.
Using the wrong type returns a 422 from the platform API. Clione handles this internally, but anyone building a custom integration must respect it.
On Shopify, meta_keywords does not exist as a field. Google has ignored it since 2009, so the absence is not a loss for SEO. On Shopify, Clione's keywords feed the JSON-LD and the meta description instead of a meta tag.
Length limits
- Meta description: Clione generates it within 160 characters on every platform. On Shopify it is written to the native SEO description, with no shorter limit.
meta_keywordson BigCommerce: capped at 255 characters for the whole comma-separated value. Clione shortens the keyword list to fit.
canonical_url shape
On BigCommerce products and categories, the canonical URL is written through the entity's custom URL, which BigCommerce stores as an object — { url: "/path/", is_customized: true } — not as a plain string. On pages, it is the page's url string.
On Shopify, Clione does not write the canonical URL: Shopify's storefront renders it from the entity's primary URL.
JSON-LD delivery is platform-specific
| Platform | Mechanism | Server-rendered? |
|---|---|---|
| BC Stencil | A widget per published entity (Widget API, region header_bottom) | Yes (rendered server-side by BigCommerce) |
| BC Catalyst / headless | @clione/seo SDK or direct API | Yes (you control rendering) |
| Shopify Liquid theme | Theme app extension (the Clione SEO app embed) | Yes (rendered server-side) |
| Shopify Hydrogen / headless | @clione/seo SDK or direct API | Yes (you control rendering) |
| WooCommerce | Clione WordPress plugin, from the wp_head hook | Yes (rendered server-side by WordPress) |
JSON-LD works for every entity type on every platform. It appears on an entity's page once you publish that entity.
Per-language signals (Shopify)
If your Shopify store sells in more than one language, turn on the languages you sell in in the Markets card of Store Settings. Clione writes a translated title, description, FAQ and structured data for each one, adapted from the copy you already approved, and your storefront serves the right language per market. The canonical URL is never translated: each language's page keeps its own.
OG tags
On BC products, Clione writes the native Open Graph fields (open_graph_type, open_graph_title, open_graph_description, open_graph_use_meta_description, open_graph_use_product_name, open_graph_use_image). Categories and pages have no such fields, so their OG tags are delivered through a widget.
On Shopify, Clione does not write OG tags. The Clione app embeds render JSON-LD and the FAQ accordion, not OG tags.
BC store-level data
BC requires the Information & Settings scope on the API token to read store currency and time zone. Without it, prices in JSON-LD fall back to USD. See Connect BigCommerce.
WooCommerce and SEO plugins
When Yoast, Rank Math, AIOSEO or SEOPress already manages the page title and meta description, the Clione WordPress plugin leaves those to it and prints the JSON-LD, which no SEO plugin produces in Clione's shape.
Practical guidance
- Enrich, then publish. Enrichment stores the signals in Clione; nothing reaches the storefront until you publish the entity.
- On Shopify, enable the Clione SEO and Clione FAQ app embeds. Without them the metafields are written but nothing renders them.
- Run Verification after you publish. A green Verify is the only ground truth that the live storefront has the new signals.
See also:
- Signal propagation — what happens between Enrich and the live storefront.
- Verification — how to confirm signals landed.
- Schema Injector — the BigCommerce FAQ script and the Shopify app embeds in detail.