Alpha1
Well-known member
- Affected version
- 1.5.22
Google is marking hundreds of thousands of threads as 'Spammy structured markup' and a violation of their policies because of the way data-vocabulary microdata is used for 'Person'. This has a negative effect on ranking. At least for sites that are classed by Google as YMYL (critical for well-being).
As you know for most microdata (not all) XenForo opted for Data-Vocabulary microdata markup which was abandoned in 2011 instead of Schema.org which is now the standard. See: http://www.data-vocabulary.org/
There have been various bug reports on the matter since 2014. Some have been fixed by changing from Data-Vocabulary to Schema.org.
The deprecation of Data-Vocabulary is an important factor of the issue below because Schema.org has expanded for forum discussion and person while Data-Vocabulary is deprecated where the two conflict. Now the bug below:
Google refers to the following violations:
Some similar examples from the page Common Structured Data Errors:
By marking up only the Persons in a thread, the structured data appears irrelevant to the purpose of a thread. The Person data does not describe the thread; on its own, it is better suited to a profile page. To be relevant, each post should be scoped as a Comment, with the Person encapsulated as the post's author property, and the entire thread should be scoped as DiscussionForumPosting. This is a flaw in XenForo's usage of structured data.
Side note: The Structured Data Testing Tool only checks if the microdata is valid. Not how it is used. The microdata 'Person' exists so the tool does not highlight the errors.
Here is how the markup should be: https://schema.org/DiscussionForumPosting
Schema.org markup makes use of 'Author' markup in combination with 'Person', because the Person is the Author of a forum discussion post. The page is not about a Person. This is where the two conflict. See the example at the bottom how Reddit uses it.:
The solution here would be to add the correct microdata for DiscussionForumPosting.
XenForo advertises its microdata benefits on its homepage:
As you know for most microdata (not all) XenForo opted for Data-Vocabulary microdata markup which was abandoned in 2011 instead of Schema.org which is now the standard. See: http://www.data-vocabulary.org/
There have been various bug reports on the matter since 2014. Some have been fixed by changing from Data-Vocabulary to Schema.org.
The deprecation of Data-Vocabulary is an important factor of the issue below because Schema.org has expanded for forum discussion and person while Data-Vocabulary is deprecated where the two conflict. Now the bug below:
Spammy structured markup
Description
Markup on some pages on this site appears to use techniques such as marking up content that is invisible to users, marking up irrelevant or misleading content, and/or other manipulative behavior that violates Google''s Spammy Structured Markup guidelines. Learn more
Affects
Pages with the URL pattern:
my-forum.com/threads/
Google refers to the following violations:
https://developers.google.com/search/docs/guides/sd-policies
- Don't mark up content that is not visible to readers of the page. For example, if the JSON-LD markup describes a performer, the HTML body should describe that same performer.
- Don't mark up irrelevant or misleading content, such as fake reviews or content unrelated to the focus of a page.
- Put the structured data on the page that it describes, unless specified otherwise by the documentation.
- Specify all required properties for your rich result type. Items that are missing required properties are not eligible for rich results.
Some similar examples from the page Common Structured Data Errors:
https://developers.google.com/search/docs/guides/prototype#common-sd-errors
- A page is using event markup but there is no visible event content on the page.
- Job markup used, but no job related content on the page
- Job markup doesn't match the user-visible job description
- A page using recipe markup isn't about recipes.
By marking up only the Persons in a thread, the structured data appears irrelevant to the purpose of a thread. The Person data does not describe the thread; on its own, it is better suited to a profile page. To be relevant, each post should be scoped as a Comment, with the Person encapsulated as the post's author property, and the entire thread should be scoped as DiscussionForumPosting. This is a flaw in XenForo's usage of structured data.
Side note: The Structured Data Testing Tool only checks if the microdata is valid. Not how it is used. The microdata 'Person' exists so the tool does not highlight the errors.
Here is how the markup should be: https://schema.org/DiscussionForumPosting
Schema.org markup makes use of 'Author' markup in combination with 'Person', because the Person is the Author of a forum discussion post. The page is not about a Person. This is where the two conflict. See the example at the bottom how Reddit uses it.:
Code:
<div itemid="http://www.reddit.com/r/webdev/comments/2gypch/is_schemaorg_still_a_thing/" itemscope itemtype="http://schema.org/DiscussionForumPosting">
<h1 itemprop="headline">Is Schema.org still a thing?</h1>
<p>Author:
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">haecceity123</span>
</span>
</p>
<div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
<link itemprop="interactionType" href="http://schema.org/CommentAction" />
<p>Comment count: <span itemprop="userInteractionCount">25</span></p>
</div>
</div>
The solution here would be to add the correct microdata for DiscussionForumPosting.
XenForo advertises its microdata benefits on its homepage:
As the result of this Google Policy violation is severe and because its bad SEO advertised on the home page of XenForo, I am hoping for a solution in XF1.SEO Built-in
With XenForo there is no need to pay more for your search engine optimization needs. Human-readable URLs, semantic HTML with embedded microdata, and many more SEO features are present in the very core of the system.
Last edited: