How CertREV structured data works with Rank Math and Yoast

CertREV certifies an article with an expert review. On WordPress, the CertREV Schema plugin adds that certification to the article's structured data (JSON-LD), so search engines can see who reviewed the article, what their credentials are, and when they reviewed it. This page explains how it fits with the SEO plugin you already use.

One graph per page

Search engines read a page's JSON-LD as one graph of entities that point to each other by @id. With Rank Math or Yoast SEO, the plugin never prints a second, unconnected CertREV graph beside theirs, and it never adds a second Article.

Your siteJSON-LD in the page sourceWhere CertREV's data goes
Rank MathOne script, Rank Math'sInto Rank Math's graph, linked to its WebPage and Article
Yoast SEOOne script, Yoast'sInto Yoast's graph, linked to its WebPage and Article
NeitherOne script, CertREV'sA complete graph for the page: its WebPage, its Article and CertREV's nodes

Your SEO plugin's own data (headline, author, dates, images, publisher, breadcrumbs) is never changed or repeated: CertREV only adds the links described below.

Another SEO plugin (All in One SEO, SEOPress) or a theme that prints its own JSON-LD is not merged into: the plugin prints the standalone graph beside it. If that already describes the page as an Article, turn CertREV's Article off with the certrev_standalone_article filter (see the end of this page), so there is one.

What CertREV adds

Three nodes:

  • The reviewer, a Person: name, CertREV profile, photo and credentials (hasCredential). It is one identity across every article the expert reviews (https://certrev.com/expert/<id>#person).
  • The certification, a Certification: issued by CertREV (issuedBy), written by the reviewer (author), with its certificate number, date, the reviewer's note and a link to its public verification page.
  • CertREV, the Organization that issues it.

And two links into your own nodes:

  • your WebPage gets reviewedBy (the reviewer) and lastReviewed (the certification date), schema.org's properties for "the content on this page was reviewed for accuracy". A reviewer or date your page already states is kept: CertREV's reviewer is added beside it;
  • your Article gets subjectOf (the certification), and the certification is about your Article.

Example: a Rank Math page

Rank Math's own nodes are shortened to the properties CertREV links to.

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "WebPage", "@id": "https://brand.example/the-cut/reverse-sear/#webpage",
      "reviewedBy": { "@id": "https://certrev.com/expert/jane-doe#person" },
      "lastReviewed": "2026-10-01T15:00:00.000Z" },
    { "@type": "BlogPosting", "@id": "https://brand.example/the-cut/reverse-sear/#richSnippet",
      "isPartOf": { "@id": "https://brand.example/the-cut/reverse-sear/#webpage" },
      "subjectOf": { "@id": "https://certrev.com/verify/cert_123#certification" } },
    { "@type": "Certification", "@id": "https://certrev.com/verify/cert_123#certification",
      "name": "CertREV expert review", "url": "https://certrev.com/verify/cert_123",
      "about": { "@id": "https://brand.example/the-cut/reverse-sear/#richSnippet" },
      "issuedBy": { "@id": "https://certrev.com/#organization" },
      "author": { "@id": "https://certrev.com/expert/jane-doe#person" },
      "certificationIdentification": "CR-2026-7A2F", "datePublished": "2026-10-01T15:00:00.000Z",
      "certificationStatus": "https://schema.org/CertificationActive" },
    { "@type": "Person", "@id": "https://certrev.com/expert/jane-doe#person", "name": "Dr. Jane Doe",
      "jobTitle": "Doctor of Medicine",
      "hasCredential": [{ "@type": "EducationalOccupationalCredential", "name": "Doctor of Medicine", "alternateName": "MD" }] },
    { "@type": "Organization", "@id": "https://certrev.com/#organization", "name": "CertREV", "url": "https://certrev.com" }
  ]
}

With Yoast SEO it is the same, linked to Yoast's WebPage (its @id is the page URL) and Article (#article). Without an SEO plugin, CertREV prints the WebPage (#webpage) and Article (#article) itself, from the post's title, dates, author and featured image.

Custom post types

The certification works on every post type CertREV delivers to on your site, not only on Posts. The post types come from your connection's mapping in the CertREV portal, which tells the plugin which ones to carry the certification on. You don't configure anything in WordPress, but the WordPress user CertREV connects as needs the Editor role for this, because it changes a site setting.

A post type needs three things WordPress already provides: it is available in the REST API (show_in_rest), it supports custom fields (custom-fields), and it supports the editor (editor), which holds the article body CertREV certifies. If it lacks one, the plugin reports which one, and CertREV does not certify articles of that type until it is fixed. The plugin never changes your post type for you.

Your SEO plugin decides whether a custom post type has an Article:

  • Rank Math: Rank Math → Titles & Meta → your post type → Schema Type: Article.
  • Yoast SEO: Settings → Content types → your post type → Schema → Article type. Yoast's default for a custom post type is "None". Without an Article, CertREV's certification is about your WebPage instead.

Checking a page

  1. View the page source and search for application/ld+json. With Rank Math or Yoast there is exactly one script (Rank Math's or Yoast's), and it contains "@type":"Certification".
  2. Paste the page URL into the Schema Markup Validator: no errors, no warnings.
  3. Paste the page URL into Google's Rich Results Test: your Article is detected, with no errors.

An HTML comment in the page head says where CertREV's nodes went: certrev:cert:start (plugin v…) merged into the rank_math graph (or yoast), or certrev:cert:start (plugin v…) standalone before the standalone graph.

Why it is built this way

  • No `reviewedBy` on the Article. schema.org defines reviewedBy on WebPage. On an Article, the Schema Markup Validator reports it as an unknown property.
  • No `Review` of the Article. Google's review results don't accept an Article as the reviewed item, and the Rich Results Test reports one as an invalid object type. A Certification states what CertREV does, an expert review issued by CertREV, without either problem.
  • Linked by `@id`, never copied. A second Article, or a separate graph about the same page, makes search engines guess which description is the page. Linking to your SEO plugin's nodes keeps one.

Requirements

CertREV Schema plugin 1.8.0 or later. Earlier versions print a separate CertREV graph, and only on Posts.

For developers

  • certrev_certification_post_types (filter, string[]): the post types the certification is on: post, the types the CertREV portal declared, and the types opted into certrev_rail_post_types. Add or remove one here.
  • certrev_standalone_article (filter, bool, post id): false drops CertREV's own Article from the standalone graph, for a theme that prints an Article of its own. The certification is then about the WebPage.