Codedication 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.
Top keywords
- schema32×2.35%
- page18×1.32%
- blocks17×1.25%
- cddc16×1.18%
- cddc schema16×1.18%
- author14×1.03%
- site12×0.88%
- output10×0.73%
- schema blocks9×0.66%
- type9×0.66%
- article8×0.59%
- graph8×0.59%
Smush – Image Optimization, Compression, Lazy Load, WebP & CDN
Compress images, optimize images, and enable image lazy load automatically with the powerful Smush image optimizer to keep your WordPress site fast, without losing quality. Smush makes it easy to optimize images, compress images, and deliver images faster across your entire WordPress site. This all-in-one image optimizer automatically reduces image file sizes, enables image lazy load, and serves modern formats like WebP and AVIF, all without breaking image quality or adding extra work. Whether you’re running a blog, store, or portfolio, Smush helps you optimize images at scale and keep your site fast with a trusted WordPress image optimizer. Trusted by 1+ Million Sites | 4.8/5 Star Rating Get everything you need to optimize images and speed up your site. Smush works out of the box with no complicated setup – just install and let it handle the rest. Compress images without losing quality Reduce image file size automatically while keeping your images sharp and clear. Smush is an easy-to-use image optimizer which let’s you compress images using both lossless and lossy compression, giving you the best balance of quality and performance without extra work. You can also compress images outside the media library using Directory Smush, making it easy to optimize images stored in theme folders, plugins, or other directories on your server. Lazy load images for faster pages Enable image lazy load across your site so images load only when needed. This image optimizer improves initial page speed and creates a smoother experience for visitors without extra configuration. Serve WebP and AVIF images automatically (PRO) Convert images to WebP and AVIF and serve them automatically to supported browsers. Smush helps you optimize images using next-gen formats to reduce file size and improve load times across your WordPress site. Deliver images faster with an Image CDN (PRO) Serve images through a global image CDN to reduce latency and improve load times for visitors around the world. 119 global CDN servers Up to 500 GB of bandwidth Faster image delivery based on visitor location Improved performance for image-heavy and high-traffic sites Automatically resize and fix image dimensions (PRO) Eliminate common PageSpeed warnings and improve layout stability with automatic image sizing. Smush dynamically resizes images to perfectly fit their containers, regardless of original size, helping fix the “Properly size images” warning in Google PageSpeed Insights. It also automatically adds missing width and height attributes to your images, improving rendering speed and reducing layout shifts. This helps you meet the “Ensure images have explicit width and height” recommendation without any manual work. Optimize your entire site, automatically Smush works across your whole site as a powerful image optimizer to optimize images as you upload them and maintain performance over time without manual work. Optimize images automatically on upload Compress images in bulk or individually Works with your existing media library No need to re-upload images Enable image lazy load across your site Convert images to WebP and AVIF Deliver images with an integrated image CDN Automatically resize and serve correctly sized images Optimize images outside the media library with Directory Smush Built for performance Smush improves page speed and overall performance by reducing image weight and improving how images are delivered. Reduce page load times Improve user experience Better performance for image-heavy pages Supports image lazy load and preload images (PRO) for faster perceived performance Works with your existing setup Smush is built to work with your current WordPress setup, including popular themes, page builders, and plugins. Compatible with Gutenberg, Elementor, WPBakery, and more Works with WooCommerce stores No need to change your workflow Easy to enable and configure Designed to be simple You don’t need to be a performance expert to optimize images with Smush image optimizer. Works out of the box Simple settings when you need them No technical knowledge required Safe to use on any site Why choose Smush? There are plenty of image optimization plugins, but Smush focuses on making it easy to optimize images, compress images, and improve performance without complexity. As a leading WordPress image optimizer, Smush gives you powerful optimization tools without the technical hassle. Trusted by over 1 million WordPress users Built specifically for WordPress Regular updates and improvements Backed by the WPMU DEV team Get started in minutes Install Smush, activate it, and start to compress images, optimize images, and enable image lazy load right away. This easy-to-use image optimizer helps most sites see improvements immediately without changing how they upload or manage images. About Us WPMU DEV is a premium supplier of quality WordPress plugins, services and support. Learn more here: https://wpmudev.com/ Don’t forget to stay up to date on everything WordPress from the Internet’s number one resource: WPMU DEV Blog Hey, one more thing… we hope you enjoy our free offerings as much as we’ve loved making them for you! Contact and Credits Originally written by Alex Dunae at Dialect (dialect.ca, e-mail ‘alex’ at ‘dialect dot ca’), 2008-11.