{"id":343341,"date":"2026-08-14T07:51:48","date_gmt":"2026-08-14T07:51:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/engine-seo-article-sync\/"},"modified":"2026-08-14T07:51:19","modified_gmt":"2026-08-14T07:51:19","slug":"artiosync-for-engine-seo","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/artiosync-for-engine-seo\/","author":23535871,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.2","stable_tag":"0.3.2","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"ArtioSync for Engine SEO","header_author":"Engine SEO","header_description":"Pobiera artyku\u0142y SEO generowane przez Engine SEO i publikuje je jako wpisy WordPress (synchronizacja bez duplikat\u00f3w). Wystawia te\u017c endpoint \/api\/articles.json, dzi\u0119ki kt\u00f3remu panel widzi, co ju\u017c jest na stronie.","assets_banners_color":"","last_updated":"2026-08-14 07:51:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.2":{"tag":"0.3.2","author":"engineseo","date":"2026-08-14 07:51:19"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3646943,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3646943,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[569,323,529,186,1558],"plugin_category":[55],"plugin_contributors":[275659],"plugin_business_model":[],"class_list":["post-343341","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-blog","plugin_tags-content","plugin_tags-seo","plugin_tags-sync","plugin_category-seo-and-marketing","plugin_contributors-engineseo","plugin_committers-engineseo"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/artiosync-for-engine-seo\/assets\/icon-128x128.png?rev=3646943","icon_2x":"https:\/\/ps.w.org\/artiosync-for-engine-seo\/assets\/icon-256x256.png?rev=3646943","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>ArtioSync for Engine SEO connects your WordPress site to the Engine SEO platform (https:\/\/engineseo.pl):<\/p>\n\n<ul>\n<li>Fetches your published articles from the Engine SEO API (<code>GET \/v1\/articles?format=html<\/code>) and saves them as posts.<\/li>\n<li>Idempotent sync \u2014 re-fetching updates existing posts instead of creating duplicates (keyed by a stable article id stored in post meta).<\/li>\n<li>Automatic hourly sync (WP-Cron) or manual sync with a single click.<\/li>\n<li>Images from the article are imported into the Media Library; the first one is set as the featured image.<\/li>\n<li>The meta description is written for Yoast SEO and Rank Math when either is active.<\/li>\n<li>Exposes a read-only endpoint (<code>GET \/api\/articles.json<\/code>) so the Engine SEO panel can see which posts already exist and avoid duplicating content.<\/li>\n<li>Content is delivered as HTML \u2014 no Markdown conversion is needed on the WordPress side.<\/li>\n<\/ul>\n\n<p>This is a companion plugin for the Engine SEO service. An Engine SEO account and a site API key are required to fetch content. The plugin admin interface is in Polish (the service targets the Polish market).<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Engine SEO API to fetch the articles generated for your site and save them as WordPress posts. Until you enter an API URL and API key in the settings, the plugin makes NO external requests.<\/p>\n\n<ul>\n<li>Service: Engine SEO \u2014 the API URL is configured in the plugin settings (default https:\/\/api.engineseo.pl).<\/li>\n<li>When: on sync \u2014 manual (\"Sync now\") and automatic hourly via WP-Cron, if enabled.<\/li>\n<li>What is sent: a GET request to the <code>\/v1\/articles<\/code> endpoint with your API key (Authorization header) and \u2014 for conditional fetching \u2014 an If-None-Match header with the last ETag. The plugin does NOT send any personal user data or your site content.<\/li>\n<li>What is received: the published articles associated with your key (title, HTML body, description, tags, date).<\/li>\n<\/ul>\n\n<p>Terms of Service: https:\/\/engineseo.pl\/legal\/terms\nPrivacy Policy: https:\/\/engineseo.pl\/legal\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>wp-content\/plugins\/<\/code> (or install the ZIP via Plugins \u2192 Add New \u2192 Upload).<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Settings \u2192 Engine SEO, enter your API URL and the site publish key (from the Engine SEO panel), and save.<\/li>\n<li>Click \"Sync now\" or wait for the automatic hourly sync.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20the%20plugin%20overwrite%20my%20own%20posts%3F\"><h3>Will the plugin overwrite my own posts?<\/h3><\/dt>\n<dd><p>No. The plugin only manages posts it created itself (flagged in post meta). Posts you create manually are never touched.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20the%20api%20key%3F\"><h3>Where do I get the API key?<\/h3><\/dt>\n<dd><p>In the Engine SEO panel, in your site details \u2014 it is the same key used for the \"API\" integration.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Renamed plugin (display name and slug) per WordPress.org plugin review to avoid confusion with an existing plugin name.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>(Self-hosted distribution) hardened self-update so a same-slug plugin in the WordPress.org directory can never be offered as an update for this plugin.<\/li>\n<li>Cleaner plugin identity (name and text domain).<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Images from the content are imported into the Media Library; the first image becomes the post's featured image.<\/li>\n<li>Resilient to slug changes \u2014 sync is keyed by a stable article id (updates the existing post instead of creating a duplicate).<\/li>\n<li>Status updates no longer overwrite manual changes made on the site (e.g. unpublishing a post).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Meta description for SEO plugins (Yoast SEO \/ Rank Math), taken from the article description.<\/li>\n<li>Unpublishing: posts removed\/unpublished in Engine SEO are moved to draft (content is not deleted).<\/li>\n<li>Conditional fetching (ETag \/ If-None-Match) \u2014 when nothing changed, the sync does not download the whole corpus.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First version: article fetching, duplicate-free sync, WP-Cron, and the \/api\/articles.json endpoint.<\/li>\n<\/ul>","raw_excerpt":"Sync SEO articles generated in your Engine SEO account and publish them as WordPress posts, without duplicates.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343341"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/engineseo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343341"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343341"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343341"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343341"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343341"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}