=== PageForge – AI Programmatic SEO, Bulk Page Generator, SEO MCP & Local SEO ===
Contributors: codefreex
Tags: programmatic seo, bulk page generator, local seo, page generator, ai seo
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.2.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AI programmatic SEO and bulk page generator for WordPress with CSV, AI, local SEO, schema, internal links, Yoast, Rank Math plus MCP support built in.

== Description ==

** #1 Programmatic SEO Plugin for WordPress, built to scale**

PageForge is an AI-powered programmatic SEO and bulk page generator for WordPress. It turns structured data into real WordPress pages, posts, or PageForge content using reusable templates, dynamic variables, SEO metadata, schema, internal links, supported page-builder layouts, AI tools, and secure MCP connectivity.

The idea is simple: build the page once, connect your data, and generate the variations you need without manually cloning and editing every page.

Use PageForge for local SEO, service-area pages, city pages, directory sites, ecommerce landing pages, SaaS use-case pages, comparison pages, affiliate content, location pages, long-tail landing pages, and repeatable agency campaigns.

PageForge is not just a page duplicator. It is designed around the full programmatic SEO workflow inside WordPress: data, templates, variables, generation, metadata, schema, internal discovery, AI assistance, publishing workflows, and AI-client connectivity.

[View PageForge Pro](https://pageforge.pro/pricing) | [Documentation](https://pageforge.pro/knowledgebase/) | [Watch the Tutorial](https://www.youtube.com/watch?v=473EiYl6bXY&t=170s)

= Watch PageForge in action =

See a real programmatic SEO workflow:

https://www.youtube.com/watch?v=tkESUzJPaLg

Watch the complete PageForge tutorial:

https://www.youtube.com/watch?v=473EiYl6bXY&t=170s

= Turn CSV data into WordPress pages =

Start with a CSV containing the information that changes from page to page. This can include locations, services, products, categories, industries, prices, calls to action, phone numbers, addresses, keywords, or any structured values your campaign needs.

Every CSV header becomes a PageForge variable.

Example CSV:

`City,State,Service,Phone`

`Austin,Texas,Emergency Plumbing,(555) 123-0001`

`Miami,Florida,AC Repair,(555) 123-0002`

`Denver,Colorado,Roof Inspection,(555) 123-0003`

Create one reusable template and place variables wherever content should change.

Example title:

`{Service} in {City}, {State}`

Example slug:

`{service}-{city}-{state}`

Example content:

`Looking for {Service} in {City}, {State}? Contact us on {Phone}.`

PageForge replaces those variables with the values from each CSV row and creates the corresponding WordPress content.

Use variables across supported:

* Page titles
* URL slugs
* Headings
* Body content
* Excerpts
* SEO titles
* Meta descriptions
* Schema fields
* Gutenberg content
* Elementor layouts
* Divi layouts

Supported generated content can also resolve PageForge variable shortcodes such as:

`[pageforge var="City"]`

Compatible legacy `[pf ...]` variable forms remain supported where applicable.

= Build a complete programmatic SEO workflow =

Basic bulk page generators create pages. PageForge is built to help you manage what happens around those pages too.

With PageForge you can:

* Import structured data from CSV
* Create reusable WordPress templates
* Use any CSV column as a dynamic variable
* Generate Pages, Posts, or PageForge custom post types
* Generate up to 100 pages per run in PageForge Free
* Create dynamic titles and URL patterns
* Choose Publish, Private, Draft, or Pending Review
* Clone supported Gutenberg layouts
* Clone supported Elementor layouts
* Clone supported Divi layouts
* Preserve supported builder metadata
* Create dynamic SEO titles and meta descriptions
* Sync supported metadata with Yoast SEO
* Sync supported metadata with Rank Math
* Add schema markup
* Skip duplicate slugs
* Build internal-link and discovery hubs
* Use AI tools for planning, metadata, and supporting content
* Preview and validate campaigns before generation
* Connect supported AI clients through MCP

The result is a repeatable system for turning structured data into search-focused WordPress content without rebuilding the same page manually.

= Built for local SEO =

PageForge is especially useful for local SEO campaigns where one service, product, or offer needs to be matched with many locations.

Create page patterns such as:

* `{Service} in {City}`
* `{Service} in {Area}`
* `{Service} near {Location}`
* `{Product} in {City}`
* `{Business Type} in {Location}`
* `{Category} for {Use Case}`
* `{Software} for {Industry}`
* `{Solution} for {Audience}`

Build the layout once, then vary the information that matters for each page: location, service, offer, contact details, headings, metadata, schema, calls to action, or other campaign data.

This works well for agencies, local service businesses, franchises, multi-location companies, directories, real estate sites, ecommerce stores, SaaS companies, publishers, affiliate sites, and lead-generation projects.

= Create more than city pages =

Programmatic SEO is not limited to location keywords.

Use PageForge to build structured page sets for:

* Cities and suburbs
* Service areas
* Service and location combinations
* Product and location combinations
* Franchise locations
* Multi-location businesses
* Directory listings
* Real estate areas
* Property landing pages
* Ecommerce categories
* Ecommerce use cases
* SaaS industries
* SaaS audiences
* Software integrations
* Comparison pages
* Alternative pages
* Affiliate landing pages
* Long-tail keyword pages
* Lead-generation pages
* Events
* Courses
* Venues
* Destinations
* Topic clusters

If a useful page type can be represented with structured data and a reusable template, PageForge can help turn that structure into a scalable WordPress workflow.

= PageForge Free =

PageForge Free gives you the core tools required to build, test, and launch a programmatic SEO campaign.

**Bulk generation**

* Generate unlimited pages
* Create WordPress Pages
* Create WordPress Posts
* Create PageForge Pages/Custom Post
* Build reusable templates
* Use any CSV column as a variable
* Replace variables in titles
* Replace variables in slugs
* Replace variables in content
* Replace variables in excerpts
* Replace variables in supported SEO metadata
* Choose Publish, Private, Draft, or Pending Review
* Skip duplicate slugs automatically

**Builder support**

Use layouts you already work with. PageForge supports compatible workflows for:

* Gutenberg/Block
* Elementor
* Divi
* Reusable blocks
* Standard WordPress content
* Supported WordPress templates

PageForge can preserve supported builder data while replacing dynamic values for each generated page.

**SEO features**

PageForge can handle supported SEO fields during generation, including:

* Dynamic title patterns
* Dynamic slug patterns
* Dynamic SEO titles
* Dynamic meta descriptions
* Yoast SEO metadata sync
* Rank Math metadata sync
* PageForge native SEO output
* Schema markup
* HTML discovery hubs
* Native PageForge Sitemap block
* `[pageforge_sitemap]` shortcode

= SEO metadata that changes with every page =

A scalable page system needs scalable metadata.

Use PageForge variables inside supported SEO title and meta-description patterns so each generated page can receive metadata based on the same source data used for its visible content.

For example:

`{Service} in {City} | {Business}`

can become a different SEO title for every row in the campaign.

Supported metadata can sync with Yoast SEO, Rank Math, or PageForge native SEO output.

PageForge can also add schema configured for the generated page so structured data can follow the same repeatable workflow.

= Internal discovery for large page sets =

Large programmatic SEO campaigns need clear ways for people and search crawlers to find related pages.

PageForge includes a native Sitemap block and shortcode for creating structured collections of generated content.

Basic shortcode:

`[pageforge_sitemap]`

Example:

`[pageforge_sitemap post_type="pf_page,page" generated_only="1" anchor_source="meta_title" description_source="meta_description" columns="3"]`

Use it for location hubs, service directories, campaign indexes, topic collections, and browsable groups of generated pages.

= AI tools when you want them =

AI is optional in PageForge. The core CSV and template workflow works without an AI provider.

When you want AI assistance, connect your own supported API key.

PageForge Free supports:

* OpenAI
* Anthropic / Claude
* Google Gemini
* DeepSeek

Use AI tools for:

* Site planning
* Page-pattern ideas
* Keyword directions
* Metadata ideas
* Supporting blog content
* Campaign planning

PageForge Free keeps bulk page generation template-driven while AI assists around the campaign.

PageForge Pro can add deeper AI workflows for larger campaigns, including AI content for individual generated pages and bulk metadata optimisation.

= MCP: connect PageForge with AI clients =

PageForge 1.2 adds Model Context Protocol support so compatible AI clients can work with controlled PageForge capabilities.

PageForge Free includes MCP Lite.

MCP Lite is built around inspection and preparation. Depending on the available data, connection permissions, and supported client, it can expose PageForge information for:

* Reading
* Analysing
* Validating
* Previewing
* Dry-run workflows

Compatible clients can inspect supported information such as:

* Site status
* Plugin and version status
* Available templates
* Generated PageForge pages
* Dynamic variables
* Builder compatibility
* Generation previews
* Campaign validation
* SEO information
* Supported metadata
* PageForge diagnostics

Free MCP does not expose live-write tools.

**ChatGPT**

PageForge supports OAuth-based connection workflows intended for compatible ChatGPT MCP/App connector environments.

**Claude**

PageForge supports OAuth-based remote MCP connection workflows intended for compatible Claude environments.

**Other MCP clients**

PageForge also supports Personal Access Tokens for compatible developer and IDE clients that accept an Authorization header.

Depending on the current capabilities of the client, these can include:

* VS Code
* Cursor
* Claude Code
* Roo Code
* Codex
* GitHub Copilot
* Other MCP-compatible clients

MCP is disabled by default and can be enabled by an authorised WordPress user.

= PageForge Pro =

PageForge Pro is built for agencies, growth teams, marketers, publishers, and larger WordPress sites that want to move from controlled generation into deeper automation.

Depending on your active plan and current PageForge Pro version, Pro workflows can include:

* Unlimited page generation
* Google Sheets data-source sync
* Queue processing
* Scheduled generation
* Scheduled publishing
* Drip publishing
* AI content for individual generated pages
* Dynamic AI metadata
* Bulk AI metadata optimisation
* Schema workflows
* Larger AI blog workflows
* AI site reports
* AI SEO reports
* AI keyword reports
* AI content-planning reports
* Template update workflows
* Token update workflows
* Source-data update workflows
* Larger multi-site campaigns
* Agency-scale campaigns
* Advanced licensed MCP operations

PageForge Free is built to launch and validate the workflow.

PageForge Pro is built to automate and scale it.

[Compare PageForge plans](https://pageforge.pro/pricing)

= Designed for WordPress workflows =

PageForge works with standard WordPress content and supports compatible workflows for:

* WordPress Pages
* WordPress Posts
* PageForge Pages
* WooCommerce
* Gutenberg
* Elementor
* Divi
* Avada
* Reusable blocks
* WordPress page templates
* Yoast SEO
* Rank Math
* Advanced Custom Fields workflows
* All WordPress themes

Start from the WordPress layout you want to scale, connect your data, preview the output, and generate the campaign from a repeatable structure.

= Preview before generation =

Before processing a larger campaign, PageForge lets you review the structure you are about to generate.

Check the data, template, variables, page titles, slugs, post type, post status, metadata, schema, and builder layout.

A small Draft batch makes it easy to confirm the final output before continuing with the full dataset.

= Why teams use PageForge =

Manually creating dozens or hundreds of similar landing pages costs time and makes consistency harder to maintain.

PageForge turns the repeated parts into a system.

Your team controls the source data and reusable template. PageForge handles the repetitive production layer that connects them.

That means an agency can reuse proven campaign structures, a local business can build service-area coverage, a SaaS company can create industry or audience pages, an ecommerce team can build structured landing-page sets, and a publisher can expand repeatable content collections without recreating each page from scratch.

The workflow stays inside WordPress, so generated items remain normal WordPress content that can be reviewed and edited after generation.

= Start with one template =

You do not need to redesign your site around PageForge.

Choose the page structure you want to scale, create the data source, add PageForge variables where content should change, preview the result, and generate a small batch.

When the pattern is ready, use the same workflow for the rest of the campaign.

PageForge gives WordPress teams a practical way to move from one-off page production to structured programmatic SEO without replacing the tools, builders, and SEO plugins they already use.

= Useful links =

* [PageForge Website](https://pageforge.pro)
* [PageForge Pro Pricing](https://pageforge.pro/pricing)
* [PageForge Knowledgebase](https://pageforge.pro/knowledgebase/)
* [WordPress.org Support Forum](https://wordpress.org/support/plugin/pageforge/)
* [Live Ranking Workflow Video](https://www.youtube.com/watch?v=tkESUzJPaLg)
* [Step-by-Step Tutorial](https://www.youtube.com/watch?v=473EiYl6bXY&t=170s)

= A better workflow for agencies and growth teams =

PageForge is useful when the same campaign structure needs to be repeated across clients, markets, services, products, or locations.

Instead of treating every landing page as a separate production task, you can standardise the parts that should stay consistent and keep the changing information in your dataset.

For an agency, that can mean one proven local SEO template used across multiple service areas. For a SaaS company, it can mean one industry template connected to a structured list of industries, pain points, features, and calls to action. For ecommerce, it can mean landing pages built around product categories, locations, use cases, or buyer segments.

The template controls the presentation. The data controls the variation. PageForge connects the two.

This approach makes campaigns easier to expand because the structure is already defined. Add new rows, review the output, and generate the next set instead of rebuilding each page manually.

= Keep your existing SEO stack =

PageForge is designed to fit into WordPress rather than force a separate publishing system.

If your team already uses Yoast SEO or Rank Math, PageForge can work with supported metadata fields. If your site is built with Gutenberg, Elementor, or Divi, PageForge can use compatible layouts as the base for generated content. If your workflow depends on WordPress Pages, Posts, custom PageForge content, reusable blocks, or supported templates, those structures can remain part of the campaign.

This lets teams add programmatic SEO to an existing WordPress site without abandoning the tools already used to design, edit, publish, and optimise content.

= Build campaigns around real search patterns =

PageForge gives you the production system. Your dataset determines how specific the campaign can become.

A local business can combine service, city, neighbourhood, pricing, opening hours, and contact information. A directory can combine category, location, features, and listing details. A SaaS company can combine industry, audience, use case, integration, pain point, and feature data. An ecommerce team can combine product type, use case, category, location, or customer segment.

Because variables come from your own CSV headers, the campaign is not restricted to a predefined set of fields.

Create the data model that matches the pages you want to publish, then use those fields throughout the template, metadata, schema, and supported builder content.

= From first campaign to scale =

Start with a small dataset and a page pattern.

Build the template, connect the variables, preview several rows, and generate a Draft batch. Once the structure is right, extend the dataset and continue with the same system.

PageForge Free gives you room to prove that workflow with controlled batches. PageForge Pro is available when the campaign needs larger generation capacity, scheduling, queues, Google Sheets, deeper AI workflows, or advanced MCP operations.

The product grows with the campaign instead of requiring a different tool when the page set becomes larger.

= One WordPress plugin, one repeatable system =

PageForge brings data-driven page generation, SEO metadata, schema, internal discovery, supported builders, optional AI, and MCP connectivity into one WordPress workflow.

That makes it useful for teams that want more than a one-time bulk import.

Create the structure once, keep the campaign data organised, and use PageForge as the production layer between the two.


== Installation ==

= Install from WordPress =

1. Go to **Plugins > Add New** in WordPress.
2. Search for **PageForge**.
3. Click **Install Now**.
4. Activate PageForge.
5. Open **PageForge** from the WordPress admin menu.
6. Add a CSV data source.
7. Create a reusable template.
8. Add tokens matching your CSV headers.
9. Configure the title, slug, post type, status, metadata, schema, and layout.
10. Run a small Draft batch.
11. Review the generated content.
12. Generate the remaining campaign when the template is ready.


= Manual installation =

1. Upload the PageForge plugin folder to `/wp-content/plugins/`.
2. Activate PageForge from the **Plugins** screen.
3. Open **PageForge** in wp-admin.
4. Complete the initial setup.


= Recommended first campaign =

For your first campaign, use a CSV containing three to five rows and generate the output as Drafts.

Verify:

* Token replacement
* Layout
* URLs
* Metadata
* Schema
* Mobile layout
* Internal links

Then process the larger dataset.


== Screenshots ==

1. PageForge dashboard with generation totals, recent activity, and quick actions.
2. Generate screen for choosing a template, CSV data source, post status, and generation settings.
3. Data Sources screen for uploading and managing CSV files.
4. Templates screen for configuring title patterns, slug patterns, metadata, schema, and base layouts.
5. Blocks and Shortcodes screen with the PageForge Sitemap block and shortcode options.
6. AI Site Planner for planning keyword patterns, page structures, and supporting content.
7. Connections screen for MCP / AI clients, and connection diagnostics.
8. Settings screen for AI providers, schema defaults, analytics options, and generation controls.


== Frequently Asked Questions ==

= What is PageForge? =

PageForge is a WordPress programmatic SEO and bulk page generator.

It combines structured CSV data with reusable WordPress templates to create real WordPress pages, posts, or custom post types with dynamic content, URLs, metadata, schema, and supported builder layouts.


= What is programmatic SEO? =

Programmatic SEO is a structured approach to creating search-focused pages at scale from repeatable templates and data.

Examples include:

* Service-and-city pages
* Product-and-location pages
* Directory listings
* Comparison pages
* Industry-specific landing pages
* Audience-specific pages


= How many pages can PageForge Free generate? =

PageForge Free processes up to 100 pages in one generation run.

You can run additional controlled batches when you need to create more pages.


= Does PageForge Free limit the number of CSV tokens? =

No fixed token list is required.

Any CSV column can become a PageForge token.


= How do dynamic tokens work? =

If your CSV contains:

`City,Service,Phone`

you can use:

`{City}`

`{Service}`

`{Phone}`

inside supported PageForge template fields.

Each generated page receives values from the corresponding CSV row.


= Can I use PageForge variables as shortcodes? =

Supported PageForge-generated content can also resolve PageForge variable shortcodes such as:

`[pageforge var="City"]`

Legacy PageForge content using compatible `[pf ...]` variable forms remains supported where applicable.


= Are token names case-sensitive? =

Use token names that match your CSV headers and the format shown inside PageForge.

Avoid unnecessary spaces and duplicate CSV headers.


= Can I use PageForge for local SEO? =

Yes.

Local SEO and service-area pages are core PageForge use cases.

Examples include:

`{Service} in {City}`

`{Service} in {Area}`

`{Product} in {Location}`


= Can PageForge create product, directory, affiliate, or SaaS pages? =

Yes.

PageForge is data-driven.

Any repeatable page type that can be represented by structured data and a reusable template can be considered for a PageForge campaign.


= Does PageForge create real WordPress content? =

Yes.

Generated items are stored as normal WordPress content entries and can be reviewed and edited through WordPress.


= Which post statuses are supported? =

PageForge supports:

* Publish
* Private
* Draft
* Pending Review

Final availability depends on the permissions of the WordPress user performing the operation.


= Does PageForge work with Gutenberg? =

Yes.

PageForge supports standard Gutenberg content and includes a native PageForge Sitemap block.


= Does PageForge work with Elementor? =

Yes.

PageForge can use supported Elementor layouts as the base for generated pages and replace PageForge tokens in supported Elementor content and metadata.


= Does PageForge work with Divi? =

Yes.

PageForge supports compatible Divi layout-cloning workflows where required builder data is available.


= Does PageForge work with Yoast SEO? =

Yes.

PageForge can sync generated SEO titles and meta descriptions with supported Yoast SEO fields.


= Does PageForge work with Rank Math? =

Yes.

PageForge can sync generated SEO titles and meta descriptions with supported Rank Math fields.


= Does PageForge add schema markup? =

Yes.

PageForge can output schema based on the configured template and schema settings.

Always validate final structured data and ensure it accurately represents visible page content.


= How does duplicate protection work? =

PageForge checks the intended page slug before creation.

If a matching slug already exists, PageForge can skip that item to reduce accidental duplicate URLs.


= Can PageForge build internal links between generated pages? =

PageForge includes a Sitemap block and `[pageforge_sitemap]` shortcode for displaying structured collections of generated content.

These can be used on hub pages to improve navigation and discovery.


= What is PageForge MCP? =

PageForge MCP allows compatible AI clients to securely interact with controlled PageForge capabilities through Model Context Protocol.

PageForge Free includes MCP Lite for read, analysis, validation, preview, and dry-run workflows.

PageForge Pro can provide additional licensed operations.


= Can I connect ChatGPT to PageForge? =

PageForge includes OAuth-based MCP connection support intended for compatible ChatGPT MCP/App connector environments.

Actual connector availability depends on the current ChatGPT product, plan, and MCP capabilities.


= Can I connect Claude to PageForge? =

PageForge includes OAuth-based MCP support for compatible Claude remote connector environments.

This is separate from the Anthropic API key used by PageForge's AI content tools.


= Can I connect Cursor, VS Code, Claude Code, Roo Code, Codex, or GitHub Copilot? =

PageForge provides Personal Access Token support for compatible MCP clients that allow you to configure an Authorization header.

Exact setup depends on the MCP support and configuration format of the client you use.


= Does MCP give an AI full administrator access to WordPress? =

No.

PageForge MCP uses scopes and the permissions of the WordPress user associated with the connection.

Free MCP does not expose live write tools.


= Is MCP enabled automatically? =

No.

PageForge MCP is disabled by default and must be explicitly enabled by an authorised WordPress user.


= Does PageForge guarantee rankings? =

No plugin can guarantee a search ranking.

PageForge helps you produce technically structured page systems more efficiently, but results depend on:

* Search intent
* Competition
* Content quality
* Originality
* Authority
* Internal links
* Indexing
* Technical SEO
* Ongoing optimisation


= Can PageForge pages rank within 24 hours? =

Pages can sometimes be discovered, indexed, or ranked quickly, particularly on established websites or low-competition queries, but there is no fixed ranking timeline.

PageForge reduces production time.

It does not control search-engine crawling, indexing, or ranking decisions.


= Does PageForge use AI automatically? =

No.

The core CSV workflow works without AI.

AI requests are made only when an authorised user configures a supported provider and uses an AI-powered feature.


= Which AI providers are supported in PageForge Free? =

PageForge Free supports:

* OpenAI
* Anthropic / Claude
* Google Gemini
* DeepSeek

using your own API key.


= Are AI API credits included? =

No.

API usage is billed and limited according to your account with the selected provider.


= What AI blog lengths are available in Free? =

The Free AI Blog Generator includes:

* Short
* Medium
* Long

The Long preset supports drafts up to 1000 words.


= Does PageForge Free generate a unique AI article for every bulk-generated page? =

No.

Free bulk-generated pages remain template-driven.

AI article-per-page automation is a Pro workflow.


= Is Google Sheets supported? =

Live Google Sheets integration is available in PageForge Pro.

PageForge Free uses CSV data sources uploaded to WordPress.


= What does PageForge Pro add? =

PageForge Pro is designed for larger operations and can include:

* Unlimited generation
* Google Sheets sync
* Queue processing
* Scheduling
* Drip publishing
* AI content per page
* Bulk AI metadata
* Reports
* Deeper campaign automation
* Licensed MCP operations


= Can I edit generated pages later? =

Yes.

Generated pages are real WordPress content and can be edited later.


= Why are tokens visible on my published page? =

Common causes include:

* Token does not match the CSV header
* CSV value is empty
* CSV header contains unexpected spaces
* CSV is malformed
* Builder content stores text in an unsupported location

Run a small Draft campaign and compare template tokens with CSV headers.


= Will generating many pages slow down my WordPress website? =

Performance depends on:

* Hosting
* Database size
* Theme
* Plugins
* Caching
* Campaign size

For larger campaigns, use suitable hosting and controlled generation workflows.

PageForge Pro includes queue and scheduling functionality for larger jobs.


= Can bulk-generated pages harm SEO? =

Automation itself is not the problem.

Publishing large numbers of thin, inaccurate, duplicated, or unhelpful pages can perform poorly.

Use:

* Accurate data
* Page-specific value
* Editorial review
* Appropriate indexing
* Useful internal links
* Strong site architecture


= What should I check before publishing a large campaign? =

Check:

* Token replacement
* Page titles
* URL slugs
* Page-specific content
* SEO metadata
* Schema
* Mobile layout
* Calls to action
* Canonical behaviour
* Indexability
* Internal links
* Data accuracy


== Changelog ==

= 1.2.1 =

* Fixed Claude Sonnet 5 requests by omitting unsupported non-default sampling parameters.
* Updated Gemini model choices to current Google model identifiers and defaulted Gemini to Gemini 3.6 Flash.
* Fixed UTF-8 length fallback on hosts without mbstring.
* Added Pexels attribution links in admin areas that use Pexels images.

= 1.2.0 =

* Added MCP support for compatible AI clients using Model Context Protocol revision 2026-07-28.
* Added PageForge Free MCP Lite with read, analyse, validate, preview, and dry-run capabilities only.
* Added OAuth-based remote AI connector support for compatible ChatGPT and Claude environments.
* Added OAuth Protected Resource Metadata and authorization server metadata.
* Added PKCE S256 protection, resource indicators, and token revocation support.
* Added WordPress-based MCP consent so connections operate as a specific WordPress user.
* Added Personal Access Tokens for compatible MCP clients that provide their own Authorization header.
* Added individually rotatable and revocable Personal Access Tokens stored only as secure hashes.
* Added granular MCP scopes.
* Added a Connections screen for ChatGPT, Claude, other MCP clients, OAuth clients, grants, Personal Access Tokens, and connection diagnostics.
* Added MCP connection diagnostics for HTTPS, REST reachability, Authorization-header forwarding, OAuth metadata, and recent rejected requests.
* Added OAuth Client management for connectors that require a Client ID and Client Secret.
* Improved MCP connection-status reporting so a created credential is not incorrectly reported as an active client connection.
* Fixed MCP transport handling for unsupported HTTP methods.
* Fixed protocol-version mismatch handling.
* Fixed Connections dialogs appearing automatically when the page loads.
* Improved MCP Origin validation.
* Added MCP authentication and expensive-request rate limiting.
* Added per-object capability checks for MCP operations that access WordPress content.
* Improved MCP credential storage and lookup.
* Improved PageForge secret-field handling so stored provider credentials are not rendered back into the browser.
* Improved external provider URL validation.
* Updated bundled translation source strings and language catalogues for the 1.2.0 interface.

= 1.1.8 =

* Added bundled German and French translations for PageForge admin UI, block labels, AJAX notices, and JavaScript messages.
* Added bundled English (US), English (UK), and Portuguese (Portugal) translation files.
* Added standard POT, PO, and MO language files.
* Improved text-domain loading and localized previously hard-coded admin strings.

= 1.1.7 =

* Updated WordPress.org readme and release documentation.

= 1.1.6 =

* Added AI Blog to the PageForge top navigation.
* Expanded OpenAI, Claude, Gemini, and DeepSeek model choices.
* Added Gemini and Claude provider support to the Free AI request layer.
* Expanded schema business-type choices.
* Improved frontend JSON-LD output.
* Improved dashboard action spacing.

= 1.1.5 =

* Security and maintenance improvements.

= 1.1.4 =

* Security and maintenance improvements.

= 1.1.3 =

* Maintenance release.

= 1.1.2 =

* Expanded WordPress.org listing with clearer Free and Pro workflows.
* Expanded PageForge Pro automation and reporting positioning.
* Aligned Free messaging with current plugin limits.

= 1.1.1 =

* Set the Free CSV generator limit to 100 pages per run.
* Updated admin and WordPress.org messaging.

= 1.1.0 =

* Added Free AI provider selection.
* Added Short, Medium, and Long AI Blog presets.
* Improved packaging and WordPress.org release metadata.
* Refreshed programmatic SEO and local SEO listing copy.

= 1.0.9 =

* Added template-level generated post statuses.
* Improved Elementor layout cloning.
* Expanded supported base-layout choices.

= 1.0.8 =

* Added the native PageForge Sitemap block.
* Added `[pageforge_sitemap]`.
* Improved Elementor, Gutenberg, and Divi layout cloning.
* Improved runtime token replacement.

= 1.0.7 =

* Updated WordPress.org listing and keyword targeting.

= 1.0.6 =

* Added tutorials and minor fixes.

= 1.0.5 =

* UI improvements and bug fixes.

= 1.0.4 =

* Maintenance release.

= 1.0.3 =

* Removed custom script insertion functionality for WordPress.org repository compliance.

= 1.0.2 =

* WordPress.org public release.

= 1.0.1 =

* Initial CSV, template-token, and AI-assisted generation release.


== Upgrade Notice ==

= 1.2.1 =

Fixes Claude Sonnet 5 requests, Gemini model IDs, UTF-8 fallback behavior without mbstring, and Pexels admin attribution links.

= 1.2.0 =

Adds PageForge MCP Lite, OAuth-based AI client connections, Personal Access Tokens for compatible MCP clients, granular scopes, connection diagnostics, security improvements, and improved secret handling.

Existing PageForge CSV campaigns, templates, generated pages, and dynamic-token workflows remain supported.


== External Services ==

PageForge can connect to optional third-party services when you explicitly configure and use them.


= External services and privacy =

External integrations remain inactive until an authorised WordPress user configures the required connection and uses a feature that requires it.

When an AI feature is used, the prompt and the content or settings required to complete that request are sent to the selected provider.

Processing is governed by that provider's own terms, privacy policy, API limits, billing, retention policies, and regional availability.


= OpenAI =

* **Service:** OpenAI API
* **Use:** AI site planning, metadata generation, and blog-draft generation when OpenAI is selected.
* **Data Sent:** Prompt and relevant page/settings context required for the selected AI action.
* [OpenAI Terms of Use](https://openai.com/policies/terms-of-use/)
* [OpenAI Privacy Policy](https://openai.com/policies/privacy-policy/)


= DeepSeek =

* **Service:** DeepSeek API
* **Use:** AI site planning, metadata generation, and blog-draft generation when DeepSeek is selected.
* **Data Sent:** Prompt and relevant page/settings context required for the selected AI action.
* [DeepSeek Open Platform Terms of Service](https://cdn.deepseek.com/policies/en-US/deepseek-open-platform-terms-of-service.html)
* [DeepSeek Privacy Policy](https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html)


= Anthropic / Claude =

* **Service:** Anthropic API
* **Use:** AI site planning, metadata generation, and blog-draft generation when Claude is selected.
* **Data Sent:** Prompt and relevant page/settings context required for the selected AI action.
* [Anthropic Terms](https://www.anthropic.com/legal/consumer-terms)
* [Anthropic Privacy Policy](https://www.anthropic.com/legal/privacy)


= Google Gemini =

* **Service:** Google Gemini API
* **Use:** AI site planning, metadata generation, and blog-draft generation when Gemini is selected.
* **Data Sent:** Prompt and relevant page/settings context required for the selected AI action.
* [Google APIs Terms of Service](https://developers.google.com/terms)
* [Google Privacy Policy](https://policies.google.com/privacy)


= Pexels =

* **Service:** Pexels stock image search
* **Use:** Optional featured-image lookup for generated content.
* **Data Sent:** Search keywords and your API credential as required by the Pexels API.
* [Pexels Terms](https://www.pexels.com/terms-of-service/)
* [Pexels Privacy Policy](https://www.pexels.com/privacy-policy/)


= Google Analytics =

* **Service:** Google Analytics 4 Measurement Protocol
* **Use:** Optional event tracking sent to your own GA4 property.
* **Data Sent:** PageForge event information, page counts, and a hashed site identifier when configured.
* [Google Analytics Terms](https://marketingplatform.google.com/about/analytics/terms/us/)
* [Google Privacy Policy](https://policies.google.com/privacy)


= PageForge MCP remote connections =

* **Service:** Model Context Protocol connection between your WordPress site and an AI/MCP client you choose to configure.
* **Use:** Allows an explicitly authorised MCP-compatible client to access controlled PageForge tools.
* **Data Sent:** Only information requested through a permitted PageForge MCP tool and allowed by the connected WordPress user's permissions and MCP scopes.
* **Authentication:** OAuth-based remote connections or Personal Access Tokens depending on the client.
* **Default State:** MCP is disabled until an authorised WordPress user enables it.
* **Free Behaviour:** PageForge Free MCP exposes read, analysis, validation, preview, and dry-run capabilities only.

The third-party AI/MCP client you connect may separately process information returned by PageForge according to that client's own terms and privacy policy.


== Privacy ==

PageForge does not send data to PageForge or Codefreex servers during normal Free CSV generation.

External requests are only made to services or clients you explicitly configure and use.

If you configure an AI provider, relevant prompts and context may be sent to that provider.

If you configure Pexels, search terms may be sent to Pexels.

If you configure Google Analytics, event information may be sent to your GA4 property.

If you enable and authorize MCP, PageForge can return permitted WordPress/PageForge information to the MCP client you explicitly connect.

MCP is disabled by default.

PageForge Free MCP does not register live-write tools.


== License ==

PageForge is licensed under the GPLv2 or later.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation.