Common fight

Two graphs. Same type. Different @id.

Repeated JSON-LD deserves review when two emitters describe the same entity. Sharing the same @type with different identifiers is not enough to prove a conflict. Distinct products, organizations, and articles can legitimately share a type.

What we mean by collision

Yoast prints https://example.com/#organization. Rank Math prints something like /#schema/Organization. A theme can add a third node with no @id at all. To a consumer those are separate entities, even when the visible name is the same.

Valid is not the same as alone

Google’s Rich Results Test checks supported rich-result markup. GraphClash lists readable declarations and best-guess emitters so you can compare identity and values across each application/ld+json graph and lists the competing ids.

Pick one emitter per type

First confirm that the declarations describe the same entity. If values conflict, choose the source that matches the visible page and correct or disable the redundant declaration in staging. Keep legitimate separate entities. GraphClash does not change your site.

Check a page

Free, no account. Results stay in this browser session.

Free. No account. We do not store scans.

FAQ

Is a collision a Google penalty?
Usually not. Overlapping JSON-LD is not a ranking penalty in the way people mean that word. Conflicting entities can still weaken rich-result eligibility because the consumer has to pick a story.
What types do you watch?
Organization, WebSite, WebPage, Article, Product, FAQPage, and BreadcrumbList. We flag conflicting names or logos when declarations share the same @id; distinct organizations may be valid.
How is this different from Rich Results Test?
Google’s test checks supported rich-result markup. We ask whether two emitters are fighting on the same page. A page can pass the test and still carry two Organization nodes.
How do people usually turn a type off?
In the plugin you are not using as the source of truth — or with the public filters wpseo_json_ld_output (Yoast) and rank_math/json_ld (Rank Math). GraphClash only detects. It does not ship a functions.php patch or change settings.

Back to the checker