{"id":307665,"date":"2026-05-07T17:57:25","date_gmt":"2026-05-07T17:57:25","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codesala-rankmaster-ai\/"},"modified":"2026-05-17T01:41:42","modified_gmt":"2026-05-17T01:41:42","slug":"codesala-seo-content-engine","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/codesala-seo-content-engine\/","author":20981407,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.0","stable_tag":"1.3.0","tested":"6.9.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Codesala SEO Content Engine","header_author":"Bikas Kumar","header_description":"AI-assisted SEO content workflow for WordPress. Fetches trending keywords from public sources, composes source-backed articles (real Wikipedia summaries + Google News headlines) with images, JSON-LD schema and internal links, and schedules publishing. Compatible with Yoast SEO, Rank Math and All in One SEO. Includes a zero-config built-in engine plus optional support for OpenRouter, Groq, Cloudflare Workers AI, Google Gemini, Mistral, OpenAI and Anthropic \u2014 all keys are user-supplied.","assets_banners_color":"f7beb1","last_updated":"2026-05-17 01:41:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/codesala.in","rating":5,"author_block_rating":0,"active_installs":0,"downloads":178,"num_ratings":1,"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":"bikaskumar2000","date":"2026-05-07 17:56:58"},"1.1.0":{"tag":"1.1.0","author":"bikaskumar2000","date":"2026-05-07 21:26:34"},"1.1.1":{"tag":"1.1.1","author":"bikaskumar2000","date":"2026-05-08 14:55:29"},"1.2.0":{"tag":"1.2.0","author":"bikaskumar2000","date":"2026-05-17 01:00:03"},"1.2.1":{"tag":"1.2.1","author":"bikaskumar2000","date":"2026-05-17 01:26:51"},"1.3.0":{"tag":"1.3.0","author":"bikaskumar2000","date":"2026-05-17 01:41:42"}},"upgrade_notice":{"1.3.0":"<p>Major content-philosophy change: built-in engine no longer scrapes Wikipedia or Google News for article body. Articles are either locally-composed template stubs (offline mode) or pure original AI prose when an LLM key is configured. Default word count bumped to 1,500-2,500. Images spread across sections with rich ALT text.<\/p>","1.2.1":"<p>Fixes duplicated &quot;Why this matters&quot; blocks when Fix is run twice. Replaces generic word-count padding with keyword-pattern aware practical sections (hire \/ buy \/ how-to \/ definition \/ comparison). FAQ section now uses real news descriptions as answers, not headlines.<\/p>","1.2.0":"<p>Big content-quality upgrade: persona-driven writer prompt with banned AI-tell phrases, post-generation humanizer that strips robotic phrases and adds natural contractions, author byline + CTA blocks, and one-click Humanize for existing posts.<\/p>","1.1.1":"<p>SEO plugin score columns (Rank Math, Yoast, AIOSEO) now reflect the optimised score after running the fixer \u2014 no more &quot;N\/A&quot; badge.<\/p>","1.1.0":"<p>Adds a Business profile (auto + manual) for niche-targeted keywords, and a one-click 100\/100 SEO Optimizer that fixes posts \/ pages \/ products against Rank Math \/ Yoast \/ AIOSEO rules.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3525890,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3525890,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3525890,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3525890,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.2.0","1.2.1","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3525890,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3525890,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3525890,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3525890,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3525890,"resolution":"5","location":"assets","locale":"","width":1280,"height":800}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,569,13175,1117,186],"plugin_category":[55],"plugin_contributors":[260665],"plugin_business_model":[],"class_list":["post-307665","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-automation","plugin_tags-content-generator","plugin_tags-schema","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-bikaskumar2000","plugin_committers-bikaskumar2000"],"banners":{"banner":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/banner-772x250.png?rev=3525890","banner_2x":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/banner-1544x500.png?rev=3525890","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/icon-128x128.png?rev=3525890","icon_2x":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/icon-256x256.png?rev=3525890","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/screenshot-1.png?rev=3525890","caption":""},{"src":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/screenshot-2.png?rev=3525890","caption":""},{"src":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/screenshot-3.png?rev=3525890","caption":""},{"src":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/screenshot-4.png?rev=3525890","caption":""},{"src":"https:\/\/ps.w.org\/codesala-seo-content-engine\/assets\/screenshot-5.png?rev=3525890","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Codesala SEO Content Engine<\/strong> is a free AI SEO plugin and AI content generator for WordPress. It combines keyword research, AI article writing, on-page SEO optimisation, schema markup and an auto-blog scheduler in one lightweight plugin \u2014 and it works on activation without any API key thanks to a built-in zero-config engine that composes articles from real Wikipedia summaries and Google News headlines, with linked citations.<\/p>\n\n<p>Use it as your <strong>AI writer<\/strong>, <strong>auto blog plugin<\/strong>, <strong>keyword research tool<\/strong>, <strong>JSON-LD schema generator<\/strong>, and <strong>automated content scheduler<\/strong> \u2014 all from one admin screen. Compatible with Yoast SEO, Rank Math and All in One SEO.<\/p>\n\n<h4>Why use this AI SEO plugin?<\/h4>\n\n<ul>\n<li><strong>Free forever, no API key required.<\/strong> The built-in engine uses only public data sources \u2014 no signup, no credit card.<\/li>\n<li><strong>Real source-backed content, not template fluff.<\/strong> Every generated article is built from real Wikipedia and Google News data with citation links \u2014 useful out of the box.<\/li>\n<li><strong>Optional best-in-class AI providers.<\/strong> Plug in your own free or paid key from OpenRouter, Groq, Cloudflare Workers AI, Google Gemini, Mistral, OpenAI, or Anthropic Claude \u2014 auto-fallback handles rate-limits.<\/li>\n<li><strong>6 keyword research sources.<\/strong> Google Trends, Google Suggest, YouTube Suggest, Bing Suggest, Reddit and Wikipedia \u2014 all free.<\/li>\n<li><strong>Schema markup that ranks.<\/strong> JSON-LD Article + FAQPage with safe <code>&lt;script&gt;<\/code>-context escaping.<\/li>\n<li><strong>Auto blog scheduler with safety brakes.<\/strong> Daily budget, per-hour throttle, default draft status \u2014 protects you from spammy bursts.<\/li>\n<li><strong>Compatible with leading SEO plugins.<\/strong> Auto-detects Yoast, Rank Math and All in One SEO. Native fallback if none is installed.<\/li>\n<\/ul>\n\n<h4>Full feature list<\/h4>\n\n<ul>\n<li><strong>AI content generator<\/strong> with multi-provider fallback chain.<\/li>\n<li><strong>Keyword research<\/strong> from 6 free sources (Google Trends, Google Suggest, YouTube Suggest, Bing Suggest, Reddit, Wikipedia Pageviews).<\/li>\n<li><strong>Smart keyword scoring<\/strong> \u2014 long-tail boost, source-weighted, used-keyword tracking.<\/li>\n<li><strong>Source-backed article composer<\/strong> \u2014 pulls real Wikipedia summaries + Google News headlines with citation links, even when no LLM is configured.<\/li>\n<li><strong>Optional AI providers<\/strong> \u2014 OpenRouter, Groq, Cloudflare Workers AI, Google Gemini, Mistral, OpenAI, Anthropic Claude. All keys user-supplied.<\/li>\n<li><strong>Royalty-free images<\/strong> \u2014 optional Pexels \/ Unsplash with SEO-optimised ALT text.<\/li>\n<li><strong>JSON-LD schema<\/strong> \u2014 Article + FAQPage, escaped safely with <code>JSON_HEX_TAG<\/code>.<\/li>\n<li><strong>Yoast \/ Rank Math \/ AIOSEO compatibility<\/strong> \u2014 focus keyword, meta title and description auto-filled.<\/li>\n<li><strong>Auto blog scheduler<\/strong> \u2014 WP-Cron driven, daily budget, per-hour throttle, default draft status.<\/li>\n<li><strong>Internal linking<\/strong> \u2014 picks 3 related posts from your archive on every generation.<\/li>\n<li><strong>Sitemap pings<\/strong> \u2014 Google + Bing notification on publish (optional).<\/li>\n<li><strong>Google Indexing API<\/strong> support (optional, requires service-account JSON).<\/li>\n<li><strong>Built-in analytics<\/strong> \u2014 views, top posts, top keywords. Cached, no GA needed.<\/li>\n<\/ul>\n\n<h4>AI providers supported<\/h4>\n\n\n\n\n  Provider\n  Tier\n  Why use it\n\n\n\n\n  Codesala built-in engine\n  Free, no key\n  Always-on Wikipedia + News engine\n\n\n  OpenRouter\n  Free tier\n  DeepSeek-V3, Llama 3.3 free models\n\n\n  Groq\n  Free tier\n  Fastest Llama 3.3 70B inference\n\n\n  Cloudflare Workers AI\n  Free, 10k\/day\n  Llama, Mistral, Gemma\n\n\n  Google Gemini\n  Free tier\n  Gemini 1.5 Flash\n\n\n  Mistral AI\n  Free tier\n  Mistral Small \/ Medium\n\n\n  OpenAI\n  Paid\n  GPT-4o-mini, top-quality long form\n\n\n  Anthropic\n  Paid\n  Claude 3.5 Haiku \/ Sonnet\n\n\n\n\n<h4>Realistic strategy<\/h4>\n\n<p>AI content is risky if you over-do it. Recommended:<\/p>\n\n<ul>\n<li>5\u201310 high-quality posts\/day, not 100.<\/li>\n<li>Long-tail, low-competition keywords.<\/li>\n<li>Default status is <strong>draft<\/strong> so you review before publishing.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the third-party services listed below. Connections to optional services (LLM providers, image providers, indexing) only happen when the site administrator explicitly configures their own API keys for those services.<\/p>\n\n<h4>Wikimedia Pageviews API (when \"Wikipedia Top\" keyword source is enabled)<\/h4>\n\n<p>Used to fetch the previous day's most-viewed Wikipedia articles as a <em>keyword discovery<\/em> source. As of v1.3.0 no Wikipedia content is fetched for article bodies \u2014 only article titles are read, to seed the keyword pool.<\/p>\n\n<ul>\n<li>What is sent: language code and the previous day's date.<\/li>\n<li>When: when the keyword pool is refreshed.<\/li>\n<li>Service: Wikimedia Pageviews REST API.<\/li>\n<li>Terms of use: https:\/\/foundation.wikimedia.org\/wiki\/Policy:Terms_of_Use<\/li>\n<li>Privacy policy: https:\/\/foundation.wikimedia.org\/wiki\/Policy:Privacy_policy<\/li>\n<\/ul>\n\n<h4>Google Trends RSS (when \"Google Trends\" keyword source is enabled)<\/h4>\n\n<p>Used to fetch daily trending searches.<\/p>\n\n<ul>\n<li>What is sent: country code.<\/li>\n<li>When: when the keyword pool is refreshed.<\/li>\n<li>Service: Google Trends.<\/li>\n<li>Terms of use: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h4>Google Search Suggest &amp; YouTube Suggest<\/h4>\n\n<p>Used to fetch keyword autocomplete suggestions (keyword discovery) and related question phrases for FAQ headings. As of v1.3.0 Google News RSS is no longer used and no article content is taken from Google \u2014 only short keyword and question strings are read.<\/p>\n\n<ul>\n<li>What is sent: keyword strings, language and country codes.<\/li>\n<li>When: when the keyword pool is refreshed and each time a post is generated.<\/li>\n<li>Service: Google.<\/li>\n<li>Terms of use: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h4>Bing Suggest (when \"Bing Suggest\" keyword source is enabled)<\/h4>\n\n<p>Used to fetch keyword autocomplete suggestions.<\/p>\n\n<ul>\n<li>What is sent: keyword strings.<\/li>\n<li>When: when the keyword pool is refreshed.<\/li>\n<li>Service: Microsoft Bing.<\/li>\n<li>Terms of use: https:\/\/www.microsoft.com\/en-us\/servicesagreement<\/li>\n<li>Privacy policy: https:\/\/privacy.microsoft.com\/privacystatement<\/li>\n<\/ul>\n\n<h4>Reddit Public Listings (when \"Reddit Trending\" keyword source is enabled)<\/h4>\n\n<p>Used to fetch top posts from r\/popular as a keyword source.<\/p>\n\n<ul>\n<li>What is sent: nothing (public listing endpoint).<\/li>\n<li>When: when the keyword pool is refreshed.<\/li>\n<li>Service: Reddit.<\/li>\n<li>Terms of use: https:\/\/www.redditinc.com\/policies\/user-agreement<\/li>\n<li>Privacy policy: https:\/\/www.reddit.com\/policies\/privacy-policy<\/li>\n<\/ul>\n\n<h4>Pexels API (only when the user has entered a Pexels API key)<\/h4>\n\n<p>Used to fetch royalty-free images for generated posts.<\/p>\n\n<ul>\n<li>What is sent: the focus keyword and the user's Pexels API key.<\/li>\n<li>When: each time a post is generated and image fetching is enabled with Pexels selected.<\/li>\n<li>Service: Pexels.<\/li>\n<li>Terms of use: https:\/\/www.pexels.com\/terms-of-service\/<\/li>\n<li>Privacy policy: https:\/\/www.pexels.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<h4>Unsplash API (only when the user has entered an Unsplash access key)<\/h4>\n\n<p>Used to fetch royalty-free images for generated posts.<\/p>\n\n<ul>\n<li>What is sent: the focus keyword and the user's Unsplash access key.<\/li>\n<li>When: each time a post is generated and image fetching is enabled with Unsplash selected.<\/li>\n<li>Service: Unsplash.<\/li>\n<li>Terms of use: https:\/\/unsplash.com\/terms<\/li>\n<li>Privacy policy: https:\/\/unsplash.com\/privacy<\/li>\n<\/ul>\n\n<h4>OpenRouter (only when the user has entered an OpenRouter API key)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's OpenRouter API key, the configured model name, and the site's home URL as the HTTP-Referer header.<\/li>\n<li>When: each time a post is generated and OpenRouter is the active provider.<\/li>\n<li>Service: OpenRouter.<\/li>\n<li>Terms of use: https:\/\/openrouter.ai\/terms<\/li>\n<li>Privacy policy: https:\/\/openrouter.ai\/privacy<\/li>\n<\/ul>\n\n<h4>Cloudflare Workers AI (only when the user has entered Cloudflare credentials)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's Cloudflare account ID, API token, and the configured model name.<\/li>\n<li>When: each time a post is generated and Cloudflare is the active provider.<\/li>\n<li>Service: Cloudflare Workers AI.<\/li>\n<li>Terms of use: https:\/\/www.cloudflare.com\/website-terms\/<\/li>\n<li>Privacy policy: https:\/\/www.cloudflare.com\/privacypolicy\/<\/li>\n<\/ul>\n\n<h4>Groq (only when the user has entered a Groq API key)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's Groq API key, and the configured model name.<\/li>\n<li>When: each time a post is generated and Groq is the active provider.<\/li>\n<li>Service: Groq.<\/li>\n<li>Terms of use: https:\/\/groq.com\/terms-of-use\/<\/li>\n<li>Privacy policy: https:\/\/groq.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<h4>Google Gemini (only when the user has entered a Gemini API key)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's Gemini API key, and the configured model name.<\/li>\n<li>When: each time a post is generated and Gemini is the active provider.<\/li>\n<li>Service: Google Generative Language API.<\/li>\n<li>Terms of use: https:\/\/ai.google.dev\/gemini-api\/terms<\/li>\n<li>Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h4>Mistral AI (only when the user has entered a Mistral API key)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's Mistral API key, and the configured model name.<\/li>\n<li>When: each time a post is generated and Mistral is the active provider.<\/li>\n<li>Service: Mistral AI.<\/li>\n<li>Terms of use: https:\/\/mistral.ai\/terms\/<\/li>\n<li>Privacy policy: https:\/\/mistral.ai\/privacy-policy\/<\/li>\n<\/ul>\n\n<h4>OpenAI (only when the user has entered an OpenAI API key)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's OpenAI API key, and the configured model name.<\/li>\n<li>When: each time a post is generated and OpenAI is the active provider.<\/li>\n<li>Service: OpenAI.<\/li>\n<li>Terms of use: https:\/\/openai.com\/policies\/row-terms-of-use\/<\/li>\n<li>Privacy policy: https:\/\/openai.com\/policies\/row-privacy-policy\/<\/li>\n<\/ul>\n\n<h4>Anthropic Claude (only when the user has entered an Anthropic API key)<\/h4>\n\n<p>Optional LLM provider used for generating article content.<\/p>\n\n<ul>\n<li>What is sent: the system prompt, the user prompt (containing the focus keyword), the user's Anthropic API key, and the configured model name.<\/li>\n<li>When: each time a post is generated and Anthropic is the active provider.<\/li>\n<li>Service: Anthropic.<\/li>\n<li>Terms of use: https:\/\/www.anthropic.com\/legal\/consumer-terms<\/li>\n<li>Privacy policy: https:\/\/www.anthropic.com\/legal\/privacy<\/li>\n<\/ul>\n\n<h4>Google Sitemap Ping (when \"Auto ping Google\" is enabled)<\/h4>\n\n<p>Used to notify Google about updated sitemaps after publishing posts.<\/p>\n\n<ul>\n<li>What is sent: the public URL of the site's sitemap.<\/li>\n<li>When: each time a post is published if \"Auto ping Google\" is enabled.<\/li>\n<li>Service: Google.<\/li>\n<li>Terms of use: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h4>Bing Sitemap Ping (when \"Auto ping Bing\" is enabled)<\/h4>\n\n<p>Used to notify Bing about updated sitemaps after publishing posts.<\/p>\n\n<ul>\n<li>What is sent: the public URL of the site's sitemap.<\/li>\n<li>When: each time a post is published if \"Auto ping Bing\" is enabled.<\/li>\n<li>Service: Microsoft Bing.<\/li>\n<li>Terms of use: https:\/\/www.microsoft.com\/en-us\/servicesagreement<\/li>\n<li>Privacy policy: https:\/\/privacy.microsoft.com\/privacystatement<\/li>\n<\/ul>\n\n<h4>Google Indexing API (only when enabled and a service-account JSON key is configured)<\/h4>\n\n<p>Used to submit individual URLs to Google's indexing service for faster discovery.<\/p>\n\n<ul>\n<li>What is sent: the public URL of the published post, signed with the user's Google service-account JWT (via Google's OAuth 2.0 token endpoint).<\/li>\n<li>When: each time a post is published if \"Submit to Google Indexing API\" is enabled.<\/li>\n<li>Service: Google Indexing API + Google OAuth 2.0.<\/li>\n<li>Terms of use: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin does not collect or transmit visitor personal data. Data sent to the third-party services listed above consists of: keyword strings entered or selected by the site administrator, language\/country codes from settings, and (when applicable) the user's own API keys passed to the corresponding provider. The plugin stores its own data locally in the WordPress options table and a custom <code>wp_csrm_stats<\/code> table (post id, event type, keyword, provider name, sanitized referer, timestamp). No IP addresses, no cookies, and no visitor identifiers are stored.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>codesala-seo-content-engine<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>SEO Content \u2192 Settings \u2192 AI Providers<\/strong>. The built-in engine works without any setup. For higher-quality output, paste a free API key (Groq, OpenRouter, etc.).<\/li>\n<li>Open the <strong>Keywords<\/strong> tab and click <strong>Fetch trending keywords<\/strong>.<\/li>\n<li>Open the <strong>Generate<\/strong> tab and create a test post.<\/li>\n<li>When you are ready, enable the plugin in <strong>Settings \u2192 General<\/strong> to let the scheduler run automatically.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20an%20api%20key%3F\"><h3>Does this plugin require an API key?<\/h3><\/dt>\n<dd><p>No. The built-in engine builds articles from real Wikipedia summaries and Google News headlines through public endpoints. For higher-quality output you can plug in a free key from Groq, OpenRouter, Cloudflare, Gemini, or Mistral. Paid OpenAI \/ Anthropic are also supported. All keys are user-supplied.<\/p><\/dd>\n<dt id=\"will%20this%20get%20my%20site%20flagged%20for%20spam%3F\"><h3>Will this get my site flagged for spam?<\/h3><\/dt>\n<dd><p>Auto-publishing too many low-quality articles can cause issues with search engines. The plugin defaults to draft status and a per-hour throttle so you stay in control. Recommended: 5\u201310 posts per day max.<\/p><\/dd>\n<dt id=\"which%20seo%20plugins%20are%20supported%3F\"><h3>Which SEO plugins are supported?<\/h3><\/dt>\n<dd><p>Yoast SEO, Rank Math, and All in One SEO are auto-detected. If none is active, the plugin outputs its own meta tags and JSON-LD on the front-end.<\/p><\/dd>\n<dt id=\"where%20does%20the%20keyword%20data%20come%20from%3F\"><h3>Where does the keyword data come from?<\/h3><\/dt>\n<dd><p>All free public sources: Google Trends RSS, Google Suggest, YouTube Suggest, Bing Suggest, Reddit r\/popular, and Wikipedia Pageviews API. See the \"External services\" section below for details.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>No more external content scraping.<\/strong> The built-in offline engine no longer fetches from Wikipedia, Google News, Wikimedia Pageviews or Reddit for article body content. Articles are composed locally from intent-pattern templates and never include scraped facts, quotes or \"References\" sections. Google Suggest is still used (autocomplete questions only) to seed FAQ phrasings \u2014 but FAQ answers are written locally, never copied from search results.<\/li>\n<li><strong>Pure-AI articles via configured LLM.<\/strong> When you plug in a free or paid AI provider (Groq, OpenRouter, Cloudflare Workers AI, Gemini, Mistral, OpenAI, Anthropic), the generator now demands 1,500-2,500 word original articles with 5-7 detailed H2 sections (each 180+ words), real-world examples, named brands \/ prices \/ years, at least one H3 sub-section, and explicit trade-off opinions. Every article is fully original \u2014 no external citation is requested or accepted in the prompt.<\/li>\n<li><strong>Stronger anti-fluff prompt.<\/strong> Banned phrases list extended; demand for concrete numbers in every section; ban on \"Why this matters\", \"Introduction\", \"Conclusion\" style headings.<\/li>\n<li><strong>Better image integration.<\/strong> Default images per post increased to 3. Featured image plus inline images are now spread evenly across H2 sections (not all stacked at the top). Every image gets a keyword-aware ALT text.<\/li>\n<li><strong>Defaults updated.<\/strong> <code>words_min<\/code> 800 \u2192 1500, <code>words_max<\/code> 1500 \u2192 2500, <code>images_per_post<\/code> 2 \u2192 3.<\/li>\n<li><strong>Set-up nudge on dashboard.<\/strong> A new warning banner appears when the user is on offline mode OR has no image API key configured, with one-click links to the relevant Settings sub-tabs.<\/li>\n<li><strong>Backward compatible.<\/strong> Existing user settings preserved; offline engine still works for anyone who chooses to stay key-free, but is now clearly labelled \"Offline mode \u2014 template engine\".<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li><strong>Fix: duplicated \"Why this matters \/ Key things \/ Common questions\" blocks.<\/strong> The fixer's word-count, density, external-link and internal-link helpers are now idempotent \u2014 calling Fix twice on the same post no longer appends the same content twice. Markers <code>csrm-padding-block<\/code>, <code>csrm-further-reading<\/code>, <code>csrm-related-reading<\/code>, <code>csrm-density-summary<\/code> are used to detect prior runs.<\/li>\n<li><strong>NEW: Keyword-pattern aware practical content.<\/strong> The word-count padding is no longer generic boilerplate. The fixer detects the searcher's intent from the keyword phrase and outputs sections tailored to it:\n\n<ul>\n<li>\"hire \/ freelance X\" \u2192 \"Where to find a X\" + \"What you should actually pay\" (with real rate bands) + \"How to vet\" + \"Red flags\" + \"Your next step\".<\/li>\n<li>\"buy \/ price \/ best X\" \u2192 \"Decide on the use-case first\" + \"Where to compare honestly\" + \"What to ignore\" + \"Buy vs wait check\".<\/li>\n<li>\"how to X\" \u2192 \"Before you start\" + \"Shortest path that works\" + \"Where people get stuck\".<\/li>\n<li>\"what is X\" \u2192 \"Plain-English version\" + \"Why it gets confusing\" + \"How to spot a reliable explainer\".<\/li>\n<li>\"X vs Y\" \u2192 \"Better for what\" + honest scoring framework.<\/li>\n<li>Generic fallback for everything else, still keyword-aware, no boilerplate.<\/li>\n<\/ul><\/li>\n<li><strong>Fix: FAQ section no longer echoes news headlines as both Q and A.<\/strong> Built-in engine now derives clean questions from news headlines (\"Cost?\" \u2192 \"How much does X typically cost?\"), uses real news <em>descriptions<\/em> as answers (not the title), de-duplicates questions, and refuses answers that are just a verbatim source title.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li><strong>NEW: Human-style writer engine.<\/strong> The generator prompt now puts the LLM into a specific writer persona (Journalist \/ Expert Blogger \/ Practitioner \/ Friendly Teacher \/ No-fluff Reviewer) and enforces voice rules: contractions, mixed sentence length, concrete specifics over vague quantifiers, at least two first-person asides, and an explicit BANNED-PHRASES list that strips ~40 of the most common AI-tell phrases (\"delve into\", \"in today's digital landscape\", \"navigate the complexities\", \"tapestry\", \"leverage\", \"synergy\", \"paradigm shift\", \"embark on a journey\", \"in conclusion\" and many more).<\/li>\n<li><strong>NEW: Humanizer post-processor.<\/strong> After generation, every article is run through a humanization pass that swaps any remaining AI-tell phrases, applies natural contractions, varies sentence openings and (optionally) injects short first-person asides into long paragraphs. Three strengths: light, medium (recommended), aggressive.<\/li>\n<li><strong>NEW: Per-post Humanize button<\/strong> on the SEO Optimizer page \u2014 turn any existing post (yours, AI-generated or imported) into a more human-sounding piece in one click. Bulk-humanize is also available. Original content is backed up so you can Revert.<\/li>\n<li><strong>NEW: Author byline + about-author block<\/strong> (E-E-A-T signal). Optional. Configurable name and short bio. Adds \"By &lt;name&gt; \u00b7 Updated &lt;date&gt;\" to the top and an About-author block to the bottom.<\/li>\n<li><strong>NEW: Call-to-action block.<\/strong> Optional styled button at the end of every generated post.<\/li>\n<li><strong>NEW: Audience selector.<\/strong> Set the target audience once; the generator writes vocabulary, examples and reading level for that group.<\/li>\n<li>Built-in Flesch reading-ease scorer (exposed via <code>CSRM_Humanizer::readability()<\/code> and reported after Humanize).<\/li>\n<li>All v1.1 settings preserved \u2014 backward compatible upgrade.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li><strong>Fix: SEO plugin score columns now reflect the optimised score.<\/strong> After <code>Fix<\/code> (or <code>Analyse<\/code>) runs, the score is pushed into Rank Math (<code>rank_math_seo_score<\/code>), Yoast SEO (<code>_yoast_wpseo_linkdex<\/code> + <code>_yoast_wpseo_content_score<\/code>) and All in One SEO (post meta + <code>wp_aioseo_posts.seo_score<\/code> direct table update). The \"N\/A\" badge in posts-list views now flips to the actual number.<\/li>\n<li>When schema is applied, Rank Math's <code>rank_math_rich_snippet<\/code> is set to <code>article<\/code> and Yoast's <code>_yoast_wpseo_schema_article_type<\/code> is set to <code>Article<\/code>, so the \"Schema: Off\" indicator flips to \"Article\".<\/li>\n<li>Posts scoring 90+ get marked as Pillar Content in Rank Math.<\/li>\n<li>SEO Optimizer table now falls back to the existing Rank Math \/ Yoast \/ AIOSEO score when this plugin has not yet analysed the post \u2014 no more empty score column for posts you optimised in the SEO plugin's editor directly.<\/li>\n<li>Score badge in the Optimizer table now colours immediately on first render (green \u226590, amber 60\u201389, red &lt;60).<\/li>\n<\/ul>\n\n<p><h4>1.1.0<\/h4><\/p>\n\n<ul>\n<li><strong>NEW: Business-aware keywords.<\/strong> A new \"Business\" sub-tab in Settings auto-detects what your site is about (site name, top categories, product categories, recent topics) and builds a niche profile. You can also override every field manually (products \/ services, location, target audience). The keyword fetcher then mixes business-relevant seeds straight into the trending pool.<\/li>\n<li><strong>NEW: 100\/100 SEO Optimizer.<\/strong> A new top-level admin page lists posts \/ pages \/ products with their current score and one-click fix buttons. Fixes 19 weighted signals from the Rank Math \/ Yoast \/ AIOSEO content-analysis rules: focus keyword in title (and at start), meta description, slug, intro, subheadings and image alts; keyword density; URL length; word count; external DoFollow + internal links; numbers and power words in title; table of contents injection; long-paragraph splitting; image presence.<\/li>\n<li><strong>NEW: Auto-fix on save.<\/strong> Optional toggle that runs the fixer whenever any supported post is saved.<\/li>\n<li><strong>NEW: Per-post SEO meta backup + Revert button.<\/strong> First fix takes a one-time backup of the original title \/ content \/ slug so you can roll back from the SEO Optimizer page.<\/li>\n<li><strong>NEW: Generator now produces 100\/100 posts.<\/strong> Newly generated articles are automatically passed through the fixer before publish.<\/li>\n<li>Settings \u2192 100\/100 Fixer sub-tab to choose which post types are eligible, target score, batch size, and whether to allow AI for content rewrites.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"The free AI SEO plugin for WordPress: trending keyword research, AI content generator, auto blog scheduler, JSON-LD schema and meta tags \u2014 all in one.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/307665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=307665"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bikaskumar2000"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=307665"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=307665"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=307665"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=307665"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=307665"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=307665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}