Schema Pro changelog

Every version, newest first, with the date it was released. Updates install from your Plugins screen.

Latest version 1.14.023 Oct 2026first released 21 Aug 2026

1.14.0

  • New Authors as real people. Each post's author is marked up as a person: their author page, job title and profiles elsewhere, typed on Users, Profile or read from Yoast SEO's and Rank Math's profile fields, and one @id shared by all their posts. Nothing about the account they did not enter for this is published.
  • New Author pages as profile pages. Each author's page can be marked up as their ProfilePage (Site Identity, Output). On for new installs. Sites updating are asked once on the Dashboard, and it is left to Yoast SEO, Rank Math or All in One SEO when one of them writes it.

1.13.3

  • Improved Lighter post editor. The Schema Pro box on post and page edit screens loads its own small stylesheet (2.5 KB compressed) instead of the plugin's whole admin stylesheet and script (about 50 KB). The box looks and works as before.
  • Improved Media library only where you choose an image. Site Identity, a schema's editor and the setup load it; the Dashboard, Schemas list, Tools and Licence screens no longer do.
  • Improved One fewer database query on every admin page. The setup's "done" mark is stored on activation, or the first time it is read after updating, instead of being looked up and missed on every screen.
  • Improved Faster 404 pages. Every page that is not found prints the same markup, so it is stored once and read back.
  • Improved Faster pages on sites in Spanish or French. The translations now also ship as PHP files, which WordPress 6.5 and later reads from PHP's code cache instead of reading the translation file again on every page. Measured on a French site with all fifteen of our plugins: 6.3 ms and 0.8 MB of memory less on every request. Older WordPress reads the translations as before.
  • Improved Opening the plugin's screens asks less of your server. To make switching tabs instant, the plugin loads its other screens in the background while you read the first one. It now loads at most four, the plugin's own tabs first, and none while the browser tab is in the background; a tab past the fourth loads as your pointer reaches it.
  • Fixed No setup notice on a site that already has schemas. A site updated or reactivated with schemas in place was offered the two-question setup on every admin screen. It now counts as set up.
  • Fixed Notes that should be hidden stay hidden. A note a screen had hidden could still show, because the style that lays hints out outranked the browser's own rule for hidden things: "This schema produces no output yet" under a full preview, and "No type matches your search." with nothing typed. Hidden things on the plugin's screens now always stay hidden.
  • Fixed Buttons and fields no longer change shape as a screen loads. The rules that draw them before the stylesheet arrives had been copied in three times with stray characters between them, so the browser threw most of them away. They are written out once, as in our other plugins.
  • Fixed Remove data on uninstall now removes everything. The setup assistant's "done" mark and the cached list of custom fields were left behind, so after removing and reinstalling, the setup assistant never appeared again.
  • Fixed No "deprecated" notice from Cloudflare's plugin when you save. With WP_DEBUG on and a current version of Cloudflare's plugin, emptying its cache printed a deprecation notice, which could stop a save from returning to its screen. Cloudflare is now asked under its current name, and the old one only on older copies.

1.13.2

  • Fixed Page caches are emptied only as far as a change needs. With LiteSpeed Cache, saving a schema, Site Identity or the Tools settings pressed its Purge All, which also deletes its combined CSS and JS files, empties the object cache and PHP's code cache, clears Cloudflare where LiteSpeed is set to, and leaves "Purged all caches successfully." on your next screen. It now empties LiteSpeed's cached pages only. On a network, WP Super Cache is emptied for this site alone, where it emptied every site's (except a save on the main site of a network in subfolders, whose cached pages hold the other sites', and WP Super Cache's legacy copies, which it always clears for every site).

Earlier versions

September 2026 31 versions

1.13.1

  • Fixed Social profile links with an accent in the address are kept as you pasted them. Site Identity's social profiles, and the profile links of Person, Organization and Profile Page schemas, lost the % codes a browser writes for an accent, so your markup named a page that is not yours. Each line is now kept as pasted; one that is not a web address is left out and named after you save. An address saved before lost those letters for good: paste it again.
  • Fixed Item List links and images, and How-to step images, keep their % codes, so a link with a Cyrillic address is no longer saved as your home page. Paste again any saved before.

1.13.0

  • New Your organisation's address, legal name, customer service contact and company numbers. Site Identity has an Organisation Details panel for a legal name, other names, a description, founding date, number of employees, address, customer service phone and email, and VAT, tax, DUNS, LEI, ISO 6523 and NAICS numbers, each added to your organisation's markup once filled in. On a WooCommerce shop, Fill in from WooCommerce copies your store address for you to check and save.
  • Changed On a WooCommerce shop, the Dashboard's Site Identity panel now says when no address is set for your organisation. If you leave it empty on purpose, the line is only a note.

1.12.2

  • Fixed Deleting a schema always asks first. Opening Delete in a new tab or with the middle mouse button used to delete the schema, and its markup from every page it covered, with no question. It now deletes nothing that way, and the Schemas list asks again, naming the schema.
  • Fixed Shipping rows filled in by 1.12.0 are no longer blamed on your shipping zones. Where a zone covers only part of a country one of your rows names, the Shipping Policy panel said your zones had changed when only the way Schema Pro reads them had. It now names the countries to check and says why; the note goes when you save.

1.12.1

  • Fixed Fill in from WooCommerce no longer charges a whole country a local rate. A zone that covers only part of a country, such as free local delivery by postcode, no longer sets the cost for the whole country when WooCommerce charges the rest of it another cost. That country is left out and named instead, and the Shipping Policy panel asks you to fill in again if your saved rows were filled in that way.

1.12.0

  • New Shipping details for the whole shop. Tell Google your shop's shipping costs and delivery times once, under Site Identity. Fill in from WooCommerce reads your shipping zones in the order WooCommerce uses them, and names anything it could not read for you to type.
  • Fixed Sale prices the way Google asks. Products on sale now show their old price as Google asks, and a running sale gives its start and end with their time and time zone. A product whose sale is booked for later, or has just ended, is dated like any other price instead of to that sale's last day. After you update, Schema Pro rebuilds its stored markup once and asks your cache plugin to empty its page cache.
  • Fixed LearnDash lessons in more than one course. A lesson or topic that is in more than one course now gets a description only when every one of those courses is open to everyone.

1.11.1

  • Fixed Members-only posts are not described by their first words. A post, page or product kept for members by MemberPress, Paid Memberships Pro, WooCommerce Memberships or Restrict Content Pro, or a LearnDash lesson, topic or quiz that is not open to everyone, now gets a description in its structured data only from an excerpt you write for it. A lesson shared between courses, or of a course whose access mode was never saved, is treated as members-only. Markup stored before the update is rebuilt, and your page caches are emptied once so cached pages lose the old words too.
  • Fixed Errors and warnings say which they are in words. Page Checks and the Dashboard start each line with Error: or Warning:, where the two differed only by the colour of a small dot, and the post editor's box does the same.
  • Improved The check of every page is faster on shops with many variable products. It no longer reads each variable product's variations for a warning it never shows, and the product editor's Schema Pro box reads them once instead of twice.

1.11.0

  • New Each variation of a variable product marked up with its own price. Variable products can now be marked up the way Google describes product variants: one group for the product, holding each variation with its own price, stock and link. It is on for new sites, under Tools → Integrations → WooCommerce → Mark up each variation of a variable product. A product keeps its price range when a variation is set to Any for one of its attributes, when it has more than 30 variations or when its price is typed into the schema, and simple products are marked up as before.
  • Changed Shops that had Schema Pro before keep their price ranges until they choose. Once Schema Pro marks up your products, a Product schema covers them and a variable product is published, the Dashboard offers the change: Mark up each variation switches it on, and Not now keeps each variable product on one price, or a price range where its variations cost different amounts. Either answer can be changed later under Tools → Integrations → WooCommerce.
  • Changed Fewer fields are marked as required, following Google's own documentation. A field carries the star in the schema editor, and is counted on Tools and the Dashboard, only where Google's documentation for that type asks for it. An article's image, for example, is recommended rather than required, so posts without a featured image no longer show as pages to fix, and a local business now needs its name and any one part of its address, with its telephone recommended. A forum post still needs its image, because its markup has no text or video.

1.10.0

  • New Every page a schema covers is checked, not one sample page. A new Page Checks panel under Tools → Validation shows, for each active schema, how many of the published posts, pages and products it covers are missing a property Schema Pro marks as required, which property, and the first 50 of those pages with a link to edit each one. The check runs in the background, starts again whenever you change a schema or a setting that affects the markup and once a week, and Check every page now starts it straight away. A post is checked again as soon as you update it or change its featured image.
  • New The Schema Pro box in the post editor shows what that post is missing. It now lists, schema by schema, any required property the post has no value for, or says there is nothing to fix. It also shows the post's own markup, folded away until you open it, and a Test with Google button for a published post Google can reach.
  • Changed Problems and the Schemas list now count every page. Once every page has been checked, the Problems panel on the Dashboard and Tools and the Schemas list say how many of a schema's pages are missing a required property, so a schema that looked fine before this update may now show a warning, when those pages lack only something each post fills in for itself such as a featured image, or an error, when the schema itself is short of a property. "Every active schema has the properties Google requires" now appears only after a check of every page has found nothing to fix, and the first check starts on its own within a day of updating, or straight away with Check every page now.
  • Changed A page without a featured image is no longer a page to fix under a Web Page, How-to or Course schema. Web Page, FAQ, How-to, Course, Audio, Podcast Episode, Vehicle Listing and Custom JSON-LD schemas have no rich result of their own on a single page, so an empty featured image or title on a page they cover is not counted, and once every page has been checked, Problems stops warning that the sample page has no image. A property the schema itself should give is still counted.

1.9.13

  • Fixed Licensing and updates run on the newest licence code on your site. With several of our plugins on one site, all of them now use the newest licence code any of them carries, whatever order WordPress loads them in. One exception: while the first of our plugins that WordPress loads (usually the alphabetically first) is on a version from before this update, its older code still serves them all until that plugin is updated too. An older plugin of ours can also no longer stop this plugin's admin screens loading.

1.9.12

  • Fixed A schema the database refuses to store now says so. When the write was refused, the screen said "Schema saved" over an empty editor, and the schema's targeting rules and field values were written away under a schema that did not exist, where nothing could read them and nothing would ever clear them up. A refused save is now reported as one, and no orphan rows are written.
  • Fixed A very long schema name no longer loses the whole schema. A name over 200 characters could make the database refuse the whole row, so pasting a sentence into the name box lost the schema with nothing said. The name is now shortened to fit and the screen tells you it was shortened.
  • Fixed A licence check that cannot reach us no longer clears your key. One timeout, or one error page from something between your site and us, deleted the licence key you had entered together with the list of sites using it, leaving a screen that asked you to go and find the key again. What is stored is now cleared only when the licence server has actually passed judgement on the key.
  • Fixed A key the licence server does not recognise can be typed over. If a key had been reissued or deleted, the notice on every admin page said to enter it again while the licence screen kept the box locked and offered only Deactivate this site. The box now stays open with Activate licence beside it, and the old key's activation count and site list are no longer printed next to a key the server has never heard of.
  • New Check again, on the licence screen. Renew a licence, or have support put one right, and one press picks it up instead of waiting for the next automatic check. If the check cannot be made, the screen says why and changes nothing.
  • Fixed Deactivate this site, Free and Check again work with the key box empty. None of the three reads that box, but all three were answered with "Enter your licence key first." and no request was made.
  • Fixed The search and filter boxes above the schema list now filter. Typing a name, choosing a type or choosing a status and pressing Filter did nothing at all: the list came back whole and the box came back empty. Your words now stay in the box and in the address bar, so a filtered list can be bookmarked or sent to somebody.
  • Fixed Search Preview shows the day a post was published. On a site not set to UTC the preview could show the day before or the day after, most often near local midnight. The markup sent to search engines was always right; this was the preview in the editor only.

1.9.11

  • Fixed A free product, event or course is marked up as free. A price of zero was being left out of the markup altogether, so Search Console reported "Missing field price" and the page lost its rich result. Zero is now kept as the price it is, for products, events, courses, services, apps and vehicles alike, while something with no price set at all still says nothing about price.
  • Fixed A custom field you have just added is offered in the mapping picker straight away. On a site with object caching, which means Redis or Memcached and so most managed hosting, clearing the plugin's list of custom fields had no effect at all, so a field added today could be missing from the picker for up to half a day.
  • Fixed Pressing "Check again" on the Updates screen looks for a new version straight away. One failed connection to us left a note on the site that stopped every one of our plugins asking again for fifteen minutes, and "Check again" cleared this plugin's own wait but not that note. It clears both now.
  • Fixed Deleting the plugin clears away tables left behind by network sites that are gone. WordPress asks each plugin which tables are its own as it deletes a site from a network, but it does not load the plugins of the site it is deleting, so a site running this plugin on its own left its schemas, its rules and its rendered markup in the database with nothing to say whose they were. Deleting the plugin now finds those tables by name and drops them, once it has checked that the site really has gone.
  • Improved Adding a schema opens as quickly on a large site as on a small one. Until a schema has targeting rules of its own, the list offered under From a custom field was built by reading every custom field name in the database. It is now sampled from recent posts, the way the rest of the picker already worked. A field that appears only on much older posts may not be in the list, and Type a field name… still takes any name you type.

1.9.10

  • Fixed Product markup matches the prices each visitor sees. Stored markup now depends on the visitor's currency and tax, including VAT-exempt customers, instead of repeating the first visitor's prices to everyone for a day.
  • Improved Pages stay fast while you work. Saving drafts, updating posts and importing products no longer empties all the saved markup again and again; only changes a visitor can see do.
  • Fixed Deleting or network-deactivating the plugin removes its daily task from every site.

1.9.9

  • Improved Fewer database queries on every admin page. Each of our plugins checks its licence on every admin screen, to know whether to show the licence notice, and read its saved licence and its "Remind me later" flag with a query each. With the whole range installed that was thirty separate lookups on every admin page, most of them for rows that do not exist yet. They are now read together in one query (on WordPress 6.4 or later). Measured on a test site with all fifteen plugins: the WordPress Dashboard went from 41 queries of ours to 12. A small value this plugin reads on every admin screen is also now loaded with the rest of the settings, rather than on its own.

1.9.8

  • Fixed Courses and vehicles previewed with a result Google no longer shows. Google retired its single course and vehicle listing results in 2025, but Search Preview still drew a course with its stars, or a vehicle with its price, beside the result. Both are now drawn as the plain result Google shows, as FAQ and How-to already were.
  • Fixed Two type descriptions promised more than Google does. Course said a course "can appear in Google's course listings"; Google now shows courses only as a carousel of three or more from one site, with a page listing them, and the description says that. Item List said it "turns a ranked list into a carousel"; Google's carousel works only for courses, films, recipes and restaurants, and the description now names them. Both checked against Google's own documentation and announcements.

1.9.7

  • Improved One update check for all of our plugins on a site, instead of one each. Every plugin of ours used to ask our server about updates separately — fifteen requests in a row on a site with the whole range, twice a day and every time you press "Check again". The first plugin asked now asks for all of them at once, and the rest read the answer. Measured on a site with all fifteen: fifteen requests became one, and the whole check took a third of a second. If our server refuses or cannot be reached, every plugin waits the same fifteen minutes before trying again, rather than each trying in turn.

1.9.6

  • Fixed A wp-admin that would not load when our licence server could not be reached. Each of our plugins checked for its own updates, and if the server was unreachable each one waited out its own fifteen-second timeout — so a site with several of them could spend minutes on a single admin page, twice a day, for something entirely outside its control. The first one to find the server unreachable now says so for the whole site, and the others stand down until it is worth trying again. Measured on a site with fifteen installed: fifteen waits became one.

1.9.5

  • Fixed "Delete this schema?" keeps asking on sites with a strict security policy. The question was written into the page in a way that some sites block for safety, which quietly removed it — so one click deleted a schema for good.

1.9.4

  • Fixed A setting that is waiting on another one is readable again. A field held back until you switch something else on is dimmed, so it does not look identical to one you simply have not used — but it was dimmed so far that its label and explanation fell below the contrast a person with ordinary eyesight needs. Measured on the rendered screen at 2.55:1 against the 4.5:1 minimum, and now 4.75:1 and 5.02:1. The greying, the sunken background and the blocked cursor carry the rest of the signal.

1.9.3

  • Fixed The daily tidy-up no longer holds the table while it runs. Clearing old rows from the rendered markup cache was a single statement, however many rows matched. Measured on 300,000 of them: 6.63 seconds, and for all of it nothing else could write to the table. Worse, a host that cuts long queries off rolled the whole thing back — so nothing was deleted, there was more to delete the next day, and it quietly never caught up. It now goes a thousand rows at a time and stops after five seconds, leaving the rest for the next run.

1.9.2

  • Fixed A site deleted from a network no longer leaves its tables behind. WordPress asks every plugin for the tables it owns when a site is removed, and this one never answered, so its schemas, rules and rendered markup stayed in the database for ever with nothing left to say which site it had belonged to. On a network that creates and removes sites regularly that is thousands of orphan tables and a database that stops fitting in its backup window. Deleting a site now takes its schemas, rules and rendered markup with it.

1.9.1

  • Fixed A link could put words of its own into an admin notice. The bar that appears at the top of a screen after an action took its wording from the address, so a link crafted by somebody else could show an administrator a sentence this plugin never wrote. Only the sentences the plugin itself registers are shown now.
  • Improved The help text under each setting can be read at a glance. A settings screen is scanned, not read, and several notes here had grown into paragraphs. They say the same thing in a line or two, in Spanish and French as well as English.

1.9.0

  • New The Licence screen now shows which sites are using your key. "You have used all your activations" used to leave you to work out which sites those were, in your account, on another tab. Every site on the licence is listed now — the date it was added, when it last checked in, and a Free button beside it — so you can let go of a site you no longer run and put this one on without leaving the page. "Last seen" is the column that decides it: a copy that stopped checking in months ago is the one to free. The list appears on a refused activation too, directly under the key you just typed, with the same buttons. Local and staging copies are listed as well, marked free, so the count adds up.
  • Improved Updates follow the activation, not just the key. Freeing a site now really does free it: that site is still told when a new version exists, but it is not handed the download, and its own Licence screen says plainly that it is no longer on the licence and offers to activate again.
  • Fixed Two things on the Licence screen were never translated — the screen's own heading, and the "2 of 3" activation count. Both read in your language now.

1.8.33

  • Improved Plainer words on every screen, after somebody who runs a shop and has never written code read the whole plugin and said what they could not follow.
  • Fixed The same switch was called Live in one place and Active in every other. It is Active throughout now.
  • Fixed A delete that failed said "Done." It says what went wrong and what to do.
  • Fixed "Output site-wide as a Organization node" is now a sentence, without the grammar slip and without the word node. GTIN, which had no description at all, says it is the barcode number printed on the product.
  • Fixed The validation panel showed a green tick reading "Every active schema passes" on a site where nothing was active.

1.8.32

  • Fixed Tabbing onto a "Remove" or "Undo" link showed the wrong ring, or none. Those quiet link-shaped buttons in a table row are WordPress's own kind, and WordPress rings them in its blue with a rule stronger than the one this plugin writes — strong enough that it also cancelled the ring the plugin draws. Somebody working down a screen with the keyboard either saw a colour that belongs to no part of this plugin, or lost sight of where they were altogether. They now wear the same ring as every other control here.

1.8.31

  • Fixed Shop pages no longer carry two breadcrumb trails that disagree. On the shop, category and product pages the breadcrumb markup now follows WooCommerce's own trail — Home, the product's category, the product — so it matches the breadcrumb visitors see, and WooCommerce's duplicate copy is removed. Tools → Integrations says so.
  • Fixed Product markup no longer loses anything when Schema Pro takes over from WooCommerce. It now carries the five newest rated reviews, the seller, the struck-through list price of a product on sale and a price-valid-until date, as WooCommerce's did.
  • Fixed Saving a schema or Site Identity now reaches cached pages straight away. Your page cache is asked to empty itself — NimbleCache, WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Fastest Cache, SiteGround, Breeze, WP-Optimize and Cloudflare's plugin — so Google's test no longer finds the old page.
  • Fixed A new FAQ, How-to, Recipe or Event no longer lands on every page. These types now start on a single page, with the cursor in its search box, saving one before a page is chosen says it is not on any page yet, and the validation report warns when one with typed-in content covers more than one page. The rule once called "All posts and pages" now says what it covers: every single post, page and product.
  • Fixed Automatic descriptions no longer show shortcodes. A page that is one shortcode, or is built with WPBakery, Divi or Avada, was described as "[vc_row][vc_column]…"; shortcodes and blocks are now removed first, as WordPress does for excerpts.
  • Fixed "Test this page with Google" sends the right address on a site installed in a folder or a multisite subdirectory site, and is left out on drafts, previews and private or password-protected posts, which Google cannot fetch.
  • Fixed Setup no longer says a schema is active when none was added. Choosing "Skip for now" ends on "Setup is complete" with the schema types offered next.
  • Fixed The schema editor works when reached from another Schema Pro screen. Opened from the schema list, its live preview, field sources, Live/Draft label and priority box did nothing until the page was reloaded, and nor did the Tools tabs.
  • Improved The type picker, Search Preview and settings no longer promise results Google has retired. FAQ, How-to, vehicle listing and podcast results are marked as no longer shown, the preview draws them as a plain result, and "Sitelinks search box" is now "WebSite markup".
  • Improved Multilingual sites work better with WPML and Polylang. The site identity's name, logo and social profiles can be translated, and a rule aimed at one page also covers that page's translations.
  • Improved The schema editor works with a screen reader and a keyboard. Every rule, source picker, FAQ and How-to box, the priority and the list filters now have a name, rows and rules are numbered, the type search says how many types it found, and text boxes show a visible focus ring again. Site Identity and the schema list now fit a phone screen.
  • Improved Pages load a little faster. The settings are loaded with WordPress's own, and a product page no longer rebuilds its markup to decide whether to keep WooCommerce's.
  • Improved Admin screens are easier to read: faint help text and switched-off toggles now meet WCAG AA contrast.
  • New Your publisher, provider, employer and seller point at your site identity, so its logo and profiles reach every Article, Service, Course, Job Posting, Event and product.
  • New Declare your shop's return policy under Site Identity → Return Policy: the return window, countries, method and fees, added to your organisation for Google's merchant listings.
  • Improved Checkboxes show a clear focus ring when you reach them with the keyboard, and the tick in a ticked box draws correctly on phones.

1.8.30

  • Fixed An imported schema no longer lands on an unrelated page. A rule for one post, page, category or term used to travel as that item's ID number, which on another site belongs to something else or to nothing. The export now also records what the rule names, and the import finds the same post or term on the new site by its slug, or else by its exact title. Only a single exact match is taken. Imported back into the site it came from, a rule keeps its ID as before.
  • Improved A rule whose page is not on the new site is switched off and listed. It is still imported, but does nothing until you choose the page. The import lists each one by schema and page name, and in the schema the rule shows that name marked "Not found on this site"; click into it to search for the right page. Files exported with 1.8.29 hold only the ID numbers, so every such rule in them is switched off this way. Export again from the old site to have them matched.

1.8.29

  • Fixed On a WooCommerce shop, products no longer lose their Product markup when Schema Pro is switched on. WooCommerce's own price, stock and star markup used to be removed from every product, even where no Product schema of yours took its place. It is now switched off only on products one of your Product schemas covers; every other product keeps WooCommerce's. The setup offers a Product schema for all your products, and Tools → Integrations → WooCommerce tells you when none covers them and adds one in a click.
  • Fixed Private posts, draft previews and password-protected posts could leak into what other visitors saw. Markup built while you were logged in could be stored and shown to the next visitor at the same address. Nothing viewed by a logged-in user, no preview, and no private or password-protected post is stored any more, and a password-protected post no longer puts the first words of its content into its description.
  • Fixed Custom JSON-LD containing </script> could break out of the markup block and run as script for every visitor. Markup is now written so that no value can close the block, whoever entered it.
  • Fixed Custom JSON-LD lost its backslashes when saved (since 1.8.26). An escaped quote such as 27\" Monitor made valid markup fail to parse and the saved markup was deleted, and \u00e9 turned into u00e9. It is now saved exactly as pasted. If it genuinely does not parse, it is not saved and the markup you had before stays in place. A Custom JSON-LD override in the post editor keeps its web addresses intact and is checked the same way.
  • Fixed Opening a saved Custom JSON-LD schema showed an empty JSON-LD box, so saving that schema again — for a new title, a rule or its status — deleted its markup. The box now shows the saved JSON-LD.
  • Fixed Product markup now keeps up with WooCommerce. A stock change, a price change, a scheduled sale starting or ending, or a new review clears that product's stored markup at once, instead of the old stock and price showing for up to a day. Saving menus, revisions, orders and other behind-the-scenes items no longer empties the whole markup cache, addresses that differ only in a tracking parameter such as utm_source share one stored copy, and search results and 404 pages are no longer stored.
  • Fixed An online event no longer fails validation for a missing venue it has no box for. The salary currency and period are no longer greyed out when only "Salary to" is filled in or the salary comes from a custom field, and a salary given without a currency now gets a warning.
  • Fixed Apostrophes and ampersands in titles, category names and your site name are written as plain characters in the markup, not as ’ or &, which search engines read literally.
  • Fixed The live preview and the validation report check a schema against a page it actually applies to — a product for a Product schema, the chosen page for a schema aimed at one page — rather than whichever blog post is newest.
  • Fixed The Schema Pro panel in the post editor now lists a schema aimed at the front page when you edit that page, and no longer offers a schema the page is hidden from.
  • Fixed Stock, job type, salary period, course mode, event attendance and event status choices, and the Active and Draft labels on the Schemas and Dashboard screens, now appear in Spanish and French on sites in those languages.
  • Improved A Product schema on a shop fills in price, currency, stock status, SKU, brand, GTIN, sale end date, rating and review count from each product by itself when those fields are left empty, and each of those fields says so. The GTIN comes from WooCommerce's own GTIN, UPC, EAN, or ISBN box. Anything you typed or chose as a source still comes first.
  • Improved The mixed event attendance choice now reads "In person and online" rather than "Both".
  • New Aim a schema at one post, page, category or tag by name. Start typing its title in the rule and pick it from the list. The Schemas screen then shows that title under "Applies to" instead of a code such as specific_post:42:42. Typing an ID still works, and a name typed but never picked from the list is reported when you save rather than dropped quietly.
  • New Export and import. Tools → Maintenance downloads every schema, with its rules and fields, and the site settings as one file, and imports that file on another site. Imported schemas are added beside the ones already there; nothing is replaced.
  • New A WooCommerce product sold in variations at different prices is marked up as a price range, and a product on back-order as on back-order rather than in stock.
  • Fixed Activating the plugin from an older WP-CLI or a site-management tool could stop with a fatal error.

1.8.28

  • Improved When more than one Traslatability plugin is waiting for its licence key, the admin shows one notice naming them all, each name linking to its own licence screen, instead of a separate notice per plugin at the top of every admin page. "Remind me later" quietens all of them for a week. An expired or revoked licence still gets a notice of its own.
  • Fixed "Delete all data on uninstall" now also removes the licence key and the update records, which were left behind in the database.

1.8.27

  • New Fields in the schema editor can depend on each other. An online event no longer shows a venue and street address its markup would never carry, and the salary currency and period are greyed until there is a salary to go with them.
  • Improved Hints say when a value is actually used: rating and review counts only with a rating, a map pin only with both latitude and longitude, and breadcrumb markup stands down when an SEO plugin such as Yoast already outputs one.
  • Improved A setting can now depend on another field simply being filled in — a date typed, a picture chosen — rather than only on it holding one particular value. Several screens in the range needed exactly that and had no way to say it.

1.8.26

  • Improved Values arriving from the browser are now unslashed before use, the way WordPress expects. WordPress adds a backslash in front of every quote and apostrophe in a submitted value, and it is up to each plugin to take them off again. In most places here that changed nothing you could see, because the value was being cleaned in a way that discarded them anyway — but it is what WordPress's own plugin checker looks for, and it removes a whole class of quoting bug before it has a chance to appear.
  • Fixed A schema title containing an apostrophe or a quotation mark was saved with backslashes in it. "O'Brien's Bakery" was stored as "O\'Brien\'s Bakery", and picked up another backslash every time the schema was saved again.
  • Fixed The schema cache told entries apart using the Host header sent with the request, which the caller writes and can say anything. Entries are keyed on your site's own address instead, so a request with a made-up host can no longer add an entry of its own.

1.8.25

  • Improved Settings that depend on two answers at once now stay greyed out until both are met. Where one greyed group sits inside another, the inner one used to switch its own fields back on whenever its own condition was satisfied, whatever the group around it had decided. No screen in this plugin is arranged that way today; the safeguard is in place before one is.
August 2026 67 versions

1.8.24

  • Improved Wording across the admin now follows WordPress conventions. The setup wizard's panels read "Site Publisher" and "Post Type" rather than asking questions, the preview panel is "Search Preview", and the uninstall setting reads "Delete all data on uninstall". Nothing about the markup has changed.
  • Improved Spanish and French translations updated to match.

1.8.23

  • Fixed In the section bar's two-row layout, the first section now lines up with the plugin icon above it, and the sections fill the height of their row instead of sitting against the top edge.

1.8.22

  • Fixed The section bar no longer breaks onto a second line when a plugin has several sections. It is two tiers by default — the plugin name and the Documentation button on top, the sections on a full-width row beneath — and collapses to one row where everything fits.

1.8.21

  • Improved Field labels are shorter and every save button reads "Save changes", matching WordPress itself.

1.8.20

  • Improved Every screen has been reworded to WordPress conventions. Section names, field labels and help text are shorter and say plainly what they do, and a save now answers "Settings saved." rather than describing what was saved. Nothing about how the plugin works has changed.

1.8.19

  • Fixed The changelog inside the plugin listed only a handful of the releases there have been. It is generated from the same source as the one on the website now, so "View details" on the Plugins screen shows every release rather than stopping months ago.
  • Improved Every changelog entry says what kind of change it is: new, improved, fixed or removed.

1.8.18

  • Fixed A stylesheet a screen sends deliberately switched off is no longer switched on when you move between tabs.

1.8.17

  • Fixed The floating Save button comes back after changing tabs. It appeared on a freshly opened screen and never again once you moved between tabs.

1.8.16

  • Fixed A site that cannot reach the update server now waits a few minutes before asking again, instead of asking on every admin page load. Nothing changes when the server is reachable; pressing "Check again" still asks at once.

1.8.15

  • Improved Saving now says what was saved. Every screen answered with the same word — “Saved.” — which tells you the one thing you already knew, that you pressed the button. Each screen names what it kept.
  • Improved The confirmation message has no close button and more room at both ends: it leaves on its own after four seconds, and clicking anywhere on it dismisses it.

1.8.14

  • Improved Confirmation and error messages are easier to see: rounder, and coloured by what they are saying — green for saved, red for something rejected, amber for something to look at — each with a mark of its own.
  • Improved A licence message now looks like one. Activating a key answered in an unmarked grey box, whatever it said; it carries the right colour and a mark like every other message on the screen.
  • Improved A licence key that could not be a key is refused on the spot, without a request to the licence server and without reloading the screen. An empty box used to mean a wait, and on an offline site it meant being told the licence server could not be reached.
  • Improved A key pasted out of an email in lower case, or with the dashes lost, is put right rather than reported as wrong.

1.8.13

  • Fixed Confirmation messages line up properly and sit on rounder corners: they were top-aligned with the text nudged down two pixels to meet the icon, which on a one-line message read as a misalignment because it was one.

1.8.12

  • Improved Confirmations are easier to see. The message after a save is bordered in the colour of what it is telling you, sized to the words rather than stretched to a fixed card, and it now says what was saved rather than just "Saved".
  • Improved It stays for four seconds instead of three — long enough to read a sentence — and hovering it holds it open.

1.8.11

  • Improved Tab changes are instant. The plugin's other screens are fetched quietly in the background while you read the first one, so by the time you click a tab there is nothing left to wait for — tens of milliseconds instead of a second and a half.
  • Improved One at a time, never in parallel, started only once the screen you are on is ready and the browser says it is idle, stopped the moment you navigate, and skipped entirely on a metered connection.

1.8.10

  • New An admin that never reloads. Every screen arrives without a page load and every save happens where you are standing — and the screen you are heading for is usually already fetched, because moving a pointer to a menu item takes long enough to fetch it.
  • New Saved, and told so where you are looking. A save answers in a small message in the top-right corner that clears itself after a few seconds, instead of reloading the page and putting a notice above the header.
  • Improved It is an enhancement, not a dependency: if a fetch fails or scripting is off, links navigate and forms submit exactly as they always did, and the server side is unchanged.

1.8.9

  • Improved Notices redesigned: a quiet bordered card at 14px with the tone carried by a tinted icon, rather than a block of colour in coloured type.

1.8.8

  • Improved Every notice this plugin prints now looks the same: a white box with a coloured rule down its edge — orange for something to do, red for something wrong, green for something that worked. WordPress tinted a warning cream and an error pink and gave each one its own border colour, so a few notices in a row read as a few different kinds of box.
  • Fixed The message on the licence screen after activating or deactivating a key now stays where it is printed, rather than jumping down the page a second after the screen has loaded.

1.8.7

  • Fixed A notice from this plugin no longer jumps after the page has loaded. WordPress lifts any notice out of the page once it is ready and drops it under the page heading, so the screen settled and then everything below moved by the height of a notice — and painted once in WordPress's colours before ours arrived. Ours stay where they are put, styled from the first paint. The setup prompt also gets its own colour back on the rule down its edge, rather than WordPress blue.

1.8.6

  • Improved Tooltips are ours rather than the browser's. They appear the moment you hover or focus instead of after a second, they are styled like the rest of the screen, and somebody using a keyboard gets them too. On this plugin that is the marker beside a property Google requires.

1.8.5

  • Improved Every dropdown now draws its own arrow. A native select is nearly invisible against our surface on macOS and sometimes has no arrow at all elsewhere, so a dropdown could read as a text box — and a text box invites typing rather than clicking.

1.8.4

  • Improved WordPress's own plugin details window now says what the plugin is, not only what changed in the last version.
  • Fixed Settings screens have the two-column layout the shared stylesheet was missing.
  • Improved Three releases that were published but never written up — 1.0.1, 1.2.0 and 1.6.7 — are in the changelog.

1.8.3

  • Fixed The plugin mark in the section bar is versioned by file time, so a redrawn icon actually reaches you instead of the browser serving the one it cached first.

1.8.2

  • Improved The plugin icon has lost the decorative braces that used to sit either side of the mark. They crowded it at every size, and the mark is drawn larger in their place.

1.8.1

  • Improved Website catch-up: this page, the documentation and the feature list now describe 1.7.0 and 1.8.0. No change to the plugin itself.

1.8.0

  • Improved The setup wizard is its own focused screen: no notices from other plugins stacked above it, no section nav to wander off into, a centred column and a progress rail that fills as you go.
  • Fixed The section bar's text and icons now match the other Traslatability plugins exactly — they had been rendering a size smaller here.
  • Fixed The toolbar shortcut finally has a control. It was read on every admin page load with nothing anywhere to turn it off.

1.7.0

  • Improved Site Identity shows only the fields for the identity you picked. Choosing "A person" no longer leaves organisation fields on screen, and the setup wizard no longer offers a logo, which a Person never outputs.
  • Improved The identity preview says when it is out of date. It is built from saved settings, so it used to sit there quietly contradicting the form above it.
  • Improved A targeting rule shows its ID box only for the two target types that use one, and each rule answers to its own row. The box is labelled required rather than optional — leaving it empty silently dropped the rule.

1.6.23

  • Improved Checkbox options now sit several to a row instead of one per line, so settings screens use the space properly.

1.6.22

  • Improved Clearer section bar: larger, darker labels and icons, and it now stays in place instead of following the page as you scroll.
  • Fixed Summary tables read as two columns again rather than stacking each value under its label.

1.6.21

  • Improved Bigger, clearer admin type throughout, and larger controls to match — easier on the eyes on a long settings page.

1.6.20

  • Improved Easier on the eyes: slightly larger text, clearer colours and bigger buttons throughout the admin. Shorter plugin name in the menu and plugin list.

1.6.19

  • Fixed The licence reminder now sits at the top of the screen instead of halfway down some WooCommerce pages.

1.6.18

  • Improved The floating Save button is larger and easier to hit.

1.6.17

  • Fixed Clicking a link no longer leaves a stray blue focus box; keyboard focus now shows the brand ring.

1.6.16

  • Improved The floating Save button in the schema editor is now a clean single pill, matching the other Traslatability plugins.

1.6.15

  • Improved Settings: the product-source choice cards now sit side by side rather than stacked.

1.6.14

  • Improved Admin: cleaner colour pickers and a nicer focus state on the section tabs.

1.6.13

  • New Updates: unlicensed sites now see when a new version is available (installing still needs an active licence). The version check is anonymous — no licence key or site details are sent.

1.6.12

  • Fixed Admin: toggle switches now render correctly.
  • Improved Admin: the plugin's header icon now matches the brand.

1.6.11

  • New Full WordPress Multisite support: schema tables and defaults are set up per site on network activation, and on new sites automatically.
  • Improved Refreshed plugin icon.

1.6.10

  • Improved The licence check now rides along with the six-hourly update check — one request instead of two, and none until a licence key has been entered.
  • Improved Dashboard links are no longer underlined; the licence reminder keeps one colour and gives its links room.

1.6.9

  • Fixed Spanish and French translations cover every string again, including the dashboard status messages, validation notices, top bar and Tools tabs added since 1.5.7.
  • Improved The shipped plugin no longer contains authoring material.

1.6.8

  • Improved Changing a schema's target to a list page (blog index, search, archives) now removes every custom-field, ACF and WooCommerce source from the field pickers, not only the WooCommerce ones. No post renders on a list page, so none of its fields can be read there.

1.6.7

  • Improved Vehicle listings are emitted as Car with an Offer, the shape Google's vehicle listing guidance uses.
  • Improved Video, podcast and audio durations typed in minutes become ISO 8601; an ISO value is kept as typed.
  • New Podcast audio is emitted as associatedMedia and forum upvotes as an interaction statistic, both properties schema.org defines.
  • New Q&A pages carry answerCount; recipes gain totalTime; online events use a VirtualLocation.
  • Improved Select fields only accept offered choices, Custom JSON-LD is parsed at save, and per-post overrides apply the same number limits as the schema form.
  • Improved The type picker's search hides cards that do not match.

1.6.6

  • Improved The top bar sits a little below the WordPress admin bar instead of touching it.

1.6.5

  • Fixed Validation now checks each schema against a real post it applies to, the way the live preview does. A correct Article setup on a fresh site reported five missing fields because nothing could auto-fill against no post at all.
  • Improved A required field that fills itself from each post, and is simply absent on the post checked (no featured image, say), is reported as a warning about that post rather than an error in the schema.

1.6.4

  • Fixed The empty state on the Schemas list is centred; its text and buttons had drifted to the left.

1.6.3

  • Fixed The plugin offering the update you had just installed. On hosts where PHP caches compiled files for a while, the old version number could be compared against the new release for up to a minute after updating. The version is now read from the plugin file itself, which is never cached that way.

1.6.2

  • Fixed The licence page now loads the plugin's stylesheet. It is registered under the product slug rather than the menu slug, so it had been the one screen with no styling at all.
  • Fixed The welcome notice's buttons are branded on every admin screen, not only on the plugin's own pages.

1.6.1

  • Improved "Check again" on the WordPress Updates screen now asks our server directly instead of reusing an answer cached up to six hours earlier, so a release published minutes ago shows up straight away.
  • Fixed After the plugin updates, the cached update answer is discarded, so the old version can never be offered again.

1.6.0

  • Improved Redesigned every admin screen as one system: a shared top bar with the plugin's sections, licence state and docs on every page, the licence page included.
  • Improved Form controls restyled as a set — inputs, selects, checkboxes, radios and buttons share one height, radius and brand focus ring, so the licence form no longer looks like a stock Settings page.
  • Improved Tools is now three tabs (Validation, Integrations, Maintenance) instead of one long column; the Validation tab shows its issue count.
  • Improved Settings checkboxes became full-width check rows with their explanation attached.
  • Fixed The plugin icon now appears on the WordPress Updates screen and in the plugin details modal.
  • Fixed Nothing resizes after first paint: inputs and the top bar are sized inline, as the buttons already were.

1.5.7

  • Improved The licence screen now looks like the rest of the plugin — same header, panel and status pill — instead of a bare WordPress page with its own box.
  • Fixed Buttons briefly painting square before their corners rounded.
  • Improved One corner radius for surfaces and one for controls across every screen, where five different values had crept in; body text likewise settles on two sizes rather than four.
  • Improved The setup wizard uses the shared page header.

1.5.6

  • Improved Admin notices now appear above the page header instead of wedged between the title and its subtitle.
  • Improved The schemas list is easier to scan: an icon per schema type, the type shown under its name, and status and health side by side.
  • Improved Buttons are one consistent size and style across every screen.

1.5.5

  • Improved Number fields now refuse impossible values. A rating cannot be negative or above 5, a price or duration cannot be negative, and anything rejected is explained rather than silently dropped.
  • Improved The priority control opens as a small panel instead of stretching the row it sits in.

1.5.4

  • Fixed Field mapping now finds every custom field that genuinely applies to the post type a schema targets: ACF fields scoped by their own location rules, including those nested inside repeaters and groups; fields declared by other plugins even when no post has a value yet; and ordinary custom fields. Private keys beginning with an underscore are hidden.
  • Improved Discovery is bounded, so it stays fast on a site with millions of posts, and results are cached until an ACF group or a custom field actually changes.
  • Improved Save now sits at the end of the schema name row, and the redundant "Output" label above the switch is gone.

1.5.3

  • Fixed WooCommerce fields no longer appear for targets that can never be a product — the blog index, front page, search results and archives are lists, not products.
  • Fixed The Google preview now shows stars for Review schemas, which use a different rating property from everything else.
  • Fixed The preview panels sit beside the fields again instead of dropping to the bottom of the page, and the image field's Choose button sits on the same line as its input.

1.5.2

  • Improved The schema editor's settings now sit in one row at the top: the name, an on/off switch, and priority folded away at its default since it rarely needs changing.
  • Improved "Internal title" is now "Schema name", with an example of what to write.

1.5.1

  • Fixed Activating a licence ending on "you are not allowed to access this page". Successes and errors now show on the licence screen itself.
  • Improved The field picker only offers fields that exist on the post types a schema targets, and updates the moment you change a targeting rule — no saving first. WooCommerce sources appear only where they can actually resolve.
  • Improved A newly added custom field is offered straight away instead of after an hour.
  • New A save button now follows you down the editor, so a long schema can be saved without scrolling back up.
  • Improved Clearer validation messages, and stat cards with a little more depth.

1.5.0

See what you are building, as you build it.

  • New A Google preview. The editor shows how a result could look — stars, price, cook time, FAQ rows — so you can see what your markup buys you without reading JSON.
  • Improved Both previews are now live. They rebuild as you type, from the values in the form, rather than from the last save. Validation updates with them.
  • Improved Previews now appear while creating a schema, not only when editing a saved one.

1.4.0

A clearer admin.

  • Improved The dashboard now tells you where you stand. One banner states the situation — nothing set up, nothing published, something missing, or all clear — and offers the single next action, instead of leaving you to work it out from counts.
  • Improved Icons throughout, carrying state as well as decoration: a problem card is red with a warning glyph, a healthy one green with a tick.
  • Improved "Pages covered" replaces a meaningless type count, saying in plain English where your markup actually appears.
  • Fixed The primary button appearing blue for a moment before turning orange.
  • Fixed A miscount that said "15 schemas are missing something" when only three existed, and a green all-clear that appeared before anything had been checked.

1.3.2

  • Improved The licence screen now lives inside the Schema Pro menu rather than under Settings, and an unlicensed site is told so on every admin screen instead of only on the licence page itself.
  • Fixed The health check overlapping its own text when a finding was longer than a few words.
  • New The invoice sign-off is a setting now, so it can be edited or removed.

1.3.1

Easier field mapping.

  • Improved "Where it applies" now comes first in the schema editor, because what a schema targets determines what its fields can read from.
  • Improved Fields are chosen from a list, not typed. The picker shows the custom fields and ACF fields that actually exist on the post types the schema targets — so a schema aimed at Products offers product fields, not every key on the site. A free-text option remains for a field that exists but has no value stored yet.
  • Fixed Removed a duplicated validation message in the editor.

1.3.0

Field mapping, WooCommerce, and translations.

  • New Point a field at your data. Any field can now read from a custom field, an ACF field, the author's profile or a term field instead of holding a fixed value. One schema can finally produce different values per post — a price, a rating, a cook time — without a schema per post.
  • New WooCommerce. Product fields read price, currency, SKU, stock, ratings, brand, GTIN and sale end date straight from each product, with no meta keys to type. Woo's own product markup is switched off so there is only one.
  • New Spanish and French included, with English as the default. The plugin is fully translation-ready, so any language can be added.

1.2.1

Guidance throughout, for people who have never touched structured data.

  • New Two-minute setup. A new install is offered a short wizard: who publishes the site, what its posts are, done. It creates a working schema and confirms the markup is live, without needing to know a single schema.org type name.
  • Improved Every type explains itself. All 30 now say what you actually gain — "Cook time, rating and a photo can appear in the recipe carousel" — and link to Google's own guidance for that type.
  • New Field help. 71 fields carry concrete guidance: what format, what units, and a worked example.
  • Improved A useful empty screen. With no schemas configured, the list explains what a schema is and offers the setup, rather than saying "no schemas match".
  • New Test from the toolbar. A Schema menu appears on the front end with one-click links to Google's Rich Results Test and the Schema Markup Validator for the page you are looking at. Hidden on local and private sites, which Google cannot reach anyway.
  • Improved Named validation. The editor now says which properties are missing rather than only that something is.

1.2.0

  • New A guided setup wizard.
  • Improved Each schema type explains what it earns you in search, with a link to Google's own documentation for it.
  • New Help text on 71 fields.

1.1.0

Per-post control, conflict handling and six more schema types.

  • New Per-post overrides. A Schema Pro panel in the post editor lets you change any field for one post without touching the schema every other post shares. Empty boxes show the value that will be used, so nothing is guesswork.
  • New Works alongside your SEO plugin. Yoast, Rank Math, SEOPress, All in One SEO and The SEO Framework are detected automatically, and site identity, breadcrumbs and the sitelinks box stand down rather than emitting a second copy. Article and Web Page markup can be handed over too, from Tools.
  • New Six new types: Profile Page, Forum Post, Item List, Movie, Audio and Vehicle Listing — the last two of which are current Google rich results.
  • New Article subtypes: Technical, Scholarly, Report, Opinion, Review, Background, Satirical and Sponsored.
  • New 75 Local Business subtypes, up from 10 — restaurants, trades, clinics, shops and professional services each get their precise type.

1.0.1

  • New Documentation, knowledge base and feature pages published on traslatability.com.

1.0.0

Initial release.

  • New 24 schema types: Article, Blog Posting, News Article, FAQ, Q&A Page, How-to, Recipe, Course, Book, Video, Podcast Episode, Image Licence, Product, Service, Software Application, Review, Local Business, Organization, Person, Job Posting, Event, Dataset, Web Page and Custom JSON-LD.
  • New Targeting rules by post type, taxonomy, specific post or term, archive, front page, search and 404, with exclusions taking precedence over inclusions.
  • New Automatic field values pulled from the post being rendered — title, excerpt, featured image, author, dates and permalink.
  • New A single JSON-LD @graph per page, which is what Google recommends.
  • New Site Identity as Organization or Person, with logo, contact details and sameAs social profiles.
  • New Breadcrumb markup and the sitelinks search box, each independently switchable.
  • New Validation report listing schemas missing properties Google requires.
  • New Four purpose-built database tables, so nothing is written to postmeta.
  • New Per-URL caching of rendered markup, cleared automatically when content or configuration changes.

Pricing

Every plan includes every feature. Choose how many domains, and whether to pay yearly or once.

Pay yearly renews until you cancel

1 domain One year of updates and support
$19a year
5 domains One year of updates and support
$29a year
Unlimited domains One year of updates and support
$39a year

Pay once (lifetime) no renewals

5 domains Updates and support for as long as we publish it
$49once
Unlimited domains Updates and support for as long as we publish it
$69once
  • Every plan includes every feature. You choose only the number of domains.
  • 30-day refund, no reason needed. Refund policy
  • Licence key and download straight after payment, by Stripe.
  • A lapsed licence stops updates and support. It never switches a feature off.
  • Local, development and staging copies are free and do not count against your domains.
  • Yearly plans renew at the then-current price until you cancel. Cancel any time from your account.
  • Where tax applies it is calculated at checkout and shown before you pay.

Licence questions