{"id":154563,"date":"2022-04-21T03:48:03","date_gmt":"2022-04-21T03:48:03","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/schema-scalpel\/"},"modified":"2026-03-26T21:10:13","modified_gmt":"2026-03-26T21:10:13","slug":"schema-scalpel","status":"publish","type":"plugin","link":"https:\/\/frp.wordpress.org\/plugins\/schema-scalpel\/","author":20290258,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.3","stable_tag":"2.0.3","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Schema Scalpel","header_author":"Kevin Gillispie","header_description":"A simple plugin to customize your site's schema on a per-page basis.","assets_banners_color":"1c7291","last_updated":"2026-03-26 21:10:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/schemascalpel.com\/donate\/","header_plugin_uri":"https:\/\/schemascalpel.com\/","header_author_uri":"https:\/\/kevingillispie.com","rating":5,"author_block_rating":0,"active_installs":90,"downloads":8972,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"kevingillispie","date":"2022-04-30 01:51:40"},"1.0.1":{"tag":"1.0.1","author":"kevingillispie","date":"2022-05-11 01:04:05"},"1.2":{"tag":"1.2","author":"kevingillispie","date":"2022-05-21 02:43:06"},"1.2.1":{"tag":"1.2.1","author":"kevingillispie","date":"2022-05-19 05:25:05"},"1.2.2":{"tag":"1.2.2","author":"kevingillispie","date":"2022-05-21 19:13:27"},"1.2.3":{"tag":"1.2.3","author":"kevingillispie","date":"2022-07-22 03:33:23"},"1.2.4":{"tag":"1.2.4","author":"kevingillispie","date":"2022-07-22 03:40:29"},"1.2.4.1":{"tag":"1.2.4.1","author":"kevingillispie","date":"2022-07-22 04:46:40"},"1.2.5":{"tag":"1.2.5","author":"kevingillispie","date":"2022-07-23 20:02:46"},"1.2.5.2":{"tag":"1.2.5.2","author":"kevingillispie","date":"2022-07-23 20:13:29"},"1.2.5.3":{"tag":"1.2.5.3","author":"kevingillispie","date":"2022-07-23 22:35:12"},"1.2.5.4":{"tag":"1.2.5.4","author":"kevingillispie","date":"2022-07-26 02:52:47"},"1.2.5.5":{"tag":"1.2.5.5","author":"kevingillispie","date":"2022-12-11 01:03:04"},"1.2.6":{"tag":"1.2.6","author":"kevingillispie","date":"2023-03-28 04:55:11"},"1.2.6.1":{"tag":"1.2.6.1","author":"kevingillispie","date":"2023-03-28 04:56:13"},"1.2.6.2":{"tag":"1.2.6.2","author":"kevingillispie","date":"2023-03-28 05:06:02"},"1.2.7":{"tag":"1.2.7","author":"kevingillispie","date":"2023-06-19 18:41:32"},"1.2.7.1":{"tag":"1.2.7.1","author":"kevingillispie","date":"2023-06-19 22:28:16"},"1.3":{"tag":"1.3","author":"kevingillispie","date":"2023-10-22 21:25:43"},"1.3.1":{"tag":"1.3.1","author":"kevingillispie","date":"2024-02-18 21:03:42"},"1.3.2":{"tag":"1.3.2","author":"kevingillispie","date":"2024-04-15 01:22:42"},"1.4":{"tag":"1.4","author":"kevingillispie","date":"2024-04-19 03:15:19"},"1.4.1":{"tag":"1.4.1","author":"kevingillispie","date":"2024-04-19 03:45:34"},"1.4.2":{"tag":"1.4.2","author":"kevingillispie","date":"2024-09-01 00:52:51"},"1.4.3":{"tag":"1.4.3","author":"kevingillispie","date":"2024-11-24 22:31:43"},"1.4.4":{"tag":"1.4.4","author":"kevingillispie","date":"2025-01-30 07:08:42"},"1.4.5":{"tag":"1.4.5","author":"kevingillispie","date":"2025-04-06 20:49:25"},"1.4.6":{"tag":"1.4.6","author":"kevingillispie","date":"2025-04-06 21:00:48"},"1.4.7":{"tag":"1.4.7","author":"kevingillispie","date":"2025-05-05 04:07:20"},"1.5":{"tag":"1.5","author":"kevingillispie","date":"2025-08-01 00:19:15"},"1.6":{"tag":"1.6","author":"kevingillispie","date":"2025-08-03 05:32:27"},"1.6.1":{"tag":"1.6.1","author":"kevingillispie","date":"2025-08-04 20:50:43"},"1.6.2":{"tag":"1.6.2","author":"kevingillispie","date":"2025-10-31 00:00:00"},"1.6.3":{"tag":"1.6.3","author":"kevingillispie","date":"2025-12-10 16:33:23"},"1.6.4":{"tag":"1.6.4","author":"kevingillispie","date":"2026-01-01 15:12:49"},"2.0":{"tag":"2.0","author":"kevingillispie","date":"2026-01-23 01:21:52"},"2.0.1":{"tag":"2.0.1","author":"kevingillispie","date":"2026-03-25 21:38:54"},"2.0.2":{"tag":"2.0.2","author":"kevingillispie","date":"2026-03-26 02:12:48"},"2.0.3":{"tag":"2.0.3","author":"kevingillispie","date":"2026-03-26 21:10:13"}},"upgrade_notice":{"2.0.3":"<p>Critical fix for database migration errors and schema truncation. This update ensures large schema files are saved correctly and fixes potential SQL errors during the upgrade process. Highly recommended.<\/p>","2.0.2":"<p>High-priority maintenance release. Improves database security and significantly boosts performance for large sites.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2712968,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2712968,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":2712980,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":2930216,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":2930216,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.2","1.2.1","1.2.2","1.2.3","1.2.4","1.2.4.1","1.2.5","1.2.5.2","1.2.5.3","1.2.5.4","1.2.5.5","1.2.6","1.2.6.1","1.2.6.2","1.2.7","1.2.7.1","1.3","1.3.1","1.3.2","1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.5","1.6","1.6.1","1.6.2","1.6.3","1.6.4","2.0","2.0.1","2.0.2","2.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3445239,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3445239,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3445239,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3445239,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3445239,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3445239,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"The new Schema Scalpel metabox in the post editor \u2013 create and edit JSON-LD right where you write content.","2":"Global &amp; homepage schema management in the dashboard.","3":"Examples tab with one-click Google-recommended schema templates.","4":"User Settings dashboard where you can fine tune which pages get schema.","5":"Export tool for transferring your schema from one site to another via SQL.","6":"Generate customized schema for posts automatically!"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2516,2998,1117,186,1121],"plugin_category":[55],"plugin_contributors":[209656],"plugin_business_model":[],"class_list":["post-154563","plugin","type-plugin","status-publish","hentry","plugin_tags-json-ld","plugin_tags-rich-snippets","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_category-seo-and-marketing","plugin_contributors-kevingillispie","plugin_committers-kevingillispie"],"banners":{"banner":"https:\/\/ps.w.org\/schema-scalpel\/assets\/banner-772x250.jpg?rev=2930216","banner_2x":"https:\/\/ps.w.org\/schema-scalpel\/assets\/banner-1544x500.jpg?rev=2930216","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/schema-scalpel\/assets\/icon.svg?rev=2712980","icon":"https:\/\/ps.w.org\/schema-scalpel\/assets\/icon.svg?rev=2712980","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/schema-scalpel\/assets\/screenshot-1.png?rev=3445239","caption":"The new Schema Scalpel metabox in the post editor \u2013 create and edit JSON-LD right where you write content."},{"src":"https:\/\/ps.w.org\/schema-scalpel\/assets\/screenshot-2.png?rev=3445239","caption":"Global &amp; homepage schema management in the dashboard."},{"src":"https:\/\/ps.w.org\/schema-scalpel\/assets\/screenshot-3.png?rev=3445239","caption":"Examples tab with one-click Google-recommended schema templates."},{"src":"https:\/\/ps.w.org\/schema-scalpel\/assets\/screenshot-4.png?rev=3445239","caption":"User Settings dashboard where you can fine tune which pages get schema."},{"src":"https:\/\/ps.w.org\/schema-scalpel\/assets\/screenshot-5.png?rev=3445239","caption":"Export tool for transferring your schema from one site to another via SQL."},{"src":"https:\/\/ps.w.org\/schema-scalpel\/assets\/screenshot-6.png?rev=3445239","caption":"Generate customized schema for posts automatically!"}],"raw_content":"<!--section=description-->\n<p><strong>Schema Scalpel 2.0<\/strong> delivers surgical precision to your WordPress structured data. The headline feature: a <strong>brand-new metabox<\/strong> right inside the post\/page editor (Gutenberg and Classic), letting you create, edit, and manage custom JSON-LD schemas without ever leaving the content screen.<\/p>\n\n<p>No bloated page builders or separate dashboards for everyday use \u2014 just fast, intuitive schema editing where you already work, with real-time AJAX saves and a modern, clean interface.<\/p>\n\n<h3>Core Benefits &amp; Features<\/h3>\n\n<ul>\n<li><strong>New in 2.0: Powerful Editor Metabox<\/strong> \u2014 Add\/edit\/delete per-post\/page schemas directly in the editor. Real-time saving, syntax-highlighted JSON editor, visual separation of local vs global schemas.<\/li>\n<li><strong>Examples Library<\/strong> \u2014 One-click copy of Google-recommended templates (FAQPage, Article, HowTo, Recipe, Product, Organization, Breadcrumb, and more).<\/li>\n<li><strong>Per-Page Precision<\/strong> \u2014 Override or supplement global schemas for ultimate control \u2014 ideal for blogs, eCommerce, local businesses, and agencies.<\/li>\n<li><strong>Global &amp; Homepage Schemas<\/strong> \u2014 Still fully supported via the dedicated Schema Scalpel dashboard.<\/li>\n<li><strong>Improved Security<\/strong> \u2014 Hardened against XSS (titles, URLs, breadcrumbs fully sanitized), secure JSON encoding, strict input validation \u2014 building on previous critical fixes.<\/li>\n<li><strong>Compatibility<\/strong> \u2014 Works flawlessly alongside Yoast SEO, Rank Math, and All in One SEO. Easily disable their schema output to avoid duplication.<\/li>\n<li><strong>Lightweight &amp; Performant<\/strong> \u2014 Pure JSON-LD injection, no frontend bloat, optimized database storage.<\/li>\n<li><strong>Safe Uninstall<\/strong> \u2014 Optional setting to clean up data on deletion \u2014 respect privacy and keep your site secure.<\/li>\n<li><strong>Modern Codebase<\/strong> \u2014 Strict typing, full WordPress Coding Standards compliance, PHP 7.4+ compatibility.<\/li>\n<\/ul>\n\n<p>Whether you're chasing rich results (stars, carousels, FAQs), improving entity understanding, or just giving search engines cleaner data \u2014 Schema Scalpel makes it effortless and reliable.<\/p>\n\n<p>Install today and start enhancing click-through rates and visibility!<\/p>\n\n<!--section=installation-->\n<h3>From WordPress Dashboard<\/h3>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Schema Scalpel<\/strong>.<\/li>\n<li>Install and <strong>Activate<\/strong>.<\/li>\n<li>Start adding schemas via the new metabox in any post\/page editor, or visit <strong>Schema Scalpel<\/strong> in the admin menu for global settings.<\/li>\n<\/ol>\n\n<h3>Manual Upload<\/h3>\n\n<ol>\n<li>Download the plugin ZIP from WordPress.org or GitHub.<\/li>\n<li>Upload the <code>schema-scalpel<\/code> folder to <code>\/wp-content\/plugins\/<\/code> via FTP.<\/li>\n<li>Activate the plugin from <strong>Plugins<\/strong> screen.<\/li>\n<li>Customize schemas in the editor metabox or dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20add%2Fedit%20schema%20in%20v2.0%3F\"><h3>Where do I add\/edit schema in v2.0?<\/h3><\/dt>\n<dd><p>Use the new <strong>Schema Scalpel metabox<\/strong> that appears in the post\/page editor sidebar \u2014 it's now the fastest way for per-page work. Global and homepage schemas remain in the main <strong>Schema Scalpel<\/strong> menu.<\/p><\/dd>\n<dt id=\"will%20my%20old%20schemas%20still%20work%3F\"><h3>Will my old schemas still work?<\/h3><\/dt>\n<dd><p>Yes \u2014 all existing global, post, and page schemas are automatically available in both the metabox and dashboard. Zero data loss or migration required.<\/p><\/dd>\n<dt id=\"does%20it%20conflict%20with%20yoast%2C%20rank%20math%2C%20or%20aioseo%3F\"><h3>Does it conflict with Yoast, Rank Math, or AIOSEO?<\/h3><\/dt>\n<dd><p>No \u2014 it plays nicely. Disable schema generation in those plugins if you want Schema Scalpel to take full control.<\/p><\/dd>\n<dt id=\"why%20choose%20json-ld%20over%20microdata%2Frdfa%3F\"><h3>Why choose JSON-LD over microdata\/RDFa?<\/h3><\/dt>\n<dd><p>Google strongly recommends JSON-LD \u2014 it's cleaner, easier to maintain, doesn't mix with HTML, and supports the most advanced schema types.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20secure%3F\"><h3>Is the plugin secure?<\/h3><\/dt>\n<dd><p>Yes. As of v2.0.3, the plugin utilizes strict <code>$wpdb-&gt;prepare()<\/code> patterns for all migrations and queries. We have hardened the database schema to use <code>MEDIUMBLOB<\/code> for schema storage, preventing data truncation and ensuring large, complex JSON-LD payloads remain intact and valid.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.3<\/h4>\n\n<ul>\n<li><strong>Fix<\/strong>: Resolved SQL syntax error during database migration on certain MariaDB\/MySQL environments.<\/li>\n<li><strong>Database Enhancement<\/strong>: Upgraded <code>custom_schema<\/code> column to <code>MEDIUMBLOB<\/code> (16MB capacity). This fixes \"Invalid JSON\" errors caused by large schema payloads being truncated at 64KB.<\/li>\n<li><strong>Database Enhancement<\/strong>: Upgraded <code>id<\/code> column to <code>BIGINT UNSIGNED<\/code> for better scalability on high-volume sites.<\/li>\n<li><strong>Standards Compliance<\/strong>: Refactored migration queries to satisfy WordPress Coding Standards (PHPCS) while maintaining strict identifier escaping.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li><strong>Security &amp; Database Hardening<\/strong>: Switched all custom table queries to the modern <code>%i<\/code> identifier placeholder for full compatibility with current WordPress standards and stronger protection against SQL injection.<\/li>\n<li><strong>Performance<\/strong>: Refactored bulk schema generation to use efficient batch DELETE\/INSERT operations.<\/li>\n<li><strong>Compatibility<\/strong>: Full audit and fixes for PHP 8.4 compatibility.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li><strong>Performance<\/strong>: Third-party schema disabling (Yoast, All in One SEO, Rank Math) now uses a single efficient database query instead of three separate queries on every page load.<\/li>\n<li>Updated query to use the modern <code>%i<\/code> identifier placeholder for table names.<\/li>\n<li>Code cleanup and removal of temporary debug logging.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<p><strong>Major Feature<\/strong>\n- Introduced full-featured <strong>Schema Scalpel metabox<\/strong> in the post\/page editor.\n  - Create, edit, delete per-post\/page JSON-LD schemas directly.\n  - Real-time AJAX saving.\n  - Modern UI with syntax highlighting and smooth animations.\n  - \"Examples\" tab with copyable Google-recommended templates.<\/p>\n\n<p><strong>Enhancements<\/strong>\n- Added compatibility support for Rank Math SEO.\n- Improved UI\/UX with enhanced animations and visual clarity.\n- Preserved and integrated all existing schema data into the new metabox.<\/p>\n\n<p><strong>Other<\/strong>\n- Major version increment to highlight the usability leap.\n- Dashboard schema management remains for global\/advanced use.<\/p>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Compatibility fix: Removed <code>readonly<\/code> property modifiers for full PHP 7.4 support.<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Added strict typing and void return declarations.<\/li>\n<li>Improved PHPDoc and WordPress Coding Standards compliance.<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li><strong>Security<\/strong>: Fixed Stored XSS vulnerability via post titles in JSON-LD output.<\/li>\n<li>Sanitized titles, hardened JSON encoding, secured URL\/breadcrumb handling.<\/li>\n<\/ul>","raw_excerpt":"Add custom JSON-LD schema markup per post or page with a powerful new editor metabox \u2013 precise, fast, and SEO-boosting.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/154563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=154563"}],"author":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kevingillispie"}],"wp:attachment":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=154563"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=154563"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=154563"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=154563"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=154563"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=154563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}