Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/wisnuub/keyword-page-generator/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
v2.3 — Generate multiple page/post variations by replacing keywords across your content, with optional AI-powered unique rewriting.
A free WordPress plugin that duplicates a base page or post by replacing one or more keywords with a list of alternatives — perfect for location pages, service variations, or any repeatable content pattern.
Features
- Multi-keyword replacement with up to 5 pairs per generation
- Matrix mode — cross-product of all keyword pairs (e.g., 3 locations × 4 services = 12 pages)
- Independent mode — generate pages for each pair separately
- Supports both Pages and Blog Posts
- AI content rewriting via OpenAI, Anthropic (Claude), or Google Gemini
- Rewrite scope — Widget/Block level or Section/Row level for Elementor
- Builder auto-detection: Elementor, Divi, WPBakery, Gutenberg, Classic Editor
- Builder-aware AI extraction — preserves page builder layouts and structure
- Encrypted API key storage (AES-256-CBC)
- Live page counter with limit warnings
- Preview first page before bulk generating
- Recursive replacement in serialized post meta (ACF, Yoast, page builder data)
- Longest-match-first replacement to avoid partial matches
- CSV import for keyword lists (bulk or per-pair)
- AJAX batch processing with live progress bar and cancel button
- Scheduled generation via WP-Cron (background queue or timed)
- Slug sanitization with collision detection
UI Overview
The plugin uses a single admin page with three tabs:
| Tab | Description |
|---|---|
| ⚡ Generate | Main generation form — base template, keyword pairs, mode, AI rewrite, preview & generate |
| 🤖 AI Settings | Configure provider (OpenAI / Anthropic / Gemini), API key, model, and default prompt |
| 🔌 Page Builders | Shows which page builders are detected with per-builder handling notes |
The sidebar on the Generate tab shows detected page builders at a glance, and a How It Works quick reference.
Requirements
- WordPress 5.8+
- PHP 7.4+
- OpenAI, Anthropic, or Google Gemini API key (optional, for AI rewriting)
Installation
- Clone or download this repo
- Upload the folder to
/wp-content/plugins/ - Activate in Plugins
- Go to Page Generator in the admin menu
Usage
Basic (Single Keyword)
- Select a base page (e.g., "Plumber Melbourne CBD")
- Add a keyword pair: Find
Melbourne CBD, Replace withSydney, Brisbane, Perth - Click Generate All Pages — creates 3 new pages
Matrix (Multiple Keywords)
- Select a base page (e.g., "Corporate Function Venue Melbourne CBD")
- Pair 1: Find
Melbourne CBD, Replace withSydney, Brisbane - Pair 2: Find
Corporate Function Venue, Replace withPrivate Dining, Birthday Party - Choose Matrix mode — generates 4 pages (2 locations × 2 services)
AI Rewriting
- Go to the AI Settings tab
- Select your provider (OpenAI, Anthropic, or Google Gemini) and enter your API key
- OpenAI: platform.openai.com/api-keys
- Anthropic: console.anthropic.com/settings/keys
- Gemini: aistudio.google.com/apikey
- Save settings, then go back to the Generate tab
- Toggle Enable AI content rewriting and choose a rewrite scope:
- Widget/Block — rewrites each text element individually (faster, more targeted)
- Section/Row — rewrites all text in each Elementor section together (better context)
Changelog
v2.3
- Tab-based UI: Generate, AI Settings, Page Builders — all on one page (no separate submenu)
- Added Google Gemini support (gemini-2.0-flash, gemini-2.5-pro)
- Added AI rewrite scope: Widget/Block vs Section/Row for Elementor
- Post type dropdown now live-refreshes template list via AJAX when switching Pages ↔ Blog Posts
- AI rewrite section always visible — shows setup link if no API key is configured
- Page Builders detection card moved to sidebar on Generate tab
- AI Settings tab shows clickable "Get key →" links for each provider
- Fixed "Invalid base page or keyword pairs" error caused by form serializing after disabling
- Fixed Elementor preview broken page (_elementor_css now excluded from meta copy)
- Redesigned UI: pink accent (#FF2462), dark gradient banner, two-column layout, 980px max-width
v2.1
- AJAX batch processing with live progress bar and cancel button
- CSV import for keyword lists (bulk import with headers, or per-pair)
- Scheduled generation via WP-Cron (background queue or timed publishing)
- Job status panel showing active/completed scheduled jobs
v2.0
- Rebranded from Suburb Page Generator to Keyword Page Generator
- Multi-keyword pair support with matrix and independent generation modes
- AI content rewriting via OpenAI and Anthropic APIs
- Builder auto-detection (Elementor, Divi, WPBakery, Gutenberg, Classic)
- Content type selector (pages and blog posts)
- Preview toggle with usage limit warning
- Live page counter with matrix/independent calculation
v1.0
- Initial release by Steven Chun (Suburb Page Generator)
- Single keyword (suburb) replacement
- Basic page duplication with meta copying
Roadmap
- [x] Multi-keyword pair replacement
- [x] Matrix (cross-product) generation
- [x] AI content rewriting (OpenAI + Anthropic + Gemini)
- [x] Builder auto-detection and builder-aware AI extraction
- [x] Blog post support
- [x] Batch processing with progress bar
- [x] Scheduled generation via WP-Cron
- [x] CSV import for keyword lists
- [x] Tab-based single-page UI
- [ ] Template library (save/load keyword pair configurations)
- [ ] WP-CLI support for headless generation
Credits
Based on Suburb Page Generator by Steven Chun.
License
GPL-2.0+