AI assistance
Optional, reviewable drafts from your own AI provider. Nothing is saved or published until you review it, and every other Pro feature works without a key.
Supported providers
| Provider | Default model | Notes |
|---|---|---|
| OpenAI | gpt-4.1-mini | The default. A ChatGPT subscription doesn't include API access. |
| Anthropic | claude-haiku-4-5-20251001 | Claude models |
| Google Gemini | gemini-2.5-flash | Free-tier limits are low; enable billing for regular use. |
| Groq | llama-3.3-70b-versatile | Fast open models |
| OpenRouter | openai/gpt-4.1-mini | Many models, one key |
| Mistral | mistral-small-latest | |
| Custom endpoint | You choose | Any OpenAI-compatible HTTPS endpoint. The key is optional and only ever sent to that host. |
| WordPress AI | auto | The AI connectors set up in WordPress 7.0 or later. No key is stored by the plugin. |
Connecting a provider
- Provider cards with their status (Connected, Not tested…)
- Connection: API key, model picker, Test Connection
- "How to connect" guide in the sidebar
- Pick a provider card
Each card shows its status: Connected, Not connected, Not tested, Invalid credentials, Rate limited or Error. The sidebar shows "How to connect" with links to get a key.
- Save the key
Paste it into API key and click Save Key: "Key saved for OpenAI. Loading its models…". Keys have their own button. A key pasted and then saved with Save Changes is not kept.
- Choose a model
"Provider default", one from your account's live list (Refresh models), or "Other model ID…".
- Save and test
Click Save Changes, then Test Connection: "Connected to OpenAI using gpt-4.1-mini." The test uses the provider and model shown on screen.
You can define a key in wp-config.php instead; it always wins over a saved key:
define( 'SITERYN_SEO_GEO_AEO_PRO_OPENAI_API_KEY', 'sk-…' ); // Or one key for every provider with a fixed endpoint (not "custom"): define( 'SITERYN_SEO_GEO_AEO_PRO_API_KEY', 'sk-…' ); // A custom endpoint key needs its base URL too: define( 'SITERYN_SEO_GEO_AEO_PRO_CUSTOM_API_KEY', '…' ); define( 'SITERYN_SEO_GEO_AEO_PRO_CUSTOM_BASE_URL', 'https://gateway.example.com/v1' );
For a Custom endpoint, enter its HTTPS base URL (usually ending in /v1) before saving the key; the key is tied to that host. Private, loopback and local-network addresses are refused.
Requests, limits & privacy
Busy or rate-limited providers are retried once.
Identical requests reuse the earlier answer, so you aren't billed twice. Clear Cached AI Responses empties it; saving Pro settings clears it too.
Counted per clock hour (UTC). Failed requests count; cached answers don't.
Counted per UTC day.
Lower values cost less. Each suggestion type also has its own cap (200–900 tokens).
Precise, Balanced or Creative.
How much of the entry's text is sent with each request.
Error type, HTTP status, provider and model only, to WooCommerce → Status → Logs. Needs WooCommerce.
The Usage panel shows requests, cache hits, failures and tokens for the last 30 days, with a daily chart. Your provider's dashboard is the authoritative record of charges.
Where suggestions appear
| Suggestion | Where | What you get |
|---|---|---|
| SEO titles | SEO box → AI suggestions | 3 titles (aim ≤ 60 characters). Use fills the field. |
| Meta descriptions | SEO box; Bulk SEO Editor ("Draft with AI") | 3 descriptions of 120–155 characters. Use fills the field. |
| Focus keyphrases | SEO box | Up to 5 phrases, preferring words already in the content. |
| FAQ from this content | SEO box | Up to 5 questions and answers. Copy, or "Copy (FAQ blocks)" for ready-made Details blocks. |
| Direct answers | SEO box | 25–60 word answers to the question headings in your content. |
| How to fix the GEO & AEO checks | SEO box | Up to 6 concrete edits for the checks that aren't passing. |
| Short description draft | SEO box, products only | 40–90 words from the product's name, attributes and categories. Never prices, stock or shipping. |
| Outline a new page | SEO Insights → Content Gaps ("Outline with AI") | A working title and 4–8 sections with points. |
| Summarize the report | Reports ("Summarize for my team") | A short summary and up to 5 priorities, from the scores and issue counts. |
Suggestions use the saved version of the entry, so save first after big edits. By default, suggestions in the SEO box are available to Editors and Administrators (users who can edit others' posts); report and outline suggestions need the settings capability.
Always your review
- Drafts only. A suggestion reaches a field only when you click Use, and nothing is saved until you update the entry: "Filled in. Review it; nothing is saved until you update the entry."
- Only your facts. The AI is told to use only the content it's given and never invent prices, figures, dates, names or claims. FAQs, direct answers, product descriptions and report summaries that mention a figure not in your content are discarded: "Some suggestions mentioned figures that are not in your content and were left out."
- Marked. SEO titles, descriptions and keyphrases saved from a suggestion get an "AI-assisted" badge in the SEO box ("Meta description came from AI suggestions an editor reviewed.").
- Never your store data. AI never edits products, prices, stock or any store data.
What is sent
Only for the entry you work on: its type, title, excerpt, headings, up to Words of content sent of its text, its SEO fields, question headings and the names of failing checks, plus the site name and language. For products also attributes, categories and the short description. Outlines send the topic and up to 8 related titles; report summaries send scores and issue counts. Never customer, order, payment or user data, your API key or your license.
Common messages
| Message | What to do |
|---|---|
| The AI provider rejected the API key. | Save the key again; check its permissions in your provider account. |
| Your AI provider account has no remaining quota or credit. | Add billing or credits with your provider. |
| The selected model is not available for this API key. | Choose another model, or "Provider default". |
| The request limit set in this plugin's settings has been reached. | Wait for the next hour or day, or raise the limits. |
| The AI response was cut off before it was complete. | Try again or choose a model that isn't a reasoning model. |
| The endpoint address was refused… | Custom endpoints must be public HTTPS addresses. |