Schema Markup

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_json meta 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.

Was this helpful?