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%
Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)
Easily improve site security with WordPress Hardening, Two-Factor Authentication (2FA), Login Protection, Vulnerability Detection and SSL certificate. Really simple, Effective and Performant WordPress Security Really Simple Security is the most lightweight and easy-to-use security plugin for WordPress. It secures your WordPress website with SSL certificate generation, including proper 301 https redirection and SSL enforcement, scanning for possible vulnerabilities, Login Protection and implementing essential WordPress hardening features. We believe that security should have the absolute minimum effect on website performance, user experience and maintainability. Therefore, Really Simple Security is: Lightweight: Every security feature is developed with a modular approach and with performance in mind. Disabled features won’t load any redundant code. Easy-to-use: 1-minute configuration with short onboarding setup. Security Features Easy SSL Migration Migrates your website to HTTPS and enforces SSL in just one click. 301 redirect via PHP or .htaccess Secure cookies Let’s Encrypt: Install an SSL Certificate if your hosting provider supports manual installation. Server Health Check: Your server configuration is every bit as important for your website security. WordPress Hardening Tweak your configuration and keep WordPress fortified and safe by tackling potential weaknesses. Prevent code execution in the uploads folder Prevent login feedback and disable user enumeration Disable XML-RPC Disable directory browsing Username restrictions (block ‘admin’ and public names) and much more.. Vulnerability Detection Get notified when plugins, themes or WP core contain vulnerabilities and need appropriate action. Login Protection Allow or enforce Two-Factor Authentication (2FA) for specific user roles. Users receive a two-factor code via Email. Improve Security with Really Simple Security Pro Protect your site with all essential security features by upgrading to Really Simple Security Pro. Advanced SSL enforcement Mixed Content Scan & Fixer. Detect files that are requested over HTTP and fix them to HTTPS, both Front- and Back-end. Enable HTTP Strict Transport Security and configure your site for the HSTS Preload list. Firewall Really Simple Security Pro includes a performant and efficient WordPress firewall, to stop bots, crawlers and bad actors with IP and username blocks. 404 blocking – Blocks crawlers as they trigger unusual numbers of 404 errors. Region blocking – Only allow/block access to your site from specific regions. Automated and customisable Firewall rules. IP blocklist and allowlist. Security Headers Security headers protect your site visitors against the risk of clickjacking, cross-site-forgery attacks, stealing login credentials and malware. Independent of your Server Configuration, works on Apache, LiteSpeed, NGINX, etc. Protect your website visitors with X-XSS Protection, X-Content-Type-Options, X-Frame-Options, a Referrer Policy and CORS headers. Automatically generate your WordPress-tailored Content Security Policy. Vulnerability Measures When a vulnerability is detected in a plugin, theme or WordPress core you will get notified accordingly. With Vulnerability Measures, you can configure simple but effective measures to make sure that a critical vulnerability won’t remain unattended. Force update: An update process will be tried multiple times until it can be assumed development of a theme or plugin is abandoned. You will be notified during these steps. Quarantine: When a plugin or theme can’t be updated to solve a vulnerability, Really Simple Security can quarantine the plugin. Advanced Site Hardening Choose a custom login URL Automated File Permissions check and fixer Rename and randomize your database prefix Change the debug.log file location to a non-public folder Disable application passwords Control admin creation Disable HTTP methods, reducing HTTP requests Login Protection Secure your website’s login process and user accounts with powerful security measures. Two-Step verification (Email login) 2FA (two factor authentication) with TOTP Passwordless login with passkey login Enforce strong passwords and frequent password change Limit Login Attempts With Limit Login Attempts you can configure a threshold to temporarily or permanently block IP addresses or (non-existing) usernames. You can also throw a CAPTCHA after a failed login (hCaptcha or Google reCaptcha) Access Control Restrict access to your site for specific regions. Add specific IP addresses or IP ranges to the Blocklist or Allowlist. Useful Links Documentation Security Definitions Translate Really Simple Security Issues & pull requests Feature requests Love Really Simple Security? If you want to support the continuing development of this plugin, please consider buying Really Simple Security Pro, which includes some excellent security features and premium support. About Really Simple Plugins Our mission is to make complex WordPress requirements really easy. Really Simple Security is developed by Really Simple Plugins. For generating SSL certificates, Really Simple Security uses the le acme2 PHP Let’s Encrypt client library, thanks to ‘fbett’ for providing it. Vulnerability Detection uses WP Vulnerability, an open-source initiative by Javier Casares. Want to join as a collaborator? We’re on GitHub as well!