Page Generator Pro provides two types of AI Dynamic Element:
- AI-specific Dynamic Elements (such as Claude AI, OpenAI or Gemini AI), each individually registered in the Classic Editor, Gutenberg / Block editor, Divi and Elementor.
- This is recommended if you wish to have greater control, choosing which AI provider to use for specific Content Groups or sections of Content Groups.
- A specific AI Dynamic Element, which uses the AI Provider specified in the Plugin’s
Settings > Integrations
screen.- This is recommended if you wish to easily switch the AI provider used for these AI Dynamic Elements from a global, single setting.
For both, the following AI providers are supported:
- Claude AI
- Deepseek
- Gemini AI
- Mistral AI
- OpenAI
- OpenRouter
- Perplexity
These AI Dynamic Elements inserts dynamic, researched content for each generated Page.
It’s different from the Research tool:
Feature | Dynamic Element | Research |
---|---|---|
Content | Queries the AI when Test or Generate is used, inserting the text result into the generated Page. | Queries the AI immediately when used, inserting the text result into the Content Group that is being edited on screen. |
Keywords | Supports the use of Keywords in the Topic field | Does not support the use of Keywords in the Topic field |
Spintax | Does not insert text as spintax into the generated Page. | Provides the option to insert the text result in spintax format into the Content Group, which is then processed when Test or Generate is used. |
Performance | Slow. Queries the AI for every single generated page, given that the Topic might include a Keyword. | Fast. Queries the AI immediately when used, with the text result saved in the Content Group. No queries are made to the AI during generation. |
Use case | You want to use the AI generated text for parts of each generated page, and/or use a Keyword in the Topic. | You want to use the AI as a starting point, possibly to generate spintax, and then make edits to the AI content before generating content. |
Adding: Classic Editor / TinyMCE
To add an AI content within the Classic Editor:
- Ensure that you’re using the Visual Editor by clicking the Visual tab:
- Click the applicable icon in the Visual Editor toolbar – for example, OpenAI:
Adding: Classic Editor / TinyMCE: Text Editor
If you’re using the Text editor instead of the TinyMCE Visual Editor above:
- Click the applicable button in the toolbar – for example, OpenAI
Adding: Gutenberg
To add AI content within Gutenberg:
- Click the plus icon between two existing blocks, or towards the top left corner of the Gutenberg editor
- Start typing the name of a supported AI service listed at the top of this documentation (for example, OpenAI) in the Search for a block field, and click the resulting option that appears within the Page Generator Pro section
- Follow the Configuration section below for each of the fields displayed in the right hand sidebar’s block panel:
Adding: Page Builders
To add AI content within other supported Page Builders, you’ll need to use that Page Builder’s Text Editor widget/module, which typically uses the Classic Editor (sometimes known as TinyMCE).
Refer to the Dynamic Elements Documentation for how to add a Dynamic Element specific to your Page Builder.
If your Page Builder does not provide a Text Editor widget/block that uses the Classic Editor, you can still use Dynamic Elements. However, you’ll need to manually build the shortcode, inserting it into your Page Builder’s content.
Provider | Shortcode Syntax |
---|---|
Claude AI | [page-generator-pro-claude-ai parameter="value" ...] |
Deepseek | [page-generator-pro-deepseek parameter="value" ...] |
Gemini AI | [page-generator-pro-gemini-ai parameter="value" ...] |
Mistral AI | [page-generator-pro-mistral-ai parameter="value" ...] |
Open AI | [page-generator-pro-openai parameter="value" ...] |
OpenRouter | [page-generator-pro-openrouter parameter="value" ...] |
Perplexity | [page-generator-pro-perplexity parameter="value" ...] |
Supported shortcode syntax parameters:
Parameter | Accepted Value | Description |
---|---|---|
topic | string or keyword | The topic that the content should be written about. |
content_type | string |
|
limit | int |
|
language | string | Two character language code. |
temperature | float | Number between 0 and 2, in 0.1 steps. A higher value will make the output more random. A lower value will make it the output more focused and deterministic. |
top_p | float | Number between 0 and 1, in 0.1 steps. Determines the pool of available tokens to choose from, between 0 and 1. An alternative to using Temperature. A higher value will include more, less accurate tokens. A lower value will include fewer, more accurate tokens. |
presence_penalty | float | Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model’s likelihood to talk about new topics. |
frequency_penalty | float | Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model’s likelihood to repeat the same line verbatim. |
Configuration: General

Topic
The Topic is the topic that the content should be based on. For example, if the Content Group relates to plumbing services, you might use “how to fix a leak” or “how to find the best plumber”.
Keywords are supported in the Topic field. For example, if your Content Group is for generating Pages for services in locations, and you have Keywords defined for both services and locations, you might use “how to find the best {service} in {location(city_name)}”. For each generated Page, the Keywords will be replaced with a Term, and the query sent to the AI provider to return content (for example, “how to find the best bathroom plumber in Birmingham”).
The more detailed the topic, the better quality content that will be returned. For example, “bathroom plumbing” will generate more generic content vs. “how to find the best bathroom plumber”.
When Content Type is Freeform, the Topic becomes the entire AI prompt. Limit and Language options are ignored, therefore you’re responsible for defining these. For example, you might specify:
Write a 250 word paragraph about how to find the best {service}. The style should be an informative, professional tone, written in French.
Content Type
Content Type determines the form and length of content to produce, depending on how you’re using the Research tool:
- Article: You want to produce a large amount of detailed content on a topic (such as “how to find the best web designer”), that will form the main content of the Content Group (and therefore generated pages). This is useful if you have yet to start writing content, and want a good starting point.
- FAQs: You want to produce a series of questions and answers based on the topic (such as “how to find the best kitchen fitter”), output as the FAQPage structured microdata format compliant with Google.
- Freeform: You want to send a freeform prompt to the AI provider, with full control over output, language, formatting, HTML etc.
- In this setting, the Limit and Language options are ignored. You’re responsible for prompting the AI provider to return the applicable language and limit, if required.
- Paragraph: You want to produce a single paragraph or two of content on a more detailed topic (such as “what is the most important quality in a web design company”), that will form part of the content of the Content Group. This is useful if you have built a block based or page builder layout, and want to inject AI generated content into a specific section.
- Review: You want to produce a customer review based on the Topic, that includes Review schema and HTML.
- Review (Plain Text, no schema): You want to produce a short customer review based on the Topic, that contains no schema markup or HTML.
Limit
The maximum length of the content.
- For Articles and Paragraphs, this is a word limit.
- For FAQs, this is the number of questions and answers to generate.
- For Freeform, the limit is ignored. Any limit imposed is a token limit from the AI provider, based on the model chosen.
Language
Language will return the created content, translated into the chosen language.
It’s recommended that the prompt be written in English.
Configuration: Tuning

Temperature
Number between 0 and 2, in 0.1 steps. A higher value will make the output more random. A lower value will make it the output more focused and deterministic.
It’s recommended to only change the Temperature or Nucleus Sample, not both.
Nucleus Sample
Number between 0 and 1, in 0.1 steps. Determines the pool of available tokens to choose from, between 0 and 1. An alternative to using Temperature. A higher value will include more, less accurate tokens. A lower value will include fewer, more accurate tokens.
It’s recommended to only change the Nucleus Sample or the Temperature, not both.
Presence Penalty
Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model’s likelihood to talk about new topics.
Frequency Penalty
Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model’s likelihood to repeat the same line verbatim.
Configuration: Errors

Ignore Errors
If enabled, an error returned from the Dynamic Element will result in blank content output, instead of an error preventing generation of the entire Page / Post / Custom Post Type.
This setting may be useful if you don’t require the Dynamic Element to always return content output.
This setting is ignored when using Test mode. If the Dynamic Element produces an error, it will always be reported in Test mode, to assist with debugging.
Performance
The AI Dynamic Element will query the AI provider for every single generated Page. Because AI services can take up to 60 seconds per request, generation times will be much slower, as each generated Page must query the AI provider one or more times (depending on the number of the AI Dynamic Elements in a Content Group) to dynamically insert content(s).
As such, we do not handle support requests regarding slow generation performance where an AI Dynamic Element is used.
If faster generation times are essential, you’re welcome to use the Research tool, enabling the Return as Spintax option. This will query the AI provider immediately when editing the Content Group, inserting the spintax content result. Each generated page will then produce a spun variation of this content, with no further queries to OpenAI required.
Regenerating / Updating Pages
Sometimes, you’ll want to re-generate Pages from a Content Group, whilst retaining the generated AI Dynamic Elements – that is, not re-running AI Dynamic Elements a second time.
To do this, we recommend using the Custom Field Dynamic Element and following the guide in the documentation.
Common Issues
All messages must have non-empty content except for the optional final assistant message
The topic must be free of any quotation marks and HTML tags. If using the Classic Editor, use the Text mode to confirm that no inline HTML is included in the request.
Common Issues: OpenAI
No text is returned
Rate limit reached for [model] in [organization]
You exceeded your current quota
OpenAI enforces strict rate limits on their API, depending on your OpenAI account tier. Refer to the OpenAI documentation for current limits based on your account tier:
If a rate limit has been reached (whether that be requests per minute, requests per day, tokens per minute or tokens per day), Page Generator Pro will wait for the amount of time instructed by OpenAI, before attempting a second time.
If a rate limit is subsequently hit a second time for the same Dynamic Element, no text will be returned, and Page Generator Pro will continue to the next operation. This is deliberate and by design, to ensure that all Pages are generated, and the generation process does not get stuck on one item.
To avoid hitting rate limits and debug issues, it’s strongly recommended to:
- Increase your OpenAI account Tier, by paying more (refer to the Usage tiers table). The higher the tier, the higher the rate limits.
- If using a free OpenAI account, consider starting with a Tier 1 or Tier 2 account.
- Consider using the OpenAI Research tool (and applying spintax to the result), where Keywords aren’t necessary for the OpenAI prompt / topic.
- Use a different OpenAI account for each site using Page Generator Pro
- It is not enough to use a different OpenAI key; OpenAI’s rate limits are set across an entire organization (account).
- Generate one Content Group at a time on your server
- If your server has multiple sites installed, each using Page Generator Pro, it’s essential to generate one Content Group at at time for one site at a time.
- Reduce the number of OpenAI Dynamic Elements in a Content Group,
- Enable debug logging per steps at https://www.wpzinc.com/support
- Set Generate Content Items per Request = 1.
- Use Test mode with the specific Resume Index of the generated Page that resulted in blank text.
- This will output any error from OpenAI, allowing you to improve e.g. the prompt / configuration to resolve.
- Inspect the
wp-content/debug.log file
, observing any errors returned from OpenAI.
[Number] is less than the minimum of 1 – ‘max_tokens’
Invalid ‘max_tokens’: integer below minimum value. Expected a value >= 1
Each OpenAI model has a maximum token limit, shared between the prompt (topic) and completion (return text).
In this case, the topic’s length is too long, resulting in no tokens remaining for the completion (return text) from OpenAI.
To resolve, ensure that the topic:
- Does not contain newlines, carriage returns, \n or \r.
- Uses the freeform prompt (if the prompt is supplying specific instructions outside of the remit of e.g. an article, paragraph etc).
- Is below the maximum token limit – and ideally, a shorter topic, as so not to exhaust the total number of remaining tokens for the response.
Please reduce the length of the messages or completion
The topic must be free of any quotation marks and HTML tags. If using the Classic Editor, use the Text mode to confirm that no inline HTML is included in the request.
Unsupported content type specified
To resolve, ensure:
- A valid Content Type is specified in the shortcode or block,
- The Topic is free of any quotation marks and HTML tags. If using the Classic Editor, use the Text mode to confirm that no inline HTML is included in the request.
The model does not exist or you do not have access to it.
Refer to OpenAI’s Documentation, noting that your account must meet the minimum Tier requirements for a given model. Generally:
- Your OpenAI account must be Tier 1 or higher (i.e. $5 paid) to access most models.
o1
ando3-mini
models require your OpenAI account to reach Tier 3 access (i.e. $100 paid and 7+ days since first successful payment).
503 Service Unavailable
Reduce the number of OpenAI Dynamic Elements in the Content Group.
For OpenAI Dynamic Elements that are smaller and repetitive in nature (i.e. the topic is not very different between each generated Page, the request is to generate a short paragraph), consider use the Research Tool, to generate e.g. a paragraph, ensuring Return as Spintax is enabled. This content will then be stored in the Content Group, in spintax format.