=== FullSchema ===
Contributors: fullschema
Tags: schema, json-ld, structured data, rich results, seo
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add the schema FullSchema writes to any page with one click, or paste it into one box. It goes into the page head, next to Yoast or Rank Math.

== Description ==

[FullSchema](https://fullschema.app) reads a page on your site and writes the schema markup it's missing: Product with price and availability, LocalBusiness with hours, FAQPage with the questions on the page, Recipe, Article and more. This plugin is the easy way to put that code on your WordPress site.

Connect your site once in Settings, FullSchema. After that, click Add to this page on a FullSchema result and the code goes into that page. Nothing to copy or paste.

Rather paste it yourself? Open the page in WordPress, find the FullSchema box at the bottom of the editor, paste and save. Both ways work side by side.

**Why use it instead of a Custom HTML block**

* The code lives in its own box, not in your content, so it survives page edits, block changes and page builders like Elementor or Divi.
* WordPress removes script tags from Custom HTML blocks for some user roles and on multisite. This plugin stores the schema as data, so that doesn't happen.
* The box checks the code as you paste it and tells you if something's wrong before you save.
* The code goes into the page's head, where most SEO tools look for it.

**Works with your SEO plugin**

Keep Yoast, Rank Math or whatever you use. They write the site-wide basics (Organization, WebSite, breadcrumbs). FullSchema adds the page-specific part and links it to their graph, so nothing is described twice.

**Small on purpose**

This plugin does one thing. It never sends a request to any server, adds nothing to your visitors' pages except your schema, and doesn't track anything. Code is checked as JSON and written back out with characters like < and > escaped, so it can only ever be schema, never a script that runs.

**Add to this page: how the connection works**

In Settings, FullSchema, create a connection key and add it to your FullSchema account. After that, Add to this page on a FullSchema result fills in that page's FullSchema box. Each request is signed with your site's key and goes through the same check as a paste, so it can only add schema to a published page. If a page already has schema, FullSchema asks before replacing it. Common page caches (LiteSpeed Cache, WP Rocket, W3 Total Cache, WP Super Cache) are cleared for that page so the change shows right away. Disconnect at any time.

== Installation ==

1. Install and activate the plugin from Plugins, Add New Plugin.
2. In WordPress, go to Settings, FullSchema. Click Create connection key, then Copy key.
3. In FullSchema, open Settings, click Connect a WordPress site, paste the key and click Connect site.
4. Generate schema for a page at [fullschema.app](https://fullschema.app) and click Add to this page. FullSchema checks that it's live.

To paste the code yourself instead:

1. In FullSchema, click Copy (HTML) on the result for your page.
2. Open that page on your site while logged in and click Edit Page in the toolbar at the top (Edit Post or Edit Product on posts and products).
3. Find the FullSchema box at the bottom of the editor. If you only see a Meta Boxes bar there, click it to open it.
4. Paste the code into the box and click Save or Update.

== Frequently Asked Questions ==

= Where is the FullSchema box? =

At the bottom of the post, page or product editor. If you only see a Meta Boxes bar at the bottom of the screen, click it to open it. Otherwise, scroll below the content.

Still not there? In the block editor, open the three dots menu at the top right, choose Preferences and turn on FullSchema. In the classic editor, open Screen Options at the top and tick FullSchema. If your page is built with Elementor or Divi, click Edit Page in the toolbar rather than the builder's button: the box is in the WordPress editor, not inside the builder.

= Do I need a FullSchema account? =

To generate the code, yes. The plugin itself only stores and outputs your schema. It never sends anything to FullSchema or anywhere else.

= What can FullSchema do once my site is connected? =

Only fill in the FullSchema box of a published post, page or product whose address matches exactly, with code that passes the same check as a paste. It can't edit your content, settings, users or other plugins. Recent sends are listed in Settings, FullSchema.

= I had the editor open when the code was sent. Will saving overwrite it? =

No. If you save without touching the FullSchema box, the code that was sent stays. If you change the box yourself, your version is saved.

= Can I paste schema that didn't come from FullSchema? =

Yes. Any valid JSON-LD works, as script tags or as bare JSON. The box checks it the same way.

= Which pages can I add schema to? =

Posts, pages, WooCommerce products and any other public post type with an editor screen. The posts page and the WooCommerce shop page use the schema saved on their page in WordPress.

= Will it conflict with Yoast or Rank Math? =

No. It adds its own script tag and leaves theirs alone. When you generate for a page that already has Yoast or Rank Math schema, FullSchema writes a block that links into theirs instead of repeating it.

= What happens if I paste something that isn't schema code? =

It isn't saved. The box tells you what's wrong, and the code that was already on the page stays live.

= How do I remove the schema from a page? =

Empty the FullSchema box and save the page.

= What happens when I delete the plugin? =

The schema stops being output right away, and deleting the plugin removes everything it stored, including the connection key.

== Screenshots ==

1. The FullSchema box at the bottom of the page editor, in the Meta Boxes bar, with the schema types that are live on the page.
2. A paste that isn't valid schema is caught before you save.
3. Settings, FullSchema: the one-click connection and the pages recently added from FullSchema.

== External services ==

This plugin can receive schema from FullSchema (https://fullschema.app), the service that generates it. Nothing is received unless you create a connection key in Settings, FullSchema and add it to your FullSchema account.

The plugin never makes requests itself. When you click Add to this page in FullSchema, FullSchema's server sends your site the page address and the schema code for it. Your site replies with its home address and the plugin version, and for that page its title, address and schema types. Each request is signed with your site's key; anything unsigned is refused. Your key is stored in your FullSchema account until you disconnect.

Disconnect in Settings, FullSchema at any time to delete the key.

* Terms of Service: https://fullschema.app/terms
* Privacy Policy: https://fullschema.app/privacy

== Changelog ==

= 1.1.1 =
* Settings, FullSchema now shows both ways to add schema, step by step, including where the FullSchema box is in the editor.
* Wording matches FullSchema's Add to this page button.

= 1.1.0 =
* Optional connection: create a key in Settings, FullSchema and send schema from FullSchema with one click. The plugin still never sends requests itself.
* Saving a page without touching the FullSchema box no longer overwrites code that arrived while the editor was open.
* The box shows when its code was sent from FullSchema.

= 1.0.0 =
* First release: a FullSchema box on posts, pages and products, checked as you paste, output in the page head.

== Upgrade Notice ==

= 1.1.1 =
Clearer directions for finding the FullSchema box. No change to how schema is stored or output.

= 1.1.0 =
Optional: connect your site to send schema from FullSchema with one click. Nothing changes until you connect.
