Title: Robosolo Connector for SEOFLY
Author: sedqi
Published: <strong>November 3, 2026</strong>
Last modified: November 3, 2026

---

Search plugins

![](https://ps.w.org/robosolo-connector-for-seofly/assets/icon-256x256.png?rev=3782659)

# Robosolo Connector for SEOFLY

 By [sedqi](https://profiles.wordpress.org/sedqi/)

[Download](https://downloads.wordpress.org/plugin/robosolo-connector-for-seofly.3.2.1.zip)

 * [Details](https://wordpress.org/plugins/robosolo-connector-for-seofly/#description)
 * [Reviews](https://wordpress.org/plugins/robosolo-connector-for-seofly/#reviews)
 *  [Installation](https://wordpress.org/plugins/robosolo-connector-for-seofly/#installation)
 * [Development](https://wordpress.org/plugins/robosolo-connector-for-seofly/#developers)

 [Support](https://wordpress.org/support/plugin/robosolo-connector-for-seofly/)

## Description

Robosolo Connector for SEOFLY links your WordPress site to your SEOFLY account (
https://seofly.ir), so the SEO articles you generate there are delivered and published
on your site without copy-pasting.

**How it works**

 1. Create your SEOFLY account and add your site in the SEOFLY dashboard.
 2. Install the connector and open Settings  Robosolo Connector for SEOFLY.
 3. Enter the Platform URL, Client ID and Secret, then press “Save & Connect”.
 4. Publish (or send as draft) articles from SEOFLY — they appear on your site automatically.

**Features**

 * Server-to-server REST connection signed with HMAC-SHA256, with a per-request 
   timestamp (5-minute window) and replay protection.
 * Articles are delivered as posts: title, content, excerpt, slug, categories and
   tags.
 * Featured image is uploaded automatically and set as the post thumbnail; in-article
   images can be uploaded to the WordPress media library before publishing.
 * Full Yoast SEO and Rank Math support: meta title, meta description and focus 
   keyword are written to the matching fields of the active SEO plugin.
 * When no SEO plugin is active, the connector outputs the meta description, Open
   Graph tags and FAQPage JSON-LD schema itself.
 * WooCommerce support: SEOFLY can read your published products, update product 
   descriptions and SEO fields, and create brand-new WooCommerce products (simple
   or variable) with images, prices, stock, categories and SEO meta.
 * Draft or direct publish mode — you always control what goes live.
 * Connection monitoring: a signed hourly heartbeat lets your SEOFLY dashboard show
   that the connection is healthy — and warn you before a scheduled publish on an
   unreachable site can fail.
 * Translation-ready (English default; translations are managed on translate.wordpress.
   org).

**Privacy**

The plugin communicates only with the SEOFLY platform URL that you configure in 
the settings. It does not track your visitors and does not collect analytics. See
the “External Services” section for the exact data flow.

### External Services

**Outbound — SEOFLY platform (the URL you set in Settings  Robosolo Connector for
SEOFLY, for example https://seofly.ir)**

The plugin contacts the SEOFLY platform API in two cases:

 1. Credential check — when you press “Save & Connect” in the settings, to verify your
    credentials.
 2. Connection heartbeat — an hourly WP-Cron event sends the same site identity as 
    the credential check to the same platform URL (path /api/agent/health), so your
    SEOFLY dashboard can show whether the connection to your site is still alive, warn
    you before a scheduled publish fails and keep the recorded plugin version current.

 * What is sent: the credential check sends your site URL, WordPress version, plugin
   version, which SEO plugin is active (Yoast, Rank Math or none) and whether WooCommerce
   is active. The hourly heartbeat sends the same WordPress/plugin version identity(
   no article content, no visitor data): the request headers carry only the Client
   ID, a timestamp and the HMAC-SHA256 signature.
 * When: the credential check only when an administrator clicks “Save & Connect”
   in the plugin settings; the heartbeat hourly while credentials are configured—
   scheduled on activation, removed on deactivation.
 * Service terms: https://seofly.ir/terms
 * Service privacy policy: https://seofly.ir/privacy

**Inbound — REST endpoints (seofly/v1 namespace)**

The plugin registers REST API routes (site-info, products, posts, articles, media)
so the SEOFLY platform can read basic site information and deliver the articles 
that you send from your own SEOFLY account. These routes do not use WordPress user
accounts: every request must be signed with the HMAC-SHA256 secret known only to
your site and your SEOFLY account, carries a timestamp with a 5-minute window, and
is protected against replay. Articles are only created, updated or trashed when 
they come from your SEOFLY account; deleting is limited to posts created by the 
connector.

No other third-party services are contacted by this plugin.

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/robosolo-connector-for-seofly`
    directory, or install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress.
 3. Go to Settings  Robosolo Connector for SEOFLY, enter the Platform URL, Client ID
    and Secret from your SEOFLY dashboard and press “Save & Connect”.
 4. From SEOFLY, send a test article to make sure everything works.

Coming from an earlier direct-download build (“SEOFLY Connector” or “Connector for
SEOFLY”)? Just install and activate this plugin — your connection settings and previously
published articles carry over automatically (they live in shared WordPress options,
not in the plugin folder); then deactivate the old copy.

## FAQ

### Do I need a SEOFLY account?

Yes. The connector is the publishing bridge for the SEOFLY content platform (seofly.
ir). Everything it publishes comes from your SEOFLY account.

### Where do I find the Client ID and Secret?

In your SEOFLY dashboard, open the settings of your site and copy the Client ID 
and Secret shown there.

### Can I review articles before they are published?

Yes. Choose draft mode in SEOFLY and every delivered article will wait in your posts
list for your approval.

### Does it work with Yoast SEO or Rank Math?

Yes. Meta title, meta description and focus keyword are written to the matching 
fields of the active SEO plugin. Without an SEO plugin, the connector outputs basic
meta and Open Graph tags and FAQPage schema itself.

### Does the plugin send my site data anywhere else?

No. The only endpoint is the SEOFLY platform URL you configure yourself, as documented
in the External Services section.

### I used the direct-download SEOFLY Connector / Connector for SEOFLY. Do I lose my settings?

No. Connection settings, scheduled events and published articles migrate automatically
on the first run of this plugin; nothing is lost. Because the plugin folder name
changed to match its WordPress.org slug, activate this plugin first and deactivate/
delete the old copy afterwards.

### What happens to my posts if I remove the plugin?

Uninstalling removes the plugin options and its post meta. Your posts, images and
product data remain untouched.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Robosolo Connector for SEOFLY” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ sedqi ](https://profiles.wordpress.org/sedqi/)

[Translate “Robosolo Connector for SEOFLY” into your language.](https://translate.wordpress.org/projects/wp-plugins/robosolo-connector-for-seofly)

### Interested in development?

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

## Changelog

#### 3.2.1

 * Fixed (plugin review feedback): every REST route now declares its permission_callback
   literally inside its own register_rest_route() call. The routes previously shared
   one callback array via a PHP variable, which automated scanners could not resolve
   and reported the permission_callback as missing. No runtime behaviour change:
   all 13 routes were and are protected by the same auth() permission callback —
   a server-to-server check (HMAC-SHA256 signature over client ID + timestamp + 
   method + route + body, 5-minute timestamp window, replay protection) that gates
   every read and write for the connected SEOFLY account only.

#### 3.2.0

 * New: per-attribute variation flag. The SEOFLY panel now sends variation=true|
   false for every product attribute (the new “متغیر” toggle next to each attribute
   name in the New Product wizard). Only flagged attributes drive variations (each
   with its own price and stock); unflagged ones are saved as plain, visible product
   attributes in the product definition.
 * Changed: in variable products, attributes without the variation flag are no longer
   marked “used for variations”, so the product page shows dropdowns only for the
   attributes that really build variations.
 * Compatibility: payloads from older SEOFLY panel builds always send variation=
   true, so behaviour is unchanged with them.

#### 3.1.0

 * New: the SEOFLY panel’s “Edit Variations” dialog now shows exactly two fields
   per variation (price and stock). Stock semantics per variation: a number enables
   stock management with that quantity (0 = out of stock), clearing a previously
   saved quantity turns stock management off and marks the variation fully in stock.
 * New: POST /products/{id} (panel edit) accepts manage_stock=false per variation
   entry to release WooCommerce stock management and set the variation fully in 
   stock.
 * Fixed: the panel previously dropped the typed stock quantity for variation edits(
   field mismatch between panel and REST payload); quantities now save correctly.

#### 3.0.0

 * Renamed to “Robosolo Connector for SEOFLY” so the third-party relationship is
   clear from the title, as requested by the WordPress.org review; the text domain
   now matches the robosolo-connector-for-seofly slug in every file (translations
   move to translate.wordpress.org automatically).
 * New: REST route GET /pcat — lists the store’s WooCommerce product categories (
   product_cat), so the SEOFLY “New Product” wizard gets a dedicated category step
   that reads the real categories of the user’s own site.
 * New: POST /products/new accepts categories[] (product_cat term IDs, with name
   fallback); missing terms are created idempotently and the product is assigned
   to them.
 * Changed: stock is now optional when creating products. When no stock quantity
   is sent, the product is published fully “in stock” and WooCommerce stock management
   is turned off for it (no quantity tracking); when a quantity is sent, stock management
   works exactly as before. Applies to simple products and to each variation independently.
 * Internal: no breaking changes; older SEOFLY platform builds keep working.

#### 2.9.0

 * New: REST route GET /attributes — lists the store’s global product attributes(
   pa_*) with their terms, so the SEOFLY “New Product” wizard offers the store’s
   own predefined attributes (with a loading indicator) instead of free-text names.
 * New: REST route POST /attr — creates (or returns an existing) global attribute
   with its terms, idempotent; the attribute lands in the store’s filter widgets
   exactly as the user typed it.
 * New: REST route GET /products/{id}/variations — reads a variable product’s variations(
   price, stock quantity, stock status) live from the product itself for the panel’s
   single-edit variation list.
 * Improved: POST /products/{id} now accepts price_op (increase/decrease by amount
   or percent, applied against the real WooCommerce price with Toman rounding — 
   increase rounds up, decrease rounds down, step 10/100/1000 by magnitude), stock_status(“
   outofstock” makes the product fully out of stock without touching its numeric
   stock) and variations[] (per-variation regular_price / stock_quantity / stock_status).
   The response now returns the final price and stock status so the platform cache
   stays accurate.
 * Improved: GET /products now includes the product type (simple/variable) — the
   platform excludes variable products from bulk editing.
 * Internal: no breaking changes; older SEOFLY platform builds keep working.

#### 2.8.0

 * New: REST route POST /products/new — create WooCommerce products (simple or variable)
   straight from the SEOFLY “New Product” wizard, with images (base64, featured 
   flag), per-variation price/stock and SEO meta (Yoast/Rank Math compatible).
 * Improved: POST /products/{id} now accepts name, regular_price and stock_quantity
   for single/bulk editing from the SEOFLY panel (simple products; variable products
   are managed at variation level).
 * Internal: hardening only; no breaking changes.

#### 2.7.0

 * New REST endpoint POST /seofly/v1/cat: creates (or returns an existing) WordPress
   category by name, so the SEOFLY article pop-ups can offer a “+” button that adds
   a brand-new category straight to the user’s site and publishes the article in
   it. Signed with the same HMAC handshake as every other endpoint; category creation
   is idempotent (a same-name category is returned instead of duplicated).
 * No schema or option changes; downgrade-safe — older SEOFLY platform builds simply
   never call the new endpoint.

#### 2.6.0

 * The /products sync now also reports each product’s real WooCommerce stock status
   and its main image URL, so SEOFLY can offer only in-stock products inside generated
   articles and render product boxes/carousels with the real product image.
 * front.js now wires the arrows of the related-products carousel; the carousel 
   itself is a scroll-snap strip that also works by touch without JavaScript. front.
   css gains styles for the related-articles quote box, the single product box and
   the carousel.

#### 2.5.1

 * Featured-image delivery is now fail-proof and transparent: every upload failure(
   size, format, permissions, media-library error) is reported back to the SEOFLY
   platform with a concrete reason instead of failing silently, and the article 
   page in SEOFLY shows exactly why the image is missing.
 * The connector now also accepts a featured image sent as a URL by platform builds
   that recorded an older plugin version, so the post thumbnail is set regardless
   of the delivery contract.
 * The hourly heartbeat now carries the plugin identity (WordPress/plugin version,
   active SEO plugin, WooCommerce) so the platform refreshes its records without
   a manual re-connection.

#### 2.5.0

 * SEOFLY articles can now carry accordions and copyable prompt/code blocks as native
   Gutenberg blocks: the platform wraps them in Custom HTML blocks () with details/
   summary accordions and a copy button next to every code block.
 * Block comments are preserved on delivery (wp_kses_post removes HTML comments,
   so they are masked before sanitizing and restored after the post is saved; the
   visible HTML itself still passes through wp_kses_post).
 * The sanitizer allowlist for this signed platform content now also keeps details/
   summary, the copy-button markup and code blocks with their styling classes; front.
   js wires the copy buttons (clipboard API with a textarea fallback) and front.
   css styles accordions, buttons and code blocks.

#### 2.4.0

 * The plugin is now named “Connector for SEOFLY” to make clear it is an integration
   for the SEOFLY platform.
 * All declarations, hooks and stored data now use the unique “wcfs_” prefix; settings,
   post data and scheduled events migrate automatically from earlier direct-download
   builds.
 * Removed bundled translation files in favor of translate.wordpress.org; the plugin
   remains translation-ready.

#### 2.3.0

 * New REST endpoint /media: the platform can upload in-article images to the WordPress
   media library before publishing (posts then serve those images from the site 
   itself, not from the platform server).
 * Shared hardened sideload core for featured image and in-article images (unique
   file names, alt text stored).

#### 2.2.0

 * Connection monitoring: a signed hourly heartbeat (WP-Cron) reports the site as
   reachable to your SEOFLY dashboard.
 * Your SEOFLY dashboard now shows the last successful contact for each site and
   warns you before a scheduled publish on an unreachable site can fail.
 * No change to article delivery, REST routes or stored data; the heartbeat sends
   an empty body and is unscheduled on deactivation.

#### 2.1.0

 * Security hardening: nonce-verified admin notices, fully unslashed and sanitized
   input handling.
 * Replaced discouraged functions with WordPress core APIs (wp_delete_file, delete_post_meta_by_key)
   and removed error-suppression operators.
 * Added translators comments for all placeholder strings and moved to the recommended
   translation loading.
 * Readme cleanup: limited to 5 tags and shortened the short description to 150 
   characters.

#### 2.0.0

 * Complete rewrite: new option prefix, WooCommerce product SEO updates, Yoast SEO
   and Rank Math meta support, FAQPage JSON-LD schema, automatic featured image 
   upload, HMAC timestamp and replay protection, translation-ready interface, uninstall
   data cleanup.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **3.2.1**
 *  Last updated **8 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [ai content](https://wordpress.org/plugins/tags/ai-content/)[auto post](https://wordpress.org/plugins/tags/auto-post/)
   [rank math](https://wordpress.org/plugins/tags/rank-math/)[seo](https://wordpress.org/plugins/tags/seo/)
   [Yoast SEO](https://wordpress.org/plugins/tags/yoast-seo/)
 *  [Advanced View](https://wordpress.org/plugins/robosolo-connector-for-seofly/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/robosolo-connector-for-seofly/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/robosolo-connector-for-seofly/reviews/)

## Contributors

 *   [ sedqi ](https://profiles.wordpress.org/sedqi/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/robosolo-connector-for-seofly/)