Public vs Pro Features
The public package installs one plugin. Public features work without a license. Pro features unlock when you add a valid root-level licenseKey for the current Sanity project.
Installation Model
Users install sanity-plugin-seofields. They do not install or import seofields-pro manually. The pro package is a runtime dependency used internally for licensed features.
Feature Matrix
| Area | Public version | Pro version |
|---|---|---|
| Core SEO | Meta fields, previews, validation, robots, canonical URL, keywords, Open Graph, X/Twitter Cards. | Same public features, plus licensed audit and publishing workflows. |
| Schema.org | Structured data fields, JSON-LD preview, and frontend script rendering. | Same public Schema.org tooling, used by pro audit and GEO checks where relevant. |
| AI prompts | Four prompt variations per field. Five public industries: blog, restaurant, travel, ecommerce, education. | Full prompt bank after license validation, including pro industries: healthcare, pharmacy, finance, realestate, saas. |
| Health audit | Shared scoring utility and CLI reporting/export commands. | Studio SEO Health Dashboard with scores, issue lists, filters, sorting, and CSV/JSON export. |
| Publish controls | Normal Sanity publish behavior. | Optional Publish Gate that blocks or warns when SEO score or required fields fail. |
Public Features Included
SEO fields
Meta title, meta description, canonical URL, robots directives, meta image, focus keyword, keywords, and custom meta tags.
Social previews
Open Graph fields, X/Twitter Card fields, live SERP preview, and live HTML meta tags preview inside Studio.
Content checks
Validation messages, character counters, keyword checks, readability feedback, and the base GEO checklist.
Schema.org
Structured data fields, live JSON-LD preview, JSON-LD builders, SchemaOrgScripts, and frontend render helpers.
Configuration
Field visibility, field groups, defaults, per-document type options, API version config, and dashboard disable config.
Frontend and CLI
Next.js, Astro, Nuxt, Vue, SvelteKit, Remix, React meta tag helpers, Schema.org scripts, CLI doctor/report/export/config/init commands.
AI generation
Public prompt bank with generic prompts plus blog, restaurant, travel, ecommerce, and education industries.
Pro Features Unlocked by License
SEO Health Dashboard
Studio-wide 0-100 scoring, issue summaries, health tiers, search, filters, sorting, pagination, and compact stats.
Dashboard exports
Export filtered audit results as CSV or JSON for handoff, reporting, and external workflows.
Publish Gate
Require a minimum SEO score or required SEO fields before publishing. Use block mode or warn mode.
Desk structure pane
Use createSeoHealthPane to embed the SEO health audit inside custom Sanity desk structures.
Pro GEO checks
Additional AI Overview readiness checks for keyword coverage, structured data, and FAQ/HowTo readiness.
Pro AI prompts
Full prompt bank for all industries, including healthcare, pharmacy, finance, realestate, and saas.
Configuration
Use the public package for both public and pro setups. Add licenseKey only when you want licensed features. Full AI provider and prompt configuration is covered in the AI Integration docs.
Public setup
import { defineConfig } from 'sanity'
import seofields from 'sanity-plugin-seofields'
export default defineConfig({
// ...your Sanity config
plugins: [
seofields({
ai: {
provider: 'openai',
apiKey: '<your-openai-api-key>',
industry: 'blog',
},
}),
],
})Pro setup
import { defineConfig } from 'sanity'
import seofields from 'sanity-plugin-seofields'
export default defineConfig({
// ...your Sanity config
plugins: [
seofields({
licenseKey: 'SEOF-XXXX-XXXX-XXXX',
ai: {
provider: 'openai',
apiKey: '<your-openai-api-key>',
industry: 'finance',
},
publishGate: {
mode: 'warn',
minScore: 70,
},
}),
],
})Do not set _licenseKey or _projectId yourself. The plugin forwards those internal values from licenseKey and the active Sanity workspace.
How Pro AI Prompts Are Used
The public package keeps only the public prompt bank in its source and build output. Licensed prompt expansion happens through a callback exported by the pro package.
- 1
The public package starts with the public prompt pool: four variations per supported field.
- 2
Studio AI buttons pass the root licenseKey and Sanity projectId internally.
- 3
The public prompt picker asks seofields-pro for a licensed prompt pool.
- 4
If the key validates for the project, pro returns the full industry prompt pool.
- 5
If the key is missing, invalid, or the validation request fails, generation stays on the public prompt pool.
// Internal flow. Users do not call this directly.
const prompt = await pickPrompt(
field,
params,
ai.industry,
ai._licenseKey,
ai._projectId,
)Was this page helpful?