Description
Codesala SEO Content Engine 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 — 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.
Use it as your AI writer, auto blog plugin, keyword research tool, JSON-LD schema generator, and automated content scheduler — all from one admin screen. Compatible with Yoast SEO, Rank Math and All in One SEO.
Why use this AI SEO plugin?
- Free forever, no API key required. The built-in engine uses only public data sources — no signup, no credit card.
- Real source-backed content, not template fluff. Every generated article is built from real Wikipedia and Google News data with citation links — useful out of the box.
- Optional best-in-class AI providers. Plug in your own free or paid key from OpenRouter, Groq, Cloudflare Workers AI, Google Gemini, Mistral, OpenAI, or Anthropic Claude — auto-fallback handles rate-limits.
- 6 keyword research sources. Google Trends, Google Suggest, YouTube Suggest, Bing Suggest, Reddit and Wikipedia — all free.
- Schema markup that ranks. JSON-LD Article + FAQPage with safe
<script>-context escaping. - Auto blog scheduler with safety brakes. Daily budget, per-hour throttle, default draft status — protects you from spammy bursts.
- Compatible with leading SEO plugins. Auto-detects Yoast, Rank Math and All in One SEO. Native fallback if none is installed.
Full feature list
- AI content generator with multi-provider fallback chain.
- Keyword research from 6 free sources (Google Trends, Google Suggest, YouTube Suggest, Bing Suggest, Reddit, Wikipedia Pageviews).
- Smart keyword scoring — long-tail boost, source-weighted, used-keyword tracking.
- Source-backed article composer — pulls real Wikipedia summaries + Google News headlines with citation links, even when no LLM is configured.
- Optional AI providers — OpenRouter, Groq, Cloudflare Workers AI, Google Gemini, Mistral, OpenAI, Anthropic Claude. All keys user-supplied.
- Royalty-free images — optional Pexels / Unsplash with SEO-optimised ALT text.
- JSON-LD schema — Article + FAQPage, escaped safely with
JSON_HEX_TAG. - Yoast / Rank Math / AIOSEO compatibility — focus keyword, meta title and description auto-filled.
- Auto blog scheduler — WP-Cron driven, daily budget, per-hour throttle, default draft status.
- Internal linking — picks 3 related posts from your archive on every generation.
- Sitemap pings — Google + Bing notification on publish (optional).
- Google Indexing API support (optional, requires service-account JSON).
- Built-in analytics — views, top posts, top keywords. Cached, no GA needed.
AI providers supported
Provider
Tier
Why use it
Codesala built-in engine
Free, no key
Always-on Wikipedia + News engine
OpenRouter
Free tier
DeepSeek-V3, Llama 3.3 free models
Groq
Free tier
Fastest Llama 3.3 70B inference
Cloudflare Workers AI
Free, 10k/day
Llama, Mistral, Gemma
Google Gemini
Free tier
Gemini 1.5 Flash
Mistral AI
Free tier
Mistral Small / Medium
OpenAI
Paid
GPT-4o-mini, top-quality long form
Anthropic
Paid
Claude 3.5 Haiku / Sonnet
Realistic strategy
AI content is risky if you over-do it. Recommended:
- 5–10 high-quality posts/day, not 100.
- Long-tail, low-competition keywords.
- Default status is draft so you review before publishing.
External services
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.
Wikipedia & MediaWiki APIs (always-on, used by the built-in engine)
This plugin sends the focus keyword to Wikipedia’s REST and MediaWiki APIs to fetch the article summary and full plain-text extract used as factual source material in generated articles.
- What is sent: the focus keyword string and the resolved article title.
- When: each time a post is generated using the built-in engine.
- Service: Wikipedia / MediaWiki, operated by the Wikimedia Foundation.
- Terms of use: https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use
- Privacy policy: https://foundation.wikimedia.org/wiki/Policy:Privacy_policy
Wikimedia Pageviews API (when “Wikipedia Top” keyword source is enabled)
Used to fetch the previous day’s most-viewed Wikipedia articles as a keyword source.
- What is sent: language code and the previous day’s date.
- When: when the keyword pool is refreshed.
- Service: Wikimedia Pageviews REST API.
- Terms of use: https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use
- Privacy policy: https://foundation.wikimedia.org/wiki/Policy:Privacy_policy
Google Trends RSS (when “Google Trends” keyword source is enabled)
Used to fetch daily trending searches.
- What is sent: country code.
- When: when the keyword pool is refreshed.
- Service: Google Trends.
- Terms of use: https://policies.google.com/terms
- Privacy policy: https://policies.google.com/privacy
Google Search Suggest, YouTube Suggest, Google News RSS
Used to fetch keyword autocomplete suggestions, related questions for FAQs, and news article links used as factual source material.
- What is sent: keyword strings, language and country codes.
- When: when the keyword pool is refreshed and each time a post is generated.
- Service: Google.
- Terms of use: https://policies.google.com/terms
- Privacy policy: https://policies.google.com/privacy
Bing Suggest (when “Bing Suggest” keyword source is enabled)
Used to fetch keyword autocomplete suggestions.
- What is sent: keyword strings.
- When: when the keyword pool is refreshed.
- Service: Microsoft Bing.
- Terms of use: https://www.microsoft.com/en-us/servicesagreement
- Privacy policy: https://privacy.microsoft.com/privacystatement
Reddit Public Listings (when “Reddit Trending” keyword source is enabled)
Used to fetch top posts from r/popular as a keyword source.
- What is sent: nothing (public listing endpoint).
- When: when the keyword pool is refreshed.
- Service: Reddit.
- Terms of use: https://www.redditinc.com/policies/user-agreement
- Privacy policy: https://www.reddit.com/policies/privacy-policy
Pexels API (only when the user has entered a Pexels API key)
Used to fetch royalty-free images for generated posts.
- What is sent: the focus keyword and the user’s Pexels API key.
- When: each time a post is generated and image fetching is enabled with Pexels selected.
- Service: Pexels.
- Terms of use: https://www.pexels.com/terms-of-service/
- Privacy policy: https://www.pexels.com/privacy-policy/
Unsplash API (only when the user has entered an Unsplash access key)
Used to fetch royalty-free images for generated posts.
- What is sent: the focus keyword and the user’s Unsplash access key.
- When: each time a post is generated and image fetching is enabled with Unsplash selected.
- Service: Unsplash.
- Terms of use: https://unsplash.com/terms
- Privacy policy: https://unsplash.com/privacy
OpenRouter (only when the user has entered an OpenRouter API key)
Optional LLM provider used for generating article content.
- 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.
- When: each time a post is generated and OpenRouter is the active provider.
- Service: OpenRouter.
- Terms of use: https://openrouter.ai/terms
- Privacy policy: https://openrouter.ai/privacy
Cloudflare Workers AI (only when the user has entered Cloudflare credentials)
Optional LLM provider used for generating article content.
- 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.
- When: each time a post is generated and Cloudflare is the active provider.
- Service: Cloudflare Workers AI.
- Terms of use: https://www.cloudflare.com/website-terms/
- Privacy policy: https://www.cloudflare.com/privacypolicy/
Groq (only when the user has entered a Groq API key)
Optional LLM provider used for generating article content.
- What is sent: the system prompt, the user prompt (containing the focus keyword), the user’s Groq API key, and the configured model name.
- When: each time a post is generated and Groq is the active provider.
- Service: Groq.
- Terms of use: https://groq.com/terms-of-use/
- Privacy policy: https://groq.com/privacy-policy/
Google Gemini (only when the user has entered a Gemini API key)
Optional LLM provider used for generating article content.
- What is sent: the system prompt, the user prompt (containing the focus keyword), the user’s Gemini API key, and the configured model name.
- When: each time a post is generated and Gemini is the active provider.
- Service: Google Generative Language API.
- Terms of use: https://ai.google.dev/gemini-api/terms
- Privacy policy: https://policies.google.com/privacy
Mistral AI (only when the user has entered a Mistral API key)
Optional LLM provider used for generating article content.
- What is sent: the system prompt, the user prompt (containing the focus keyword), the user’s Mistral API key, and the configured model name.
- When: each time a post is generated and Mistral is the active provider.
- Service: Mistral AI.
- Terms of use: https://mistral.ai/terms/
- Privacy policy: https://mistral.ai/privacy-policy/
OpenAI (only when the user has entered an OpenAI API key)
Optional LLM provider used for generating article content.
- What is sent: the system prompt, the user prompt (containing the focus keyword), the user’s OpenAI API key, and the configured model name.
- When: each time a post is generated and OpenAI is the active provider.
- Service: OpenAI.
- Terms of use: https://openai.com/policies/row-terms-of-use/
- Privacy policy: https://openai.com/policies/row-privacy-policy/
Anthropic Claude (only when the user has entered an Anthropic API key)
Optional LLM provider used for generating article content.
- What is sent: the system prompt, the user prompt (containing the focus keyword), the user’s Anthropic API key, and the configured model name.
- When: each time a post is generated and Anthropic is the active provider.
- Service: Anthropic.
- Terms of use: https://www.anthropic.com/legal/consumer-terms
- Privacy policy: https://www.anthropic.com/legal/privacy
Google Sitemap Ping (when “Auto ping Google” is enabled)
Used to notify Google about updated sitemaps after publishing posts.
- What is sent: the public URL of the site’s sitemap.
- When: each time a post is published if “Auto ping Google” is enabled.
- Service: Google.
- Terms of use: https://policies.google.com/terms
- Privacy policy: https://policies.google.com/privacy
Bing Sitemap Ping (when “Auto ping Bing” is enabled)
Used to notify Bing about updated sitemaps after publishing posts.
- What is sent: the public URL of the site’s sitemap.
- When: each time a post is published if “Auto ping Bing” is enabled.
- Service: Microsoft Bing.
- Terms of use: https://www.microsoft.com/en-us/servicesagreement
- Privacy policy: https://privacy.microsoft.com/privacystatement
Google Indexing API (only when enabled and a service-account JSON key is configured)
Used to submit individual URLs to Google’s indexing service for faster discovery.
- 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).
- When: each time a post is published if “Submit to Google Indexing API” is enabled.
- Service: Google Indexing API + Google OAuth 2.0.
- Terms of use: https://policies.google.com/terms
- Privacy policy: https://policies.google.com/privacy
Privacy
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 wp_csrm_stats table (post id, event type, keyword, provider name, sanitized referer, timestamp). No IP addresses, no cookies, and no visitor identifiers are stored.
Installation
- Upload the
codesala-seo-content-enginefolder to/wp-content/plugins/. - Activate the plugin from the Plugins screen.
- Go to SEO Content Settings AI Providers. The built-in engine works without any setup. For higher-quality output, paste a free API key (Groq, OpenRouter, etc.).
- Open the Keywords tab and click Fetch trending keywords.
- Open the Generate tab and create a test post.
- When you are ready, enable the plugin in Settings General to let the scheduler run automatically.
FAQ
-
Does this plugin require an API key?
-
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.
-
Will this get my site flagged for spam?
-
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–10 posts per day max.
-
Which SEO plugins are supported?
-
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.
-
Where does the keyword data come from?
-
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.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Codesala SEO Content Engine” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Codesala SEO Content Engine” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.0
- NEW: Business-aware keywords. 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.
- NEW: 100/100 SEO Optimizer. 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.
- NEW: Auto-fix on save. Optional toggle that runs the fixer whenever any supported post is saved.
- NEW: Per-post SEO meta backup + Revert button. First fix takes a one-time backup of the original title / content / slug so you can roll back from the SEO Optimizer page.
- NEW: Generator now produces 100/100 posts. Newly generated articles are automatically passed through the fixer before publish.
- Settings 100/100 Fixer sub-tab to choose which post types are eligible, target score, batch size, and whether to allow AI for content rewrites.
1.0.0
- Initial public release.





