Title: Blog Sync for WeblySEO
Author: Overstartup GmbH
Published: <strong>July 22, 2026</strong>
Last modified: July 22, 2026

---

Search plugins

![](https://ps.w.org/weblyseo-blog-sync/assets/banner-772x250.png?rev=3619011)

![](https://ps.w.org/weblyseo-blog-sync/assets/icon-256x256.png?rev=3619011)

# Blog Sync for WeblySEO

 By [Overstartup GmbH](https://profiles.wordpress.org/overstartup/)

[Download](https://downloads.wordpress.org/plugin/weblyseo-blog-sync.1.4.13.zip)

 * [Details](https://wordpress.org/plugins/weblyseo-blog-sync/#description)
 * [Reviews](https://wordpress.org/plugins/weblyseo-blog-sync/#reviews)
 *  [Installation](https://wordpress.org/plugins/weblyseo-blog-sync/#installation)
 * [Development](https://wordpress.org/plugins/weblyseo-blog-sync/#developers)

 [Support](https://wordpress.org/support/plugin/weblyseo-blog-sync/)

## Description

Blog Sync for WeblySEO connects your WordPress site to the **WeblySEO** platform.
You configure an API base URL, API key, and webhook secret in WordPress. Content
is authored and finalized in WeblySEO; WordPress receives events and creates or 
updates posts, downloads images to the Media Library when applicable, and can sync
SEO meta for **Yoast SEO** and **Rank Math** when those plugins are active.

### What the plugin does today

 * **Admin drafts screen:** Top-level menu **WeblySEO Sync** (page title “WeblySEO
   Blog Sync”) with **Content Sync** submenu — lists drafts from the WeblySEO Content
   API (server-rendered list with search and pagination). Each row can link out 
   to the WeblySEO web app to continue editing (`AIGenerator` URL with domain and
   draft id).
 * **Settings (in-page modal):** API Base URL, API Key, Webhook URL (read-only),
   Webhook Secret; **Test Connection** and **Save Settings** use authenticated admin
   AJAX.
 * **Health check tab:** WordPress and PHP version checks, whether API options are
   set, and whether the plugin’s drafts database table exists. API “reachability”
   is reflected when you use Test Connection on valid credentials.
 * **Incoming webhooks:** `admin-ajax.php?action=weblyseo_blog_sync_webhook` — secured
   with header `X-Webhook-Secret` matching your stored secret. Handled events include`
   content.generated` (JSON from `downloadUrl` + optional WP post create/update),`
   ready.published` / `content.ready` (full publish pipeline: post create/update,
   report CMS post id, mark draft CMS-done in WeblySEO), `draft.finalized` (logged),`
   test`, and `get_categories` / `cms.get_categories` (returns WordPress categories
   for remote callers — uses core `get_categories()`, not the WeblySEO REST API).
 * **Outbound WeblySEO Content API (authenticated):** Test connection, list drafts,
   get one draft (to resolve existing WordPress post id when the webhook payload
   and local map do not), post CMS completion, and update stored WordPress post 
   id on the draft. Optional `wp_remote_get` to the `downloadUrl` from `content.
   generated` payloads (URL is provided by WeblySEO, not a fixed path).
 * **Multilingual helpers:** When language data is present, the plugin can set **
   Polylang** language on the post if available, and set **WPML** language metadata
   when WPML is detected.
 * **Optional license overlay:** Frontend CSS for image attribution can be enabled
   via options (off by default in line with directory guidelines where applicable).

### What this plugin does _not_ do

 * It does **not** run topic generation or the full AI editor inside WordPress —
   that work stays on **weblyseo.com** (or your configured API base). The plugin
   is sync and admin glue, not a replacement for the WeblySEO app.

### How it works

 1. **Install and activate** the plugin.
 2. **Open** **WeblySEO Sync**  **Content Sync** and open **Settings**.
 3. **Enter** your WeblySEO API Base URL and API Key; set a **Webhook Secret**; save.
    Copy the **Webhook URL** into your WeblySEO project/domain webhook settings.
 4. **Create and publish** (or generate) content in WeblySEO as you normally do.
 5. **WordPress** receives webhooks, creates or updates posts, syncs media and meta
    where implemented, and calls back to WeblySEO to store the WordPress post id and
    mark CMS completion when appropriate.

### Source Code & Third-party Libraries

This plugin includes the following bundled third-party libraries. All are GPL-compatible.

 * **Bootstrap 5.3.8** (CSS & JS) — MIT License. Source: https://github.com/twbs/
   bootstrap
 * **Font Awesome 6.4.0** (CSS & webfonts) — Icons: CC BY 4.0, Fonts: SIL OFL 1.1,
   Code: MIT. Source: https://github.com/FortAwesome/Font-Awesome

All plugin PHP and JS source code included here is unminified and human-readable.

### External Services

This plugin talks to **WeblySEO** and, for some flows, to URLs WeblySEO returns 
in webhooks.

 * **Service:** WeblySEO — https://weblyseo.com (or the host you set as **API Base
   URL**).
 * **Purpose:** List drafts; validate the API key; load a single draft when resolving
   which WordPress post to update; report the WordPress post id and CMS publish 
   completion back to WeblySEO; optionally download JSON from a `downloadUrl` supplied
   in a webhook.
 * **REST paths used (relative to API Base URL):**
    POST /api/v1/contentapi/test-
   connection GET /api/v1/contentapi/drafts (with pagination/search query parameters)
   GET /api/v1/contentapi/drafts/{id} POST /api/v1/contentapi/drafts/cms-done POST/
   api/v1/contentapi/drafts/{id}/wordpress-post-id
 * **Other HTTP:** `GET` to the `downloadUrl` inside `content.generated` webhook
   payloads (host/path chosen by WeblySEO for that event).
 * **Data sent:** API key via `X-API-Key` and `Authorization: Bearer` headers on
   Content API calls; JSON bodies for POST actions as required by each endpoint;
   webhook payloads received over HTTPS to your site.
 * **When it is called:** When administrators use the drafts/settings UI (including
   Test Connection), and when WeblySEO invokes your webhook URL. Draft list loading
   uses the API when you open the drafts admin page with valid credentials.
 * **Privacy policy:** https://weblyseo.com/en/privacy
 * **Terms of service:** https://weblyseo.com/en/terms-of-service

No data is sent to WeblySEO without your configured API Base URL and API key (except
webhook responses your site sends back to the same base URL you configured).

When WeblySEO provides an Unsplash stock image in a webhook payload, the plugin 
hotlinks the image directly from **Unsplash** (`images.unsplash.com`) rather than
copying it into the WordPress Media Library. This is required by the Unsplash API
Terms (images must be served from Unsplash CDN for attribution tracking). No personal
data is sent to Unsplash; the browser or server fetches the image URL in the same
way as any other public image. Unsplash privacy policy: https://unsplash.com/privacy

## Screenshots

[⌊Content Sync drafts list — WeblySEO drafts with search and pagination.⌉⌊Content
Sync drafts list — WeblySEO drafts with search and pagination.⌉[

Content Sync drafts list — WeblySEO drafts with search and pagination.

[⌊Settings modal — API Base URL, API Key, Webhook URL, and Webhook Secret.⌉⌊Settings
modal — API Base URL, API Key, Webhook URL, and Webhook Secret.⌉[

Settings modal — API Base URL, API Key, Webhook URL, and Webhook Secret.

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/weblyseo-blog-sync` directory,
    or install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress.
 3. Go to **WeblySEO Sync**  **Content Sync** in wp-admin, open **Settings**, and set**
    API Base URL**, **API Key**, and **Webhook Secret**.
 4. In WeblySEO, configure the **webhook URL** WordPress shows you, and the same **
    secret** (sent as `X-Webhook-Secret` on requests).

## FAQ

### Do I need a WeblySEO account?

Yes. You need a WeblySEO account, API access, and an API key. Sign up at https://
weblyseo.com

### Is it compatible with SEO plugins?

The integration maps meta and related fields for **Yoast SEO** and **Rank Math**
when those plugins are active, based on the payload WeblySEO sends.

### Does it handle images?

Yes, when the webhook or content flow includes image URLs, the plugin can sideload
images into the **Media Library** (behavior depends on payload and WeblySEO settings
such as download vs hotlink).

### Does the plugin call WeblySEO when I only browse the site frontend?

No. Outbound WeblySEO API calls happen from **wp-admin** (drafts page, test connection,
etc.) and from **webhook processing** (e.g. loading `downloadUrl`, or resolving/
updating drafts). The webhook endpoint is on `admin-ajax.php` and is called by WeblySEO’s
servers when you configure it.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Blog Sync for WeblySEO” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Overstartup GmbH ](https://profiles.wordpress.org/overstartup/)

[Translate “Blog Sync for WeblySEO” into your language.](https://translate.wordpress.org/projects/wp-plugins/weblyseo-blog-sync)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/weblyseo-blog-sync/),
check out the [SVN repository](https://plugins.svn.wordpress.org/weblyseo-blog-sync/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/weblyseo-blog-sync/)
by [RSS](https://plugins.trac.wordpress.org/log/weblyseo-blog-sync/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.4.13

 * Compliance: Updated “Tested up to” WordPress version to 7.0.

See changelog.txt (bundled with this plugin) for the full release history.

## Meta

 *  Version **1.4.13**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[blog](https://wordpress.org/plugins/tags/blog/)
   [content](https://wordpress.org/plugins/tags/content/)[seo](https://wordpress.org/plugins/tags/seo/)
   [sync](https://wordpress.org/plugins/tags/sync/)
 *  [Advanced View](https://wordpress.org/plugins/weblyseo-blog-sync/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/weblyseo-blog-sync/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/weblyseo-blog-sync/reviews/)

## Contributors

 *   [ Overstartup GmbH ](https://profiles.wordpress.org/overstartup/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/weblyseo-blog-sync/)