Hi George! Sorry for my late reply.
In TSF v5.0, I added a new Schema.org generator, including the WebPage type, and there is some overlap with Articles. The KB page about the structured data TSF supports doesn’t fully reflect these changes because Google has not yet properly documented most of the Schema.org we use, so there’s no actual reference material.
In the context of websites, a WebPage is not always an Article, but an Article is always a WebPage. I hope that makes sense.
Additional Schema.org structured data outputted by other plugins and extensions gets merged by identifiers. So, if Articles outputs Article markup, it actually gets merged with the WebPage markup because they share the same identifier (the page URL). The most specific recognized structured data type is used (though sometimes the latest kind, depending on who’s parsing the page), and specific types always imply the less specific ones.
You can see some of that in action by using the validator. For example, parsing our 5.0.6 changelog page, you can see that the “Article” type detected actually has congealed into it all the WebPage and other Graph data, such as Breadcrumbs, while the Article output is only this:
{
"@context": "https://schema.org",
"@type": "Article",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "x"
},
"headline": "x",
"image": {
"@type": "ImageObject",
"url": "x", /* This should actually be contentUrl; it's misrepresented in the docs, fixed in the next update */
"width": 0,
"height": 0
},
"datePublished": "x",
"dateModified": "x",
"author": {
"@type": "Person",
"name": "x",
"url": "x"
},
"publisher": {
"@type": "Organization",
"name": "x",
"logo": {
"@type": "ImageObject",
"url": "x", /* This should actually be contentUrl; it's misrepresented in the docs, fixed in the next update */
"width": 0,
"height": 0
}
},
"description": "x"
}
Still, the Article type isn’t coming from The SEO Framework, but one of our paid extensions. Since you’re using only the free version of the plugin without extensions, the Article markup must be coming from somewhere else, such as the theme or another plugin. Because I cannot guarantee its accuracy in combination with TSF’s output, I recommend finding where it’s coming from and disabling it. If you want some pointers from me to locate its source, then I require the URL of an affected page.