Skip to main content

Signal propagation

This page explains what happens between "you click Publish" and "the live storefront shows the new signals". It's the part that most often surprises people, especially around what is automatic vs manual, what gets pushed where, and why JSON-LD sometimes seems to disappear.


The core loop​

SYNC → ENRICH → PROPAGATE → VERIFY
  • Sync brings the catalog from the platform (BigCommerce, Shopify, WooCommerce) into Clione.
  • Enrich generates the AI-driven signals — meta title, meta description, JSON-LD, FAQs, keywords in the language of your content.
  • Propagate writes those signals back to the platform.
  • Verify fetches the live storefront HTML and confirms the signals landed.

This page focuses on the third step.


What signals are propagated​

What Clione writes when you publish, per platform and entity type.

BigCommerce​

SignalProductsCategoriesPages
Meta titleYesOpt-in, off by defaultOpt-in, off by default
Meta descriptionYesYesYes
meta_keywordsYes (array)Yes (array)Yes (string)
search_keywords—YesYes
Canonical URL (custom_url on products and categories, url on pages)YesYesYes
JSON-LD (including FAQPage)Yes (widget)Yes (widget)Yes (widget)
OG tagsYesYesYes

meta_keywords is an array for products and categories but a comma-separated string for pages. This is how the BigCommerce API works, and a frequent source of bugs in custom integrations.

Shopify​

SignalProductsCollectionsPages
Meta title (Shopify's SEO title)YesOpt-in, off by defaultOpt-in, off by default
Meta description (Shopify's SEO description)YesYesYes
JSON-LD (including FAQPage) — clione.jsonld metafieldYesYesYes
Visible FAQ accordion — clione.faq_html metafieldYesYesYes
Enriched description, appended to the product descriptionOpt-in, off by default——

Clione does not write meta keywords, a canonical URL or OG tags on Shopify. Shopify renders the canonical URL from the entity's own URL.

The JSON-LD and the FAQ accordion reach the storefront through the Clione SEO and Clione FAQ app embeds, which come with Clione's Shopify app. 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 app embeds and the llms.txt and .md files under /apps/clione need Clione's app.

WooCommerce​

SignalProductsProduct categoriesPages
Meta titleYesOpt-in, off by defaultOpt-in, off by default
Meta descriptionYesYesYes
JSON-LD (including FAQPage)YesYesYes
Visible FAQ accordionYesYesYes

Clione stores these signals on the WordPress post or term, and the Clione WordPress plugin prints them in the page server-side. When an SEO plugin (Yoast, Rank Math, AIOSEO or SEOPress) already manages the title and meta description, the Clione plugin leaves those to it and prints the JSON-LD.

— 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.


Publishing is manual​

Enriching never writes to your storefront. The enriched signals are saved in Clione, and nothing reaches the platform until you publish:

  • One entity — the Publish tab on the entity page: Push All to Store, or Push on a single signal.
  • Many entities — Publish All / Publish selected on the Products, Categories/Collections and Content lists, or the Publishing page.

There is no setting to publish automatically after enrichment: every write to your storefront is one you can see and audit.


Why JSON-LD is different​

Meta title, meta description, canonical URL, and platform-native fields are written via the platform's catalog API. The platform stores them and renders them on every storefront page request.

JSON-LD is trickier — no platform renders arbitrary JSON-LD by default. It needs a delivery mechanism:

BigCommerce — a widget per entity​

When you publish an entity, Clione writes its JSON-LD to a BigCommerce widget placed on that entity's page (Widget API, region header_bottom). BigCommerce renders the widget server-side, so the JSON-LD is in the HTML of the first fetch and every crawler sees it, including AI crawlers that do not run JavaScript.

JSON-LD appears on the pages you have published, and only on those. The Schema Injector script is separate: it renders the visible FAQ accordion, not the JSON-LD.

Shopify — the theme app embeds​

Clione's Shopify app adds two app embeds to your theme:

  • Clione SEO reads the clione.jsonld metafield on the product, collection or page and renders it in <head> as <script type="application/ld+json">.
  • Clione FAQ reads the clione.faq_html metafield and renders the visible FAQ accordion in the page.

Both are server-rendered Liquid, so they work for every crawler immediately. But they only render if the embeds are enabled in the theme editor.

If the embed is not enabled, the metafield exists but is invisible. This is the most common reason "JSON-LD missing on Shopify" — see Schema Injector.

WooCommerce — the WordPress plugin​

The Clione WordPress plugin prints the JSON-LD and the meta tags in <head> from WordPress's wp_head hook, and prints the visible FAQ accordion in the page. Both are in the HTML of the first response.


What happens when you publish​

  1. Clione resolves the credentials of the store the entity belongs to.
  2. For each signal, it writes to the platform via its API. Errors are caught per signal, so a partial failure doesn't block the rest.
  3. A publishing record is saved in Clione with what was pushed, when, and the platform's response.

Publishing does not start a Verification run. Verification runs on its daily schedule, or when you start it from the Verification page.


The Publish tab​

From any entity's Publish tab:

  • Push All to Store sends every signal to the platform.
  • Push FAQs only sends the FAQ signals and leaves the rest alone.
  • Push on a single signal sends just that one.
  • The history pane shows every past push, with the platform's response and any returned errors.

Use it when:

  • You have enriched or edited an entity and want the storefront to show it.
  • Verification flags a Fail on an entity you have already published.
  • The storefront CDN is showing a stale version and you want to force a write.

Rollback​

There are two different rollbacks, and they do different things:

  • Restoring a version from the entity's History tab restores the enriched fields in Clione and creates a new version snapshot. It does not touch your storefront. Publish afterwards if you want the storefront to show the restored version.
  • Rolling back a publish from the Publish tab puts back the value the platform had before Clione's push, for that signal. For a JSON-LD widget that means removing the widget.

Why a propagation can silently fail​

Even when the platform returns 200 OK, a signal may not show up on the storefront if:

  • On Shopify, the Clione SEO or Clione FAQ app embed is not enabled in the theme. The metafield is written, but nothing renders it.
  • On BigCommerce, meta_keywords is capped at 255 characters in total. Clione shortens the keyword list to fit, so the storefront can carry fewer keywords than Clione generated.
  • On BigCommerce products and categories, custom_url requires the { url, is_customized } object shape; a malformed string is rejected.

In all these cases, the Verification page is the canonical place to spot the discrepancy. See Verification.