{"id":325480,"date":"2026-06-17T14:28:20","date_gmt":"2026-06-17T14:28:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shakvaro-content-engine-ai-seo-suite\/"},"modified":"2026-06-20T07:20:30","modified_gmt":"2026-06-20T07:20:30","slug":"shakvaro-content-engine","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/shakvaro-content-engine\/","author":23482192,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.2","stable_tag":"1.1.2","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Shakvaro Content Engine","header_author":"Shakvaro","header_description":"AI content automation for WordPress. Bring your own LLM key to generate posts at scale, rewrite meta descriptions, and turn 404s into content.","assets_banners_color":"254590","last_updated":"2026-06-20 07:20:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/shakvaro.com\/shakvaro-content-engine","header_author_uri":"https:\/\/shakvaro.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":194,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"shakvaro","date":"2026-06-17 14:46:04"},"1.1.0":{"tag":"1.1.0","author":"shakvaro","date":"2026-06-18 17:05:33"},"1.1.1":{"tag":"1.1.1","author":"shakvaro","date":"2026-06-18 17:38:25"},"1.1.2":{"tag":"1.1.2","author":"shakvaro","date":"2026-06-20 07:20:30"}},"upgrade_notice":{"1.1.2":"<p>Reliable reactivation status in usage analytics. Recommended.<\/p>","1.1.1":"<p>Fixes a double dialog on plugin deactivation. Recommended.<\/p>","1.1.0":"<p>Adds optional opt-in usage analytics (off by default) and a Free vs Pro page. Recommended update.<\/p>","1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3575993,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3575993,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3575981,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3575993,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3575993,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3575981,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":{"shakcoen\/shortcode":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"shakcoen\/shortcode","version":"1.0.0","title":"Shakvaro Content Shortcode","category":"widgets","icon":"tag","description":"Insert a Shakvaro dynamic shortcode placeholder. AI text substitutes here at queue processing time.","keywords":["shakcoen","shortcode","ai","placeholder","dynamic"],"textdomain":"shakvaro-content-engine","supports":{"html":false,"reusable":false,"inserter":true,"align":false},"attributes":{"name":{"type":"string","default":""}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/style.css","style":"file:.\/style.css","render":"file:.\/render.php"},"shakcoen\/conditional-section":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"shakcoen\/conditional-section","version":"1.0.0","title":"Shakvaro Conditional Section","category":"design","icon":"filter","description":"Wrap blocks that should only render when certain Shakvaro shortcodes return content (e.g. only show Pros\/Cons when AI generated them).","keywords":["shakcoen","conditional","section","if","ai"],"textdomain":"shakvaro-content-engine","supports":{"html":false,"reusable":false,"inserter":true,"align":false},"attributes":{"requires":{"type":"string","default":""},"mode":{"type":"string","default":"all"},"label":{"type":"string","default":""}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/style.css","style":"file:.\/style.css","render":"file:.\/render.php"}},"tagged_versions":["1.0.0","1.1.0","1.1.1","1.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3576097,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3576097,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3576097,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3576097,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3576130,"resolution":"5","location":"assets","locale":"","width":1200,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3576139,"resolution":"6","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Dashboard widget \u2014 content pipeline at a glance","2":"Workflow Setup \u2014 8-step guided wizard with breadcrumb","3":"Templates \u2014 block-editor template manager with dynamic shortcodes","4":"Bulk meta-description regeneration","5":"404 Tracker","6":"Settings \u2014 provider selection + API key management"}},"plugin_section":[],"plugin_tags":[2353,181641,8494,5777,186],"plugin_category":[55],"plugin_contributors":[204885,266298],"plugin_business_model":[],"class_list":["post-325480","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-content-automation","plugin_tags-content-generation","plugin_tags-meta-description","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-devshakil","plugin_contributors-shakvaro","plugin_committers-devshakil","plugin_committers-shakvaro"],"banners":{"banner":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/banner-772x250.png?rev=3575993","banner_2x":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/banner-1544x500.png?rev=3575993","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/icon.svg?rev=3575981","icon":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/icon.svg?rev=3575981","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/screenshot-1.png?rev=3576097","caption":"Dashboard widget \u2014 content pipeline at a glance"},{"src":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/screenshot-2.png?rev=3576097","caption":"Workflow Setup \u2014 8-step guided wizard with breadcrumb"},{"src":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/screenshot-3.png?rev=3576097","caption":"Templates \u2014 block-editor template manager with dynamic shortcodes"},{"src":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/screenshot-4.png?rev=3576097","caption":"Bulk meta-description regeneration"},{"src":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/screenshot-5.png?rev=3576130","caption":"404 Tracker"},{"src":"https:\/\/ps.w.org\/shakvaro-content-engine\/assets\/screenshot-6.png?rev=3576139","caption":"Settings \u2014 provider selection + API key management"}],"raw_content":"<!--section=description-->\n<p><strong>Shakvaro Content Engine (SCE)<\/strong> is a workflow engine for SEO-driven content production. It combines:<\/p>\n\n<ul>\n<li><strong>Guided 8-step workflow<\/strong> \u2014 define a project, pick keywords + locations, choose a template, configure shortcodes, write AI prompts, set SEO rules, configure publishing, launch.<\/li>\n<li><strong>Bring-your-own LLM<\/strong> \u2014 works with any OpenAI-compatible chat endpoint. Switch between OpenAI, Gemini, Anthropic, Groq, OpenRouter, or a self-hosted gateway.<\/li>\n<li><strong>Bulk meta description regeneration<\/strong> \u2014 pick a category or filter, regenerate hundreds of Yoast \/ RankMath meta descriptions in a single batch.<\/li>\n<li><strong>404 tracker<\/strong> \u2014 log 404s and queue the worthwhile ones into the content pipeline.<\/li>\n<li><strong>Template system<\/strong> \u2014 Block Editor \/ Gutenberg templates with dynamic shortcodes that map to AI-generated sections.<\/li>\n<li><strong>Yoast \/ Rank Math integration<\/strong> \u2014 writes generated meta descriptions to whichever SEO plugin you run.<\/li>\n<li><strong>Queue + cron<\/strong> \u2014 long-running generation handled in background with retry, rate-limit, and progress UI.<\/li>\n<li><strong>Activity log<\/strong> \u2014 every API call, validation pass, and publish event recorded for audit and debugging.<\/li>\n<\/ul>\n\n<p>SCE is built for <strong>agencies, SEO teams, and content operations<\/strong> that need to produce dozens-to-hundreds of optimized posts on a recurring schedule without burning hours on each one.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>AI provider abstraction with strict OpenAI-compatible contract<\/li>\n<li>Dashboard overview with queue stats, error counts, recent activity, Resume Workflow CTA<\/li>\n<li>Shakvaro keepalive cron (for hosted-tier deployments that use refresh tokens)<\/li>\n<li>Workflow JSON state with breadcrumb navigation across all 8 steps<\/li>\n<li>Settings page with per-provider configuration + diagnostic Test Connection<\/li>\n<li>CSV keyword\/location bulk import<\/li>\n<li>WP-CLI compatible (<code>wp cron event run shakcoen_process_queue<\/code>)<\/li>\n<li>GPLv2-licensed; secrets stored encrypted via <code>SHAKCOEN_Secrets<\/code><\/li>\n<\/ul>\n\n<h3>Free vs Pro<\/h3>\n\n<p>Everything above ships in the free plugin and works standalone \u2014 no account, no key, no locked buttons. <strong>Shakvaro Content Engine Pro<\/strong> is a separate paid add-on (distributed off WordPress.org) that turns the engine into a hands-off SEO suite. Pro adds:<\/p>\n\n<ul>\n<li><strong>Automation<\/strong> \u2014 auto-process queue cron, 404 AI validator with auto-queue, scheduled auto-image for drafts<\/li>\n<li><strong>AI images<\/strong> \u2014 multi-provider generation (DALL\u00b7E 3, Imagen, Replicate SDXL), smart alt text, near-duplicate rejection, media offload to Cloudflare R2 \/ S3<\/li>\n<li><strong>Internal linking suite<\/strong> \u2014 automatic anchor engine, bulk re-link, broken-link scanner, anchor-diversity warnings, per-post stats<\/li>\n<li><strong>RSS auto-blog<\/strong> \u2014 multi-feed import with per-feed AI prompts, AI-rewrite or direct publish, deduplication<\/li>\n<li><strong>SEO automation<\/strong> \u2014 JSON-LD schema (Article \/ FAQ \/ Breadcrumb), content-decay detection + auto-refresh, crawl hygiene (noindex thin\/paginated\/empty archives), pillar consolidation with 301 redirects<\/li>\n<li><strong>Content intelligence<\/strong> \u2014 Originality.ai AI-detection + plagiarism gate, DataForSEO keyword volume \/ difficulty \/ CPC<\/li>\n<li><strong>Multi-template routing<\/strong> (auto by category \/ post type), <strong>REST API<\/strong> (headless), <strong>activity-log CSV export<\/strong>, <strong>dashboard widget<\/strong>, <strong>failure notice with one-click retry<\/strong>, and priority support<\/li>\n<\/ul>\n\n<p>Learn more: https:\/\/shakvaro.com\/shakvaro-content-engine<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to several external services so that AI-generated content, URL validation, and article enrichment can happen. Every service is opt-in via configuration. No data is sent until you configure a provider and trigger a generation.<\/p>\n\n<p><strong>OpenAI (api.openai.com)<\/strong> \u2014 only used when you configure an OpenAI API key in Settings \u2192 AI Provider. It sends the prompt you author (typically including target keyword and template instructions), generation parameters, and your API key in the <code>Authorization<\/code> header. It is sent on: every queued post generation, every Test AI Prompt click, and every meta-description regen.\nTerms of use: https:\/\/openai.com\/policies\/row-terms-of-use\/\nPrivacy policy: https:\/\/openai.com\/policies\/row-privacy-policy\/<\/p>\n\n<p><strong>Google Gemini (generativelanguage.googleapis.com)<\/strong> \u2014 only used when you configure a Gemini API key in Settings \u2192 AI Provider. It sends the prompt, generation parameters, and your API key in the request URL. Same trigger points as OpenAI.\nTerms of use: https:\/\/ai.google.dev\/terms\nPrivacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Wikipedia REST (en.wikipedia.org\/api\/rest_v1)<\/strong> \u2014 used by the optional <code>[olink: PHRASE]<\/code> shortcode inside generated content to resolve a phrase to its Wikipedia article URL. It sends the literal phrase (URL-encoded) as part of the request path. Up to 3 lookups per article. Responses are cached for 30 days. Triggered only when generated content contains an <code>[olink: ...]<\/code> shortcode.\nTerms of use: https:\/\/foundation.wikimedia.org\/wiki\/Policy:Terms_of_Use\nPrivacy policy: https:\/\/foundation.wikimedia.org\/wiki\/Policy:Privacy_policy<\/p>\n\n<p><strong>Shakvaro WP Insights (track.shakvaro.cloud)<\/strong> \u2014 optional, privacy-first usage analytics. <strong>Off by default \u2014 nothing is sent unless you explicitly opt in<\/strong> via the in-admin notice or Settings \u2192 Data Sharing. When enabled, it sends, on activation and once weekly: anonymized environment data (WordPress \/ PHP \/ MySQL versions, locale, multisite flag), the plugin version, which plugin features are turned on, aggregate usage counts (e.g. how many posts have been generated, 404s tracked, templates created \u2014 numbers only, never your content, titles, keywords, prompts, or API keys), and a one-way SHA-256 hash of your site URL plus the site title. Your admin email is sent only if you separately opt in to the marketing tier. Opting out or uninstalling sends a one-time erasure request and removes the local data. This service is operated by the plugin author.\nPrivacy policy: https:\/\/shakvaro.com\/wp-insights\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin archive via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, or extract into <code>\/wp-content\/plugins\/shakvaro-content-engine\/<\/code>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open <strong>SEO AI Generator \u2192 Settings<\/strong> and configure your AI provider (paste an API key + endpoint URL).<\/li>\n<li>Open <strong>SEO AI Generator \u2192 Workflow Setup<\/strong> and walk through the 8-step wizard.<\/li>\n<li>Hit <strong>Launch<\/strong> at the end; the queue processes in background via WP-Cron.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20send%20my%20content%20to%20a%20third-party%20service%3F\"><h3>Does the plugin send my content to a third-party service?<\/h3><\/dt>\n<dd><p>Your content goes only to the AI provider you configure (OpenAI, Gemini, or any endpoint you set) \u2014 your prompt and the generated response transit that provider's API. The plugin also includes optional, privacy-first usage analytics (Shakvaro WP Insights) that is <strong>off by default<\/strong>: nothing is sent unless you explicitly opt in, and it never includes your content, prompts, keywords, or API keys. See \"External services\" for the full disclosure.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20yoast%20seo%20or%20rankmath%3F\"><h3>Does it work with Yoast SEO or RankMath?<\/h3><\/dt>\n<dd><p>Yes. The plugin fills focus keyword + meta description fields automatically when either is active.<\/p><\/dd>\n<dt id=\"will%20it%20conflict%20with%20my%20existing%20posts%3F\"><h3>Will it conflict with my existing posts?<\/h3><\/dt>\n<dd><p>No. SCE never modifies posts it didn't create unless you explicitly trigger a bulk action (e.g. \"Regenerate meta descriptions\"). All generated posts are marked with the <code>_shakcoen_generated<\/code> post meta key.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>A Paid tier is planned and will ship as a separate <strong>Pro<\/strong> plugin distributed off WordPress.org. The free plugin remains fully functional standalone.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fix: reactivating the plugin now reliably restores the \"active\" status in usage analytics. The activation signal is recorded during activation and sent on the next admin load (the previous approach could miss it because the analytics SDK is not fully loaded during activation).<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: deactivating the plugin could show two dialogs (the plugin's own \"keep \/ delete data\" prompt plus the analytics survey). Removed the duplicate analytics survey so the plugin's own deactivation dialog is the single, reliable flow.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: optional, privacy-first usage analytics (off by default, opt-in only) to help prioritise development. See \"External services\".<\/li>\n<li>New: \"Free vs Pro\" comparison page under the plugin menu, with a one-tap \"notify me when Pro launches\" opt-in.<\/li>\n<li>New: Support link on the Plugins screen.<\/li>\n<li>Fix: readme now lists only features included in the free plugin (schema, advanced internal linking, auto-image, multi-template routing, CSV log export, and failure-retry are Pro features).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release on WordPress.org.<\/li>\n<li>Guided 8-step AI content workflow (project, keywords + locations, template, shortcodes, AI prompts, SEO + internal linking, publishing, launch).<\/li>\n<li>Bring-your-own LLM key \u2014 OpenAI \/ Gemini \/ any OpenAI-compatible endpoint.<\/li>\n<li>Bulk meta-description regeneration with per-post override.<\/li>\n<li>404 tracker with auto-queue to content generation.<\/li>\n<li>Template engine with chip-block shortcode editor (Gutenberg + Elementor compatible).<\/li>\n<li>Settings import \/ export with allowlisted option keys; secret keys encrypted at rest via AES-256-GCM.<\/li>\n<\/ul>","raw_excerpt":"AI content automation for WordPress. Bring your own LLM key to generate posts at scale, rewrite meta descriptions, and turn 404s into content.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/325480","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=325480"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shakvaro"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=325480"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=325480"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=325480"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=325480"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=325480"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=325480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}