10 ideas: more value from the free plugin, for less commitment

Date: 2026-08-13. Brainstorm, nothing approved.

Every claim below is checked against the code. Where something is not

checked, I say so under "Not verified" rather than leave it implied.


The verified problem

FactSource
29 of 58 deactivations happen within 24 hours of installplugin_installs.first_seen vs deactivated_reported_at
17 of those 29 never started a trialjoined against site_trials
18 of those 29 had no licence keydeactivation_metadata.license_key_present
22 of those 29 already ran Rank Math, Yoast or AIOSEOdeactivation_metadata.active_plugins
A fresh install renders as lockeddashboard.php maps no_trial_no_keys AND no_trial_has_keys to 'locked'
Generation throws without a keyai-requests.php:412, "Anthropic API key is required"
Premium access is trial or paid onlysaiap_has_premium_access(), trial.php:304
Installs run 1 to 2 per day and deactivations match themplugin_installs, 9 weeks

The wall: a keyless user can do nothing. The free tier is real, but it needs

an API key from OpenAI, Anthropic or Google.


1. Tell users Gemini is free and needs no credit card

ai-settings.php:215 names console.anthropic.com and nothing else. The plugin

supports Gemini (saiap_gemini_api_key, ai-settings.php:47), and Google AI

Studio issues Gemini keys on a free tier.

Add the direct link, and say plainly which providers need a card and which do

not.

every country, and what the current rate limit is. Check before shipping.

2. Free local content audit

Nothing audits content today. taxonomy/audit (api-taxonomy-admin.php:26)

audits taxonomies only. saiap_get_site_context() already collects each post

with title, content, permalink, taxonomy data and post status, which is enough

to compute thin posts, missing meta descriptions, orphan posts, duplicate titles

and stale posts, entirely in PHP.

be batched or run on a cron.

3. Free internal-link suggester

Same data as idea 2, different output. Show which existing posts should link to

which, by title and taxonomy overlap. Pure string work, no model.

premium editor chat. A free local suggester does not exist.

suggestions. It needs a trial run on a real site before we believe it.

4. Free forever, N posts each month, on our keys

A permanent free allowance with a hard cap.

agent is a separate model call plus image search. I have not measured it.

Measure before deciding N.

5. First post free on our keys, then BYOK or trial

The one-post version of idea 4, spent once per domain rather than monthly.

duplicates, so the once-per-site guard exists.

6. Free SEO meta for existing posts

Write meta descriptions and titles for posts that have none. Found by idea 2.

Very cheap per call compared with a full post.

writes meta, so the write path exists.

22 of 29 quitters run those two. If it only writes AIOSEO, this idea misses

most of the audience.

7. Cut the cost of BYOK by defaulting to the cheapest model

If a keyless user's real objection is spend, default the free path to the

cheapest usable model and show the estimated cost per post before they generate.

(saiap_refresh_models_registry_event, simple-ai-auto-post.php:118 area).

not, we cannot show a cost estimate without adding one.

8. Make the trial not spend the trial

startTrial returns already_had_trial forever after (trialService.ts:122).

Start the 7-day clock at the first generated post instead of at the row, so an

abandoned install keeps its trial for later.

decides whether this is worth building. I can measure it.

9. Trial with no typed email

startTrial(domain, email?) takes the email as optional

(trialService.ts:102), and trial.php:758 already falls back to

get_option('admin_email'). So the email field can be removed from the flow

without any backend change.

admin address the user did not consciously give us. That is a consent

question, not a technical one, and it needs Christian's answer.

10. Free GSC connect and traffic report

Connect Search Console and show which existing posts are decaying, which sit at

position 11 to 20, and which get impressions with no clicks. No content

generated, so no model cost.

onboarding-wizard.php, ai-settings.php and dashboard.php, so plumbing

exists.

licence. If the OAuth flow runs through our backend and that is gated, this

costs the same as any other gated feature. Check the gate first.


11. Run a DataForSEO opportunity audit the moment they install (Christian's idea, 2026-08-13)

Start a real keyword audit as soon as the plugin phones home. When the user

opens the plugin, the result is already waiting. The first dashboard is not a

trial CTA. It is "here is where your site ranks now, and here is what ClearPost

can move in 30 days".

Why this is the strongest idea on the list

It is the only one that gives a keyless user something no competitor gives them,

on day one, with their own data in it.

Everything it needs already exists

PieceWhere
DataForSEO providersrc/services/seo/dataForSEOProvider.ts
What the site already ranks fordataforseo_labs/google/ranked_keywords/live
What is winnabledataforseo_labs/google/bulk_keyword_difficulty/live
Keyword researchsrc/services/seo/keywordResearchService.ts
Strategy and scoringsrc/services/seo/seoStrategyService.ts, strategySessionService.ts
The install triggersaiap_schedule_context_updates on wp_loaded schedules the daily cron with time(). updateSiteContext then calls trackInstallActivity(domain) before validation.

ranked_keywords targets a domain. It needs no site content and no API key.

We already receive the domain at install, so the audit can run with nothing else.

It reaches 9 in 10 installs

Measured across all 251 install rows:

Domain typeCountShare
Real public domains22590%
Local, IP, .test, .local146%
Staging or auto-subdomain125%

172.18.0.1:18090, findadoctor.test and wordpress.local get no DataForSEO

data. Detect those and show the local audit (idea 2) instead.

The timing problem, which is real

wp-cron only fires when somebody loads a page. On a new low-traffic site, the

first page load is usually the admin opening wp-admin. That is the same moment

they open the plugin.

So the audit will not be ready on first open. It will be ready on the

second. Two fixes:

wp-cron, and

Both are needed. Neither is hard.

Not verified. These block the build.

volume is small, but I have not priced it. Measure before shipping.

traffic in 30 days" is a specific claim. To stand behind it we need ranked

positions, search volumes and a CTR curve, and we need to be willing to show

the working. The brand rule is data over slop. **A forecast we cannot defend

is exactly the slop we say we are against.** My recommendation: state the

addressable volume we can evidence ("these 14 keywords carry 2,400 searches a

month and you rank 11 to 30 for them today") rather than a traffic promise.

rankings.** A site with zero ranked keywords gets an empty audit, which is

worse than no audit. Needs a fallback.

agrees.** It is their domain and public data, but it spends our money on

someone who has agreed to nothing.

What I would do first

Idea 11 is the strongest and Christian proposed it. It is the only idea

that shows a keyless user their own data on day one, and the whole DataForSEO

pipeline already exists.

Ship idea 1 alongside it, because it is a copy change and it may remove the

wall entirely for anyone willing to take a free Gemini key.

Keep idea 2 as the fallback for the 11% of installs on local or staging

domains, where DataForSEO has nothing to return.

**Before any of the paid ideas (4, 5, 6), I must measure the true cost of one

post with images.** I have used $0.11 in earlier notes. That figure is text only

and I have never measured the image agent.