Schema Blocks
Structured data that lives with your content Most schema plugins park your structured data somewhere else: a metabox, a separate settings screen, a template file. The page says one thing, the markup says another, and nobody notices until a rich result quietly disappears. Schema Blocks works the other way round. You write the recipe, the FAQ, the product details or the job ad as blocks in the editor, and those same blocks emit the JSON-LD. What a visitor reads and what a search engine parses come from the same source, so they cannot drift apart. Nine blocks for the things people actually publish FAQ – questions and answers in a native accordion. Visitors get a real disclosure widget, machines get FAQPage / Question / Answer markup they can read. Review – review snippets with a 1-5 rating for products, books, movies, restaurants, local businesses or any Thing. Pros, cons, rating explanation, and book details (author, publisher, ISBN, page count, external identity URLs) when the reviewed item is a book. Recipe – recipe rich results built from inner blocks: ingredients, instructions and nutrition are content on the page, not hidden fields. Plus prep, cook and total time, yield, category, cuisine, keywords and rating. Product – product rich results with price, currency, availability, condition, SKU, GTIN and MPN, brand, manufacturer and aggregate rating. Event – event rich results with start and end dates, attendance mode, status, a physical or virtual location, organizer and ticket offers. Local Business – local business markup with subtype (Restaurant, Store, ProfessionalService and dozens more), address, geo coordinates, telephone, price range, cuisine served and opening hours. How-To – ordered steps with images, estimated cost, total time, tools and supplies, described in the page itself. Job Posting – job posting rich results with employment type, hiring organization, location, posting and validity dates, and base salary. Breadcrumb – breadcrumb markup generated from your site hierarchy, or a manual trail when the hierarchy does not match the story. Where the block is used it replaces the site-wide trail, so a page never emits two. Configure the site once The Settings screen holds everything that belongs to the whole site, with a live JSON-LD preview and a completeness ring next to it: Site Identity – Organization or Person, with name, logo, description, contact details, address, social profiles and founding year. WebSite – site name, alternate name, description, language and the search action. Breadcrumbs – the site-wide BreadcrumbList, with separator and home label. Content – map each public post type to Article, Blog posting or nothing. Posts default to Article, so a normal blog is marked up correctly the moment you activate the plugin. Blocks – switch off the blocks you do not use. They leave the inserter and stop emitting anything. Advanced – Wikidata ID, Wikipedia URL, legal name, VAT ID and employee count for organizations; job title, credentials and ORCID, LinkedIn or ResearchGate profiles for people; areas of expertise for either, emitted as knowsAbout. There is also a switch that suppresses the site-level nodes when another plugin already emits them. Validgraph – the optional validation connection described below. Your authors are people, not strings An author name typed into a field is text. An author entity is something a search engine can recognise across your site and beyond it. Every WordPress user gets a Schema – author profile section on their profile screen: Job title, honorific prefix, credentials and areas of expertise. sameAs URLs: LinkedIn, ORCID, Wikidata, a personal site. Where they studied (alumniOf) and which colleagues they work with, picked from the other authors who have a profile, so the Person nodes reference each other. An avatar override, and two opt-ins that tie the author to the site organization: member of it (worksFor) and founder of it. Those fields enrich the Person node referenced by every article that user writes, down to givenName and familyName taken from their WordPress first and last name. Their author archive is typed as ProfilePage, and the Organization node lists the authors who opted in as employee and founder: the full roster on the front page, the current author elsewhere. This is about being unambiguous, which is what E-E-A-T signals are made of. Nobody can promise you a ranking from it. Per-post control when the site-wide rule is wrong A Schema panel in the document sidebar overrides the defaults for a single post or page: Content type – Article, Blog posting, News article, or none, whatever the post type mapping says. Page type – About page, Contact page, Profile page, Item page or Collection page. There is also a smart rule you never have to configure: when the main content of a page is a schema block, that entity becomes the page’s mainEntity instead of a redundant Article node. One connected graph, not a pile of snippets The plugin prints a single containing one @graph. Inside it, every entity has a stable @id and references the others: the WebPage node points at the site identity and the WebSite, the article points at its author, the breadcrumb trail belongs to the page, and the primary image is a node instead of a bare URL. Posts mapped to Article carry the detail a machine needs to place them: the manual excerpt as description, the word count, the tags as keywords and every category in articleSection, alongside headline, dates, publisher, primary image and the author entity. Block-level entities join the same graph. A Recipe can take its author from the post author, an Event can name your Organization as the organizer, a Product can point its brand and manufacturer at the site identity, and a Local Business block can become the site identity rather than compete with it. Optional: check your work before you publish Connect a ValidGraph account under Settings and the editor gains a validation panel: a completeness score, an AI discoverability breakdown, rich-result eligibility, errors, range warnings and the recommended fields you have left empty, per schema on the page. A small indicator on each block shows its state, and a summary appears in the pre-publish panel. It is entirely opt-in and read-only. The API key is stored on your server and every call goes through a server-side proxy, so it never reaches the browser. Skip it and the plugin emits exactly the same markup, which you can check with the Google Rich Results Test and the Schema.org Validator. It sits beside your SEO plugin Schema Blocks is not an SEO plugin and does not want to replace one. It writes structured data; Yoast SEO, Rank Math, All in One SEO or The SEO Framework keep doing titles, meta descriptions, sitemaps and redirects. If another plugin already emits the same node type, the plugin tells you: a notice on the settings screen lists the conflicts it detects. From there you either disable that schema type in the other plugin, or use the Advanced switch to stop emitting the site-level nodes here. For developers The output is filterable at every level, and the extensibility contract (1.8.0) is documented and versioned: cddc_schema_faq_output, cddc_schema_review_output, cddc_schema_recipe_output, cddc_schema_product_output, cddc_schema_event_output, cddc_schema_local_business_output, cddc_schema_howto_output, cddc_schema_jobposting_output, cddc_schema_breadcrumb_output – the node each block emits. cddc_schema_blocks_graph_nodes – the whole @graph before it is printed. cddc_schema_blocks_author_person – enrich the author Person node. cddc_schema_blocks_page_content_type – override the content type per post in code. cddc_schema_blocks_identity_extra_schema, cddc_schema_blocks_organization_schema, cddc_schema_blocks_website_schema, cddc_schema_blocks_breadcrumb_schema – the site-level nodes. Schema_Graph::flag_main_entity(), Schema_Graph::ensure_author_person() and Schema_Graph::registered_identity_id() are public seams for add-ons. The editor toolkit used by the blocks is exposed on window.cddcSchema.ui, so an add-on can build cards that look native. Blocks are registered from block.json, rendered server-side, and the FAQ accordion uses the Interactivity API with no jQuery and no custom front-end framework. Privacy The plugin generates and prints JSON-LD on your own server. Nothing is sent anywhere unless you connect a ValidGraph account with your own API key, and until you do, no request leaves your site.
Local Business Schema Lite
People looking for your business want to know a few simple things: where you are, when you’re open, and how to get in touch. Local Business Schema Lite makes it easy to share those details with search engines. Add your business information in WordPress, and the plugin prepares LocalBusiness structured data for your website. There’s no code to write and no separate service to sign up for. Good structured data gives Google a clearer picture of the business behind your website. It brings your address, contact details, opening hours, and business type together in a format search engines can read. It’s a useful part of a well-kept local SEO setup. AI tools that use structured data can also interpret these details more easily. What can you add? Business details: name, description, address, phone, email, and website. Business type: choose from 21 familiar categories, including restaurants, shops, clinics, and local services. Opening hours: set a weekly schedule or mark your business as open 24/7. Location: add a map link, service area, and coordinates. Photos and profiles: choose a logo or image and add your Facebook and Instagram pages. Price range: give visitors and search engines a little more context about your business. Easy to set up, easy to check The dashboard shows what you’ve entered and suggests a sensible next step. You can preview the schema before publishing it, then choose whether it appears on your homepage or throughout your website. When your business needs more Local Business Schema PRO builds on the easy Lite setup with more options for businesses that have a lot to share. Whether you run one busy shop or several locations, you can give search engines a fuller picture of what you do. More business types: choose from a much wider range of business categories. Up to five locations: manage addresses and opening hours for each location. Services and specialties: describe the services you offer, with extra fields for different kinds of businesses. WooCommerce support: add more detail to product schema, including brands and product identifiers. Smarter setup tools: discover business details with Entity Autopilot, review your connected schema with Schema Brain, and check for possible overlaps with Conflict Shield. Easy upgrade from Lite: bring your saved business details into PRO with a guided import. Take a look at Local Business Schema PRO to see the features and choose the license that suits your website.