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.
Wikimedia Pageviews API (when “Wikipedia Top” keyword source is enabled)
Used to fetch the previous day’s most-viewed Wikipedia articles as a keyword discovery source. As of v1.3.0 no Wikipedia content is fetched for article bodies — only article titles are read, to seed the keyword pool.
- 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
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 — only short keyword and question strings are read.
- 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.