Overview
Schema markup (JSON-LD structured data) helps search engines understand your content and can unlock rich results in Google Search — such as FAQ dropdowns, recipe cards, star ratings, and more. Publish Owl can automatically generate and embed schema markup in every article you publish.
Schema markup is available in both Standard and pSEO modes and supports three configuration modes:
- Off: No schema markup is generated (default)
- AI Auto: AI analyzes the finished article and generates appropriate JSON-LD automatically
- Template: You provide a custom JSON-LD template with variable placeholders that get filled in at publish time
AI Auto Mode
The recommended option for most users. After the article is fully written, the AI reads the content and generates the most appropriate schema markup based on what the article actually contains.
The AI can detect and generate these schema types:
| Schema Type | When It's Used |
|---|---|
| Article | General articles and blog posts (default base type) |
| BlogPosting | Blog-specific content (subtype of Article) |
| NewsArticle | News and press content — auto-selected for News Discovery workflows |
| Recipe | Content with ingredients and cooking instructions |
| FAQPage | Content with clear Q&A sections |
| Product | Content describing a specific product with pricing |
| Review | Content explicitly reviewing a product, app, or service |
| SoftwareApplication | Content describing a specific app or software tool |
| Course | Content describing an educational course |
The AI only adds additional schema types (beyond Article) when the content clearly matches.
It will never fabricate ratings, prices, or dates that aren't present in the article.
When multiple types apply, they are combined using a @graph array.
Advanced Options
Expand the "Advanced options" section to configure:
- Custom Instructions: Guide the AI with specific rules — for example, always use a particular author name, publisher, or exclude certain schema types the AI keeps generating incorrectly.
- AI Provider & Model: By default, schema generation uses the same provider and model as your last workflow step. Override this to use a different (potentially cheaper or faster) model for schema generation.
Template Mode
For advanced users who want full control over the schema output. Write your own JSON-LD template and use variable placeholders that get replaced with actual values at publish time.
Schema Types
Template mode supports a wider set of schema types than AI Auto, since you define the structure manually. Select a type from the dropdown to load a starter template, then customize it. Available types include: Article, BlogPosting, NewsArticle, Product, FAQPage, Recipe, Review, SoftwareApplication, VideoObject, LocalBusiness, Event, and Course.
Template Variables
Use these placeholders in your JSON-LD template. They are replaced with actual values when the article is published:
| Variable | Replaced With |
|---|---|
{{title}} | The generated article title |
{{meta_description}} | The SEO meta description |
{{featured_image}} | URL of the featured image |
{{published_date}} | ISO 8601 publish date |
{{author_name}} | Author name from agent settings |
{{site_name}} | Site name or URL |
{{keyword}} | The target keyword for the article |
{{word_count}} | Total word count of the article |
Use the Format JSON button to validate and pretty-print your template. Invalid JSON will be flagged before the template is used.
Schema Markup in pSEO Mode
In pSEO (programmatic SEO) mode, schema markup works the same way — you can choose AI Auto or Template mode. Template mode is especially useful in pSEO because you can use your CSV/data source variables as template placeholders, allowing each generated page to have unique structured data pulled from your dataset.
How It Works
- Schema markup is generated after the article is fully written — it is a post-processing step that runs before publishing.
-
The JSON-LD is embedded as a
<script type="application/ld+json">tag at the top of the article content. -
For WordPress, the schema is also stored in a custom meta field
(
_publishowl_schema_json) so it can be output in the page<head>via a code snippet — the ideal location for structured data. -
For Ghost, Webflow, and Shopify, these CMS platforms may strip
<script>tags from post content. Schema markup works best with WordPress, webhooks, or static site generators. - The generated schema JSON is saved on the job record and visible in the article editor for review.
WordPress Setup
WordPress may filter out <script> tags depending on your user role and
security settings. To ensure schema markup renders correctly, you have two options:
- Method 1 — Meta Field (recommended): Add a PHP code snippet that reads
the
_publishowl_schema_jsonmeta field and outputs it as a<script>tag in the page<head>. This is the cleanest approach and puts the structured data in the ideal location. - Method 2 — Allow Scripts: Add a PHP snippet that allows
<script>tags to pass through WordPress's content security filter. This is simpler but less restrictive — only use it if you trust all users who can edit posts.
Both methods can be added using the Code Snippets plugin. When you configure schema markup on a WordPress site, the editor will show a link to the setup instructions with ready-to-copy code.
Setup
1. Open the SEO Meta drawer
In the workflow editor sidebar, click the SEO Meta section to expand it.
2. Switch to the Schema Markup tab
The SEO Meta section has tabs for Meta Description, Meta Title, and Schema Markup. Select the Schema Markup tab.
3. Select a mode
Choose Off, AI Auto-Detect (recommended), or Template from the dropdown.
4. Configure (if needed)
For AI Auto: optionally expand Advanced Options to set custom instructions or override the AI provider/model. For Template: select a schema type, customize the JSON-LD template, and use the Format JSON button to validate.
5. Test your markup
Run a test article, then validate the output using Google's Rich Results Test or the Schema.org Validator .
Tips
AI Auto is the best starting point
It adapts to each article's content automatically. Only switch to Template mode if you need precise control over the schema structure or need to include fields the AI doesn't generate.
Use a cheap model for schema generation
Schema markup doesn't require a frontier model. Override the provider in Advanced Options to use a smaller, cheaper model (like GPT-4.1-mini or Gemini Flash) to save on costs.
Don't force schema types
Incorrect or fabricated schema markup can harm your site's search appearance. Let the AI decide which types apply, or only use Template mode for schema types you know match your content.
HowTo schema is deprecated
Google deprecated HowTo rich results in September 2023. The AI will never generate HowTo schema. If you need step-by-step instructions in structured data, consider using Recipe or Course schema instead where appropriate.