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 site | JSON-LD in the page source | Where CertREV's data goes |
|---|---|---|
| Rank Math | One script, Rank Math's | Into Rank Math's graph, linked to its WebPage and Article |
| Yoast SEO | One script, Yoast's | Into Yoast's graph, linked to its WebPage and Article |
| Neither | One script, CertREV's | A 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
Organizationthat issues it.
And two links into your own nodes:
- your WebPage gets
reviewedBy(the reviewer) andlastReviewed(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 isaboutyour 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
aboutyour WebPage instead.
Checking a page
- 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". - Paste the page URL into the Schema Markup Validator: no errors, no warnings.
- 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
reviewedByon 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
Certificationstates 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 intocertrev_rail_post_types. Add or remove one here.certrev_standalone_article(filter,bool, post id):falsedrops CertREV's own Article from the standalone graph, for a theme that prints an Article of its own. The certification is thenaboutthe WebPage.