Yoast's @graph, read before you add more
Yoast and similar plugins print one JSON-LD script with an @graph of WebPage, WebSite, and sometimes Article or FAQ. Tools that expect a single @type call it missing.
What the graph is
Each node has an @type and an @id. The WebPage node points at the main entity. That is valid JSON-LD. A checker that only reads the first object's @type will say you have no Article when the Article is the second node. Our schema checker walks @graph.
When the graph is wrong
The failure is not the @graph shape. It is a node that lies: Article on a contact page, FAQPage with questions the visitor cannot see, Organization details that contradict the footer. Adding a second schema plugin usually duplicates the Organization node.
What to do
View source, paste the script into the schema checker, and read every type. Delete markup you cannot point at on the page. Keep one plugin responsible for the graph. Then crawl the templates, because a single post can look fine while the product layout emits nothing.
Walk the graph
Do not stop at the first @type.
One plugin
Two writers of JSON-LD will disagree.
Visible facts only
If it is not on the page, remove the node.