Wix Blog SEO content automation with approval

Wix Blog stores article bodies as Ricos documents rather than arbitrary HTML. The adapter converts the approved Markdown, writes title, excerpt, slug, and SEO tags to a draft, and calls the separate publish endpoint only in publish mode.

Best for: Wix sites using Wix Blog with an API member configured as the author for approved posts.

Support status: stable
Publisher: wix

How the connection works

Authentication

A Wix API key plus Site ID and Member ID. The site context is sent in the API request and the member becomes the post author.

Server-side variables

  • SEO_BLOG_PUBLISH_TOKEN
  • SEO_BLOG_SITE_SLUG
  • WIX_API_KEY
  • WIX_SITE_ID
  • WIX_MEMBER_ID
  • SEO_BLOG_SITE_ORIGIN

Publishing sequence

01

Split large Markdown into safe blocks and convert each to Ricos.

02

Merge the returned nodes into one rich-content document.

03

Update an existing draft by SEO slug or title when possible.

04

Write SEO data and call the publish endpoint only after approval.

No-write payload and mapping preview

SEO_BLOG_PUBLISH_TOKEN='<tenant-token>' \
SEO_BLOG_SITE_SLUG='<slug>' \
WIX_API_KEY='<wix-api-key>' \
WIX_SITE_ID='<wix-site-id>' \
WIX_MEMBER_ID='<wix-member-id>' \
SEO_BLOG_SITE_ORIGIN='<origin>' \
npx --yes @wotaso/seo-blog-admin-cli publish-cms --cms wix --site-slug '<slug>' --site-origin '<origin>' --dry-run

For a currently due approved post, --dry-run builds the destination payload without writing to the provider. It does not contact the provider or prove credentials, remote schema compatibility, deployment, or a live page; when no post is due, provider inputs are not exercised.

Scheduled runner health heartbeat

SEO_BLOG_PUBLISH_TOKEN='<tenant-token>' \
SEO_BLOG_SITE_SLUG='<slug>' \
WIX_API_KEY='<wix-api-key>' \
WIX_SITE_ID='<wix-site-id>' \
WIX_MEMBER_ID='<wix-member-id>' \
SEO_BLOG_SITE_ORIGIN='<origin>' \
SEO_BLOG_SCHEDULED='true' \
npx --yes @wotaso/seo-blog-admin-cli health --config seo-blog.config.json --mode cms --site-slug '<slug>' --site-origin '<origin>'

Run this from the real scheduled runner after seo-blog.config.json contains the selected connector configuration and the listed secrets are loaded. It reports configuration readiness, not a live article. The dashboard expires readiness at the returned deadline, with a 36-hour fallback when no deadline is available.

Fields and data model

  • Excerpt is capped at 500 characters
  • SEO slug is capped at 100 characters
  • Project locale maps to the Wix language code

Canonical and route

Wix Blog generates the public route and canonical tag. SEODrafts records the expected URL from the site origin and slug but waits for the successful Wix response before treating it as final.

Known limits

  • The publisher blocks content above its safe payload limit.
  • Every Markdown block must return a valid Ricos document.
  • API key, site, and member must belong to the same Wix context.

Recovery

  • Publish as a draft and inspect rich content first.
  • When an ID is missing, inspect the API response instead of creating blindly again.
  • Isolate the Markdown block responsible for conversion errors.

Integration questions

Where are credentials stored?

The Wix credentials stay in CI or another server-side secret environment.

Does SEODrafts own the canonical URL?

No. The destination website owns its route, canonical tag, sitemap, rendering, and analytics.

Can the integration be tested before publishing?

Use the no-write payload preview to inspect local mapping, then separately test credentials and the first destination draft before a live run.

Keep the website your team already owns.

Review the opportunity and draft in SEODrafts, then publish approved work through Wix.

Add my website