WordPress Plugins

Schema Pro review: the WordPress plugin that gives you 20+ rich snippet schema types in one place

A walkthrough of Schema Pro: the 20+ Google-supported schema types it generates, the setup wizard, conditional rules, custom field mapping, and how it compares to Rank Math and Yoast schema.

Schema Pro review: the WordPress plugin that gives you 20+ rich snippet schema types in one place review on GPL Times

Look at any Google search result that has stars under it ("4.7 of 5"), a recipe with cooking time, an event with a date, a product with a price and in-stock badge, or an FAQ that expands into the SERP. That’s a rich snippet. Behind every rich snippet is a piece of structured data, JSON-LD code embedded in the page that tells Google "this is a recipe, here are the ingredients, here’s how long it takes."

WordPress doesn’t ship structured data out of the box. Your theme might add basic stuff. Yoast and Rank Math add Article and Breadcrumb schema automatically. But once you need Product, Recipe, Event, Job Posting, Course, Software Application, Local Business, or any of the 20+ Google-supported types beyond the obvious two, you’re left with the choice: write JSON-LD by hand (fragile, error-prone), buy each schema type as a separate plugin (expensive), or install a dedicated schema plugin.

Schema Pro (from Brainstorm Force, the team behind Astra and Spectra) is the WordPress plugin that gives you all 20+ schema types in one product. Setup wizard, visual rule builder, custom field mapping, conditional logic, breadcrumb support, social profile knowledge graph, and a JSON-LD output that validates cleanly in Google’s Rich Results Test.

This is a walkthrough of how Schema Pro actually works, the 21 schema types it supports, the setup flow, building your first schema rule, custom field mapping, and how it stacks up against Rank Math’s and Yoast’s built-in schema.

Quick decision guide: do you need Schema Pro?

Use Schema Pro if you:

  • Need schema types beyond Article and Breadcrumb (Product, Recipe, Event, Job, Course, etc.)
  • Run a recipe blog, real estate site, job board, software directory, or any niche where rich snippets dominate the SERP
  • Want to attach schema to existing posts/pages without rewriting them in a structured editor
  • Use ACF, Pods, or any custom fields and want those values fed into schema
  • Already use Astra/Spectra/Starter Templates from Brainstorm Force (Schema Pro integrates tightly)

Skip Schema Pro if you:

  • Only need Article and Breadcrumb schema, Rank Math Pro or Yoast SEO Premium already handle these
  • Run an e-commerce store that’s mostly WooCommerce products, WooCommerce + a schema plugin like Schema App or built-in WC structured data is enough
  • Already invested in Rank Math Pro and use its schema generator extensively

Run Schema Pro alongside your SEO plugin if you:

  • Use Yoast or AIOSEO for SEO (titles, metas, sitemap) and want Schema Pro for the deeper schema set
  • This is the most common Schema Pro setup

Table of contents

What is structured data and why does it matter? {#what-is-schema}

Structured data is metadata embedded in your HTML that describes the content for machines. Google reads it, parses what kind of thing your page is about, and (sometimes) rewards you with a richer search listing.

There are three formats: Microdata, RDFa, and JSON-LD. Google strongly prefers JSON-LD (a block of JSON inside a <script type="application/ld+json"> tag in your page head). Schema Pro only outputs JSON-LD.

A simple Article schema looks like this in your page:

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "Article",
 "headline": "How to Use Schema Pro",
 "author": {"@type": "Person", "name": "Jane Doe"},
 "datePublished": "2026-05-19",
 "image": "https://example.com/featured.jpg",
 "publisher": {
 "@type": "Organization",
 "name": "Example Site",
 "logo": {"@type": "ImageObject", "url": "https://example.com/logo.png"}
 }
}
</script>

Why it matters:

  • Rich results in SERP. Stars, prices, dates, FAQ accordions, recipe times, image badges. These get higher click-through rates than plain blue links.
  • AI Overviews and ChatGPT. Generative search engines parse structured data to know which page to cite for a specific question.
  • Voice search. Google Assistant prefers pages with explicit Recipe/HowTo schema for "how do I" queries.
  • Knowledge Graph. Organization and Person schema feed Google’s knowledge panel on the right side of branded searches.

You can write JSON-LD by hand. For 1-2 schema types on a 5-page site that’s fine. For a site with 500+ posts spanning multiple schema types, you need automation. That’s what Schema Pro is.

Schema types Schema Pro supports (all 21) {#schema-types}

Schema Pro generates all of these. Each has its own dedicated UI for mapping fields.

Content schemas:

  • Article – news articles, blog posts.
  • WebPage – generic pages.
  • Book – book reviews, book sale pages.
  • Course – online or in-person courses.
  • Review – standalone reviews of products/places/things.
  • Recipe – cooking recipes with ingredients and steps.
  • How-To – instructional content with steps (note: Google deprecated How-To rich results in 2023; still valid markup but no longer a SERP feature).
  • FAQ – frequently asked questions.
  • Custom Markup – your own JSON-LD for types Schema Pro doesn’t have a UI for.

Business and people schemas:

  • Local Business – storefronts, restaurants, service businesses with a physical address.
  • Service – service offerings like consulting, repair.
  • Person – personal profile pages.
  • Organization – company profile.

Commerce schemas:

  • Product – physical or digital products with price, availability, reviews.
  • Job Posting – job listings with salary, location, employment type.
  • Vehicle Listing – cars, trucks, motorcycles for sale.
  • Software Application – apps with version, price, OS.

Media schemas:

  • Video Object – embedded videos with duration, thumbnail.
  • Image License – copyright info for images.
  • Podcast Listing – podcast feeds and episodes.

Special:

  • Event – concerts, conferences, dated happenings.
  • Movie Carousel – movie series/lists (e.g. "Best films of 2025").

That’s 21 schema types covering every major Google rich result feature. The closest competitor (Rank Math Pro) supports ~16 types. Yoast SEO Premium ships ~6.

Pricing reality check {#pricing}

Schema Pro is sold by Brainstorm Force as an annual or lifetime license.

  • Annual license: $79/year (1 site), $149/year (unlimited sites)
  • Lifetime license: $249 one-time (1 site), $449 one-time (unlimited sites)
  • Sometimes available as part of the Brainstorm Force bundle ($249/year unlimited) which also includes Astra Pro, Spectra Pro, Starter Templates, Ultimate Addons for Elementor/Beaver Builder

Renewal is at 30% off after the first year if you keep the subscription active.

Brainstorm Force often runs lifetime deals. The Lifetime Unlimited Sites tier is a good value if you build many sites.

On the GPL Times store, Schema Pro is included in the GPL membership. If you’re already a member, install and skip the per-site license math.

What you lose on the GPL-licensed version: automatic updates from Brainstorm Force and direct support tickets. Their support is responsive (same team behind Astra), so it’s a real loss for sites that need handholding.

Step 1: Install and run the setup wizard {#step-1-install}

Install path: WP Admin -> Plugins -> Add New -> Upload Plugin -> upload wp-schema-pro.zip -> Activate. Schema Pro adds itself under Settings -> Schema Pro in the WordPress admin sidebar (by default, you can move it under its own top-level menu in plugin settings later).

On first activation you’re dropped into a 4-step setup wizard.

Schema Pro setup wizard Welcome screen with Google search mockup showing rich snippet result with stars and image, plus Lets Get Started button

The wizard steps:

  1. Welcome – intro screen with a Google search mockup showing the rich snippet payoff. Click "Let’s Get Started".

  2. General – tell Schema Pro what your website represents (Organization, Person, Local Business) and upload your logo. This drives the Knowledge Graph schema embedded site-wide.

Schema Pro setup wizard General step with Lets know about your website prompt, This Website Represents dropdown, Website Logo image picker, Back/Skip/Continue Setup buttons

  1. Social – add your social profile URLs (Facebook, Twitter, Instagram, LinkedIn, YouTube, Pinterest, etc.). These feed Google’s sameAs array on the Organization/Person schema, which Google uses to confirm your identity across the web.

  2. Create – the wizard creates the default Article schema rule applied to all your blog posts. You can skip this and configure manually.

You can revisit the wizard anytime by visiting Settings -> Schema Pro -> Welcome (or via the URL hash #onboarding).

Step 2: Configure Website Information (knowledge graph) {#step-2-website-info}

After the wizard, click the Website Information tab in Schema Pro settings.

Schema Pro Website Information tab with sub-tabs General/Social Profiles/Contact Information/Other Schemas, showing This Website Represents dropdown and Website Logo selector

This is what shapes the Knowledge Graph schema that gets injected on every page of your site. Knowledge Graph schema is what enables the right-side panel that appears when someone searches for your brand name.

Four sub-tabs:

General

  • This Website Represents: dropdown with Organization, Person, Local Business. Different selections show different downstream fields.
  • Website Logo: 112x112px minimum, used in the logo property of the Organization schema.

If you pick Organization:

  • Name, About (text), Contact URL, Description.

If you pick Person:

  • Name, Bio, Photo (used in personal branding searches).

If you pick Local Business:

  • Business Name, Address (street, locality, region, postal code), Phone, Opening Hours, Map URL, Currency, Price Range. This is what creates the rich knowledge panel for local businesses with hours, address, and map embed.

Social Profiles

Schema Pro Social Profiles tab with Facebook, Instagram, YouTube, Twitter, Pinterest, LinkedIn, SoundCloud, Tumblr, Wikipedia, MySpace URL fields and Add+ button for more

Add every social profile URL you have. Schema Pro includes them in the sameAs array of your site’s Organization schema. Google uses these to verify the same entity across platforms.

The defaults include Facebook, Instagram, YouTube, Twitter, Pinterest, LinkedIn, SoundCloud, Tumblr, Wikipedia, MySpace. Click Add + to add more (e.g. GitHub, Mastodon, Threads, Bluesky).

This is high-use. Fill it out completely. It’s a one-time setup that boosts your branded-search results meaningfully.

Contact Information

Phone, email, fax, and contact page URL. Feeds the contactPoint property.

Other Schemas

Toggles for:

  • Enable Person Schema for author archive pages.
  • Enable About Page Schema on your /about/ page.
  • Enable Contact Page Schema on your /contact/ page.
  • Enable Breadcrumb Schema (covered in Step 6).

These are global toggles. Turn on Breadcrumb and About at minimum.

Step 3: Add your first schema (Article example) {#step-3-first-schema}

Click the Schemas tab, then Add New. Schema Pro opens a 4-step builder.

Schema Pro Select Schema Type screen with 21 schema type cards: Article, WebPage, Book, Course, Event, Job Posting, Local Business, Review, Person, Product, Recipe, Service, Software Application, Video Object, FAQ, How-to, Custom Markup, Image License, Vehicle Listing, Podcast Listing, Movie Carousel

Step 1: Select Schema Type. Pick from the 21 cards. For your blog posts, pick Article. Click Next.

Step 2: Configure Schema. This is the field mapping screen. Schema Pro pre-fills with sensible defaults from WordPress ({{post_title}}, {{post_excerpt}}, {{post_date}}, etc.). For each schema field:

  • Some are auto-filled from WordPress (Title -> Post Title, Description -> Post Excerpt).
  • Some require explicit input (Image URL, Logo).
  • Some pull from custom fields (advanced).

Common Article fields:

  • Headline: defaults to {{post_title}}. Don’t change unless you have a separate "headline" field.
  • Description: defaults to {{post_excerpt}}. If your excerpts are empty, set to {{post_meta}} for a custom field.
  • Author Name: defaults to {{author_name}} (WordPress user display name).
  • Date Published: {{post_date}}.
  • Date Modified: {{post_modified}}.
  • Image: defaults to {{post_featured_image}}. Set to a custom field if your featured images aren’t set everywhere.
  • Article Section: {{post_categories}} or a fixed string.
  • Keywords: {{post_tags}}.

Step 3: Target Locations. Where should this schema appear? Options:

  • Include: All Posts, All Pages, specific categories, specific tags, specific posts, post type X, taxonomy Y.
  • Exclude: same set of choices to exclude after include.

Common patterns:

  • "Include All Posts, Exclude Category = News" for a tutorial site where news posts shouldn’t get Article schema.
  • "Include Post Type = Recipe" for a recipe site.
  • "Include Specific Pages = 12, 14, 17" for hand-picked pages.

Step 4: Complete. Save. The schema is now active on matching pages.

Step 4: Configure conditional rules and target locations {#step-4-rules}

The Target Locations step in Step 3 is where Schema Pro’s flexibility shines. You can build complex rules.

Rule operators:

  • Include in: must match for schema to apply.
  • Exclude from: must NOT match.

Target options:

  • Entire Website
  • All Singulars (any single post/page)
  • All Archives
  • All Posts
  • All Pages
  • Specific Post Type (Posts, Pages, Custom)
  • Specific Category / Tag / Taxonomy Term
  • Specific Page ID
  • Specific Author
  • Front Page
  • 404 Page
  • Search Results

Multi-rule combinations:

You can have multiple Include rules (OR logic) and multiple Exclude rules (AND logic).

Example: A site with recipes, restaurants, and a regular blog needs different schema:

  • Recipe schema: Include "Post Type = Recipe".
  • Local Business schema: Include "Page ID = 14" (the restaurant page).
  • Article schema: Include "All Posts", Exclude "Post Type = Recipe", Exclude "Category = News".

Schema Pro handles all three rules independently. Each schema gets its own rule set.

Step 5: Map custom fields into schema {#step-5-custom-fields}

The killer Schema Pro feature for ACF/Pods/JetEngine users: map custom field values directly into schema properties.

Example: Real estate site with ACF Property post type.

You have these ACF fields on Property posts:

  • price (Number)
  • bedrooms (Number)
  • bathrooms (Number)
  • square_feet (Number)
  • property_type (Select: House/Apartment/Condo)
  • address_street, address_city, address_state, address_zip (Text)
  • agent_name, agent_phone, agent_email (Text)

In Schema Pro, create a Product schema (or use Custom Markup for RealEstateListing) targeted at Post Type = Property. Then map fields:

  • Name: {{post_title}}
  • Description: {{post_excerpt}}
  • Image: {{post_featured_image}}
  • Price: {{post_meta:price}}
  • Number of Bedrooms (custom): {{post_meta:bedrooms}}
  • Address: {{post_meta:address_street}}, {{post_meta:address_city}}, etc.

When the page renders, Schema Pro reads the custom fields for that specific post and outputs:

{
 "@type": "RealEstateListing",
 "name": "Beautiful 3BR in Downtown",
 "description": "Spacious home with...",
 "image": "https://example.com/property.jpg",
 "offers": {"price": "450000", "priceCurrency": "USD"},
 "address": {
 "streetAddress": "123 Main St",
 "addressLocality": "Anytown",
 "addressRegion": "CA",
 "postalCode": "90210"
 }
}

This is the difference between writing schema by hand for every property listing (impractical at scale) and automating it (Schema Pro reads from the database).

The custom field syntax is {{post_meta:field_name}}. For ACF Repeater fields, use {{post_meta:repeater_field}} and Schema Pro will iterate.

Pre-populated WordPress merge tags Schema Pro supports:

  • {{post_title}}, {{post_url}}, {{post_excerpt}}, {{post_content}}
  • {{post_date}}, {{post_modified}}
  • {{post_featured_image}}, {{post_thumbnail}}
  • {{author_name}}, {{author_email}}, {{author_url}}, {{author_image}}
  • {{post_categories}}, {{post_tags}}
  • {{post_meta:custom_field_name}} for any custom field
  • {{post_id}}

Step 6: Enable Breadcrumbs schema {#step-6-breadcrumbs}

Click the Breadcrumbs tab in Schema Pro settings.

Schema Pro Breadcrumbs tab with Configure Breadcrumbs section showing Enable Breadcrumbs toggle (Yes), Posts dropdown for adding middle level (e.g. category in breadcrumb trail)

Breadcrumb schema is what shows your site’s hierarchy in Google’s search results as yoursite.com > Category > Post Title instead of the raw URL. It’s a low-effort, high-payoff schema type.

Configuration:

  • Enable Breadcrumbs: toggle on. Default off.
  • Posts: how to build the breadcrumb trail for blog posts.
  • None (default): Home > Post Title.
  • Category: Home > Category > Post Title.
  • Tag: Home > Tag > Post Title.
  • Page (parent page): Home > Parent Page > Post Title.

Save. Schema Pro outputs BreadcrumbList schema on every singular page automatically.

Important: Schema Pro’s Breadcrumb schema is JSON-LD only. It does NOT render visible breadcrumb HTML on the front-end. If you want visible breadcrumbs above your post titles, use your theme’s breadcrumb feature (Astra has one) or a separate plugin like Breadcrumb NavXT. Schema Pro and a visible breadcrumb plugin coexist fine; they’re different layers.

Step 7: Tune Plugin Settings {#step-7-settings}

The Plugin Settings tab has plugin-wide options.

Schema Pro Plugin Settings tab with Enable Test Schema Link in Toolbar, Display Schema Pro Menu Under, Add Schema Code In, Add Default Image, Skip Rendering Invalid Schema, Help Us Improve Your Experience, Delete Data on Uninstall toggles

The settings:

  • Enable "Test Schema" Link in Toolbar: adds a "Test Schema" link to the admin bar when viewing any post on the front-end. Click it to open Google’s Rich Results Test with the current URL. Always on.

  • Display Schema Pro Menu Under: where to put the plugin in WP admin. Default: Settings. Options:

  • Settings (default)

  • Tools

  • Top-level (gets its own sidebar item)

  • Dashboard

  • Under a specific menu item.

  • Add Schema Code In: where to inject the JSON-LD.

  • Head (default, recommended): goes into <head> via wp_head hook.

  • Footer: goes into <body> via wp_footer. Use Head unless your theme strips Head scripts.

  • Add Default Image: fallback image for posts without a featured image. Schema validators require images on Article/Product/etc.; missing images cause validation warnings.

  • Skip Rendering Invalid Schema: if Schema Pro can’t fill all required fields (e.g. featured image missing on Article and no default set), skip outputting that schema instead of outputting incomplete JSON-LD. Default off; better to know about gaps. Turn on for production after you’ve debugged.

  • Help Us Improve Your Experience: opt-in telemetry to Brainstorm Force. Optional.

  • Delete Data on Uninstall: if you uninstall, should all schema configs be wiped? Default off; preserves config for reactivation.

  • Save Changes button.

The White Label tab (paid feature) lets you rebrand "Schema Pro" with your agency name for client sites.

Step 8: Test schemas with Google’s Rich Results Test {#step-8-testing}

Adding schema doesn’t mean it works. Always test.

Three test tools to know:

  1. Google Rich Results Test (https://search.google.com/test/rich-results): paste your URL, see if Google detects rich results, view warnings/errors. Most important.
  2. Schema.org Validator (https://validator.schema.org): tests against the broader schema.org spec. Useful for non-Google-rewarded types.
  3. Schema Pro’s "Test Schema" Toolbar link: deep-links to Rich Results Test pre-filled with the current page. Faster than typing URLs.

Test workflow:

  1. Save your schema in Schema Pro.
  2. Visit a page that should have the schema.
  3. Click "Test Schema" in the admin toolbar (or visit Rich Results Test manually).
  4. Wait 10-30 seconds for the test to fetch and parse.
  5. Look for:
  • Green checkmark: detected, eligible for rich result.
  • Yellow warning: detected, but missing recommended fields (will work, won’t be optimal).
  • Red error: detected with errors. Won’t show as rich result.

Common errors to fix:

  • "Missing field ‘image’": add a featured image or set a default image in Plugin Settings.
  • "Missing field ‘author’": ensure post has an author assigned.
  • "Required field ‘name’ is missing": post has no title (unusual).
  • "Invalid date format": WordPress format doesn’t match. Schema Pro handles this automatically; check your timezone settings.

Test on at least one URL per schema type. Don’t trust that "if Article works on one post, it works on all."

Real-world recipes (3 schema setups) {#recipes}

Three concrete configurations:

Recipe 1: Recipe blog (food site)

Stack: Schema Pro + Yoast Premium (for title/meta) + Astra theme.

Schema setup:

  • Recipe schema: target Post Type = "Recipe" (CPT). Map: name -> {{post_title}}, image -> {{post_featured_image}}, description -> {{post_excerpt}}, recipeYield -> {{post_meta:servings}}, prepTime -> {{post_meta:prep_minutes}} (with ISO 8601 conversion), cookTime -> {{post_meta:cook_minutes}}, recipeIngredient -> {{post_meta:ingredients}} (repeater), recipeInstructions -> {{post_meta:instructions}} (repeater), nutrition -> {{post_meta:nutrition}}.
  • Article schema: target All Posts EXCEPT Post Type = Recipe. Standard mapping.
  • Breadcrumb schema: enabled.
  • Organization schema: Site represents Organization, logo set.

Result: every recipe post shows in Google as a recipe card with star rating, total time, calories. Every blog post shows as Article. Site name in knowledge panel.

Recipe 2: Job board

Stack: Schema Pro + Custom post type Job + ACF Pro for job fields + Rank Math (free for SEO).

Schema setup:

  • JobPosting schema: target Post Type = "Job". Map: title -> {{post_title}}, description -> {{post_content}}, datePosted -> {{post_date}}, validThrough -> {{post_meta:expiry_date}}, hiringOrganization.name -> {{post_meta:company}}, jobLocation.address.streetAddress -> {{post_meta:street}}, jobLocation.address.addressLocality -> {{post_meta:city}}, employmentType -> {{post_meta:job_type}}, baseSalary.value -> {{post_meta:salary_min}}, baseSalary.maxValue -> {{post_meta:salary_max}}, baseSalary.currency -> "USD".
  • Article schema: target Post Type = Post (regular blog).
  • Breadcrumb schema: enabled.
  • Organization schema: Knowledge graph identifies the job board itself.

Result: each job appears as a Google Jobs result, eligible for the Google for Jobs job listings panel.

Recipe 3: Local business with reviews

Stack: Schema Pro + WP Mail SMTP + Custom Reviews (Pods or CPT).

Schema setup:

  • Local Business schema: site represents Local Business (configured in Website Information). Address, phone, hours, currency, price range all set.
  • Service schema: target Post Type = "Service" (CPT for service offerings). Each service has its own page with provider, area served, name, description.
  • Review schema: target Post Type = "Review" (CPT for customer reviews). Map: reviewBody -> {{post_content}}, reviewRating.ratingValue -> {{post_meta:rating}}, author -> {{post_meta:reviewer_name}}, itemReviewed.name -> "Your Business Name".
  • Article schema: target Post Type = Post.
  • Breadcrumb schema: enabled.

Result: business knowledge panel with hours/address/map. Service pages show in service-specific searches. Review schema feeds aggregate rating into other schemas.

Schema Pro vs Rank Math vs Yoast {#comparison}

Honest comparison.

Feature Schema Pro Rank Math Pro Yoast SEO Premium
Article schema Yes Yes (auto) Yes (auto)
Breadcrumb schema Yes Yes (auto) Yes (auto)
WebPage schema Yes Yes (auto) Yes (auto)
Product schema Yes Yes Limited (via WC)
Recipe schema Yes Yes Add-on
Event schema Yes Yes Add-on
Job Posting schema Yes Yes No
Course schema Yes Yes No
FAQ schema Yes Yes (via FAQ block) Yes (block)
HowTo schema Yes Yes No
Local Business schema Yes Yes Yes
Person schema Yes Yes Limited
Service schema Yes Yes No
Vehicle Listing schema Yes No No
Software Application schema Yes No No
Image License schema Yes No No
Podcast schema Yes No No
Movie Carousel schema Yes No No
Book schema Yes No No
Custom Markup (JSON-LD) Yes Yes No
Custom field mapping Excellent Good Limited
Conditional rules Granular Good Limited
Visual builder Yes Yes Limited
Knowledge Graph (sameAs) Yes Yes Yes
Validates in Rich Results Test Yes Yes Yes
WP-CLI commands No Yes Yes
Annual price (1 site) $79 $59 (entry) / $199 (full) $99
Total schema types 21 ~16 ~6

Use Schema Pro if you need the deepest schema type set or need vehicle/software/book/podcast/image-license/movie schemas (Rank Math doesn’t have these).

Use Rank Math Pro if you want SEO + schema in one plugin and don’t need the rare schema types.

Use Yoast Premium if you’re already invested in Yoast and need only the common schema types (Article, Product, Local Business, FAQ).

You can also run Schema Pro alongside Yoast or AIOSEO. Schema Pro disables overlapping schema (Article, WebPage) automatically when it detects Yoast or AIOSEO. You get Yoast’s SEO + Schema Pro’s deep schema set.

See our Rank Math Pro guide and Yoast SEO Premium walkthrough for the SEO-focused comparisons.

Performance and SEO impact {#performance}

Plugin overhead (real numbers):

  • Adds ~30KB of inline JSON-LD per page (varies by schema complexity).
  • Adds ~8KB PHP memory per request.
  • Adds 12-20ms TTFB on first request (negligible after WP object caching).

Schema Pro doesn’t enqueue any CSS or JS on the front-end. It just outputs <script type="application/ld+json"> blocks. Zero JS execution cost for users.

SEO impact (anecdotal but consistent):

Most sites see one of three outcomes after adding rich-result-eligible schema:

  1. Big win (recipe sites, product sites, local business): 15-40% CTR increase on rich-result-eligible queries within 4-8 weeks. SERP position may not change, but the listing gets more clicks.

  2. Modest win (Article + Breadcrumb only): 3-8% CTR increase. Mostly from Breadcrumb displaying the category instead of raw URL.

  3. No change: if your content was already low-quality or low-traffic, schema doesn’t fix that. Schema rewards already-relevant pages with better display.

Critical: schema doesn’t change rankings (Google has been explicit about this). It changes how your already-ranked pages appear in search.

Pair Schema Pro with WP Rocket for caching (the JSON-LD output gets cached with the page) and Perfmatters for general performance.

10 common gotchas {#gotchas}

  1. Don’t run multiple schema plugins for the same type. If Yoast outputs Article schema AND Schema Pro outputs Article schema, you get duplicate JSON-LD blocks. Schema Pro auto-detects Yoast/AIOSEO and disables its Article schema, but check the page source after activation to confirm.

  2. Custom field mapping requires custom fields to actually have values. If {{post_meta:price}} is empty on a product, that field is omitted from the JSON-LD. Google flags this as a warning. Set defaults at the field-mapping level or require the custom field at the post level.

  3. Featured image is required on most schemas. No featured image = invalid schema. Set a default image in Plugin Settings to avoid scattered errors.

  4. Recipe schema needs ISO 8601 time format. Schema Pro tries to convert from minutes to PT15M format. If you store time as text like "15 minutes", set up an ACF transformer or use Schema Pro’s "Number to ISO" merge tag (newer versions support it natively).

  5. Job Posting requires validThrough. Without an expiry date, Google won’t show the job in Google for Jobs. Always require a date field on Job CPTs.

  6. Local Business schema needs accurate hours. "9 AM – 5 PM" isn’t valid; use OpeningHours format like "Mo-Fr 09:00-17:00". Schema Pro’s UI handles this if you use its OpeningHours field type.

  7. Breadcrumb schema only outputs the trail. It does NOT render visible HTML breadcrumbs on your site. You need your theme or a separate breadcrumb plugin for the visible version.

  8. FAQ schema is now selectively shown by Google. As of 2023, Google limits FAQ rich snippets to government and health authority domains. Add FAQ schema anyway (it doesn’t hurt), but expect less SERP impact than 2 years ago.

  9. HowTo schema rich results are deprecated. Google removed HowTo from SERP enhancements in 2023. The markup is still valid; you just won’t see step-by-step previews in Google anymore. Don’t remove existing HowTo, but don’t prioritize adding new ones.

  10. Schema Pro’s "Custom Markup" doesn’t validate. It outputs whatever JSON-LD you paste in. Make sure to validate it on schema.org’s validator before going live. One missing comma kills your knowledge graph.

Developer reference: hooks and filters {#developer-reference}

Schema Pro exposes a useful filter API. Here are the most useful hooks.

Disable schema on specific pages programmatically

add_filter('wp_schema_pro_global_schema_enabled', function($enabled) {
 if (is_page('legacy-page-slug')) {
 return false;
 }
 return $enabled;
});

Modify the Article schema output before it renders

add_filter('wp_schema_pro_schema_data', function($schema, $schema_type, $post_id) {
 if ($schema_type === 'article') {
 $schema['articleSection'] = 'Custom Section';
 $schema['wordCount'] = str_word_count(get_post($post_id)->post_content);
 }
 return $schema;
}, 10, 3);

Add custom Organization social profiles

add_filter('wp_schema_pro_global_schema_organization', function($schema) {
 $schema['sameAs'][] = 'https://github.com/yourorg';
 $schema['sameAs'][] = 'https://mastodon.social/@yourbrand';
 return $schema;
});

Disable breadcrumb schema on a specific post type

add_filter('wp_schema_pro_global_schema_breadcrumb', function($enabled) {
 if (get_post_type() === 'landing_page') {
 return false;
 }
 return $enabled;
});

Replace the default merge tag handler

add_filter('wp_schema_pro_default_markup', function($markup, $field_name, $post_id) {
 if ($field_name === 'image' && empty($markup)) {
 // Fall back to first image in content
 $content = get_post($post_id)->post_content;
 preg_match('/<img[^>]+src="([^"]+)"/i', $content, $matches);
 if (!empty($matches[1])) {
 return $matches[1];
 }
 }
 return $markup;
}, 10, 3);

Re-enable setup wizard for migration

add_filter('wp_schema_pro_enable_setup_wizard', '__return_true');

Skip schema rendering for AMP pages

add_filter('wp_schema_pro_default_markup', function($markup) {
 if (function_exists('is_amp_endpoint') && is_amp_endpoint()) {
 return ''; // AMP has its own structured data layer
 }
 return $markup;
});

Programmatically read the schema for a post

$schemas = get_post_meta($post_id, 'bsf-aiosrs-schema-config', true);
// $schemas is an array of configured schemas for this post

FAQ {#faq}

Does Schema Pro replace my SEO plugin?
No. Schema Pro only handles structured data (JSON-LD). You still need Yoast, Rank Math, or AIOSEO for title tags, meta descriptions, sitemap, Open Graph tags, redirects, and the rest of SEO.

Can Schema Pro work alongside Yoast / Rank Math / AIOSEO?
Yes. Schema Pro auto-detects them and disables its own Article/WebPage/Breadcrumb schemas to avoid duplicates. You get the SEO plugin’s basic schema plus Schema Pro’s deeper types.

Does Schema Pro affect rankings?
No. Schema doesn’t change rankings directly. It changes how your already-ranked pages display in search results (rich snippets, knowledge panels). Better display = higher CTR = more traffic, but not better rank position.

Will Schema Pro slow my site?
Negligibly. It outputs JSON-LD as inline <script> tags. No CSS, no JS, ~30KB of structured data per page. 12-20ms TTFB hit before object caching.

Can I use Schema Pro on multisite?
Yes. License covers one network as one install on the direct license. Each subsite configures its own schemas.

Does Schema Pro support custom post types?
Yes. Any registered CPT shows up in the Target Locations picker. Map schema to your CPTs the same way as posts.

What about ACF Pro / Pods / JetEngine?
All supported via the {{post_meta:field_name}} merge tag. Schema Pro reads custom fields regardless of which plugin defines them.

Is Schema Pro GDPR-compliant?
It outputs structured data based on existing post content. No tracking, no third-party calls. Telemetry is opt-in only.

Does Schema Pro support WPML / Polylang for translations?
Yes. Each translated post can have its own schema config. Compatible with WPML’s String Translation if you have custom string fields.

Can I delete the default Article schema if I want to use Yoast’s?
Yes. Go to Schemas, hover the Article schema, click Trash. Yoast will continue outputting its Article schema.

Does Schema Pro work with Gutenberg block themes?
Yes. The JSON-LD output is theme-agnostic; goes in <head> regardless of theme architecture.

Can I export/import my Schema Pro config?
Yes, via Tools -> Import/Export. Critical for staging-to-production deploys.

Does Schema Pro support AMP?
Partially. Schema Pro outputs JSON-LD on AMP pages, but some AMP plugins (especially AMP for WP) have their own structured data layer. Test with AMP Validator. Use the developer filter above to disable on AMP if needed.

What’s the difference between Article and BlogPosting?
BlogPosting is a more specific subtype of Article. Schema Pro outputs Article by default; you can use Custom Markup to override with BlogPosting if you want stricter typing. Functionally identical to Google.

How do I add Review schema with star ratings?
Use the Review schema type, map reviewRating.ratingValue to a numeric custom field. Or, more commonly, use a third-party reviews plugin (Site Reviews, WP Customer Reviews) that outputs its own schema and let it coexist with Schema Pro.

My rich snippets aren’t showing in Google. Why?

  1. Validate with Google Rich Results Test (errors block display).
  2. Wait 4-8 weeks; Google indexes schema slowly.
  3. Check Google Search Console -> Enhancements for warnings.
  4. Verify the schema URL is canonical and indexable.
  5. Some schema types (FAQ, HowTo) are now selectively shown by Google.

Does Schema Pro support Google for Jobs?
Yes. Use the Job Posting schema and ensure datePosted, validThrough, hiringOrganization, jobLocation are all filled. Validate with Google’s Job Posting Test tool.

Can I use Schema Pro for a knowledge graph entity?
Yes. The Organization (or Person) schema in Website Information, with complete sameAs social profiles, gives Google the data to build a knowledge panel for your brand or you personally.

Final thoughts {#final-thoughts}

Schema Pro is the WordPress structured data plugin to install when your schema needs go beyond what your SEO plugin ships. The 21 schema types, the rule builder, and the custom field mapping make it possible to add rich snippets to any post type at scale, without writing JSON-LD by hand.

It’s not the right plugin if you only need Article + Breadcrumb (your SEO plugin already does that). It’s not the right plugin if you want SEO + schema in one tool (use Rank Math Pro). It’s not the right plugin if you’ve never heard of structured data and aren’t ready to test in Google’s Rich Results Test (start simpler).

But for "I run a recipe blog and need Recipe schema on every post" or "I have a job board and need Google for Jobs eligibility" or "I’m a local business and need a knowledge panel", Schema Pro is the practical answer. The setup wizard gets you 80% there, the rule builder handles the rest, and the custom field mapping scales to any CPT.

Pair Schema Pro with Yoast SEO Premium or Rank Math Pro for full SEO coverage, ACF Pro for the custom fields your schemas pull from, and WP Rocket for caching so the JSON-LD ships with cached HTML.