Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implicity of web page structure in Schema.org

After reading thousand of posts, questions, blog articles and opinions, I'm still a bit confused about how to markup a web page with microdata. If the main purpose of microdata is to help search engine to better understand the content of a web page (and web page is assumed implicitly), is it correct to start with itemtype Webpage in the body element, and then continue to markup the rest of nested elements defining which is the main entity, or is it better to start with an itemtype that is ideally the main topic of the web page and associate properties at the top level, or is better to have different itemtype at the top level (i.e. webpage, blog post and main topic of the page)?

An example will explain better my question: if I have to markup a webpage that contains a blog post about a specific topic (let's say about wireless technology), what should be the item at the top level? Should be webpage, blogposting, or wireless technology?

like image 685
cosphi Avatar asked Nov 16 '16 13:11

cosphi


People also ask

What is a web page schema?

Website Schemas are essentially words or tags in a “shared vocabulary” that can be used by your on-line marketing company (like us!) to talk to search engines like Google & Bing to provide refined searches.

What is schema in web development?

Schema is a semantic vocabulary of code that was created through the collaborative efforts of Google, Bing, Yahoo and Yandex. This mutually accepted language allows webmasters to implant schema code within their HTML that will be recognized across all the major search platforms.

Are web pages structured data?

Structured data provides a way to standardize information about a page and classify the page content. JSON-LD is used for data in a simple JavaScript-oriented object notation and is Google's preferred format for structured data.

What is webpage type of schema?

In this page, we have discussed WebPage type of Schema.org in detail. WebPage specifies a webpage. Since every webpage is supposed to be declared as WebPage, properties of WebPage shall be used along with. The following table described the properties of WebPage. An array of links. This helps a user to navigate the website.

What is schema and how does it work?

What is Schema.org? Schema.org is structured markup that you can add to your HTML documents to help search engines understand your content, and it makes your snippets stand out in the search engine result pages (SERPs). Other forms of structured data in digital marketing are Open Graph and Twitter Cards.

How do I add schema to my website?

If you want to add Schema to a lot of pages, it makes sense to have functionality for that in your CMS, with your existing fields re-used for Schema purposes. This can be custom made, but for Open Source CMSes, there are often plugins available. For example for WordPress: the Markup (JSON-LD) structured in the schema.org plugin .

Does schema markup increase search engine visibility?

While simply using structured data in itself isn't associated with greater search engine visibility, Schema can be used by search engines to evaluate your page. I've witnessed multiple experiments (mostly in eCommerce) where adding correct schema markup to unstructured pages led to a measurable increase in rankings.


1 Answers

The more the better (with exceptions)

When it comes to structured data, the guideline should be, in the typical case: the more the better. If you provide more structured data (i.e., you make things explicit instead of keeping them implicit), the chance is higher that a consumer finds something it can make use of.

Reasons not to follow this guideline might include:

  • You know exactly which consumers you want to support, and what they look for, and you don’t care about other (e.g., unknown or new) consumers.
  • You know that a consumer is bugged in a way that it can’t cope with certain structures.
  • You need to save as many characters as possible (bandwith/performance).
  • It’s too complex/expensive to provide additional structured data.
  • The structured data is most likely useless to any conceivable consumer.

What WebPage offers

So unless you have a reason not to, it’s probably a good idea to provide the WebPage type … if you can provide possibly interesting data. For example:

  • It allows you to provide different URIs for the page and the thing(s) on the page, or what the page represents, like a person, a building, etc. (see why this can be useful and a slightly more technical answer with details).

  • hasPart allows you to connect items which might otherwise be top-level items, for which it wouldn’t necessarily be clear in which relation they are.

  • isPartOf allows you to make this WebPage part of something else (e.g., of the website if you provide a WebSite item, or of a CollectionPage).

  • You have breadcrumbs on the page: use breadcrumb to make clear that they represent the breadcrumbs for this page.

  • You provide accessibility information: use accessibilityAPI, accessibilityControl, accessibilityFeature, accessibilityHazard

  • The author/contributor/copyrightHolder/editor/funder/etc. of the page is different from the author/… of e.g. the page’s main content.

  • The page has a different license than some of the parts included in the page.

  • You provide actions that can be done on/with the page: use potentialAction.

Of course it also allows you to use mainEntity, but if this were the only thing you need the WebPage item for, you could as well use the inverse property mainEntityOfPage.

More specific WebPage types

And the same is true for the more specific types, which give additional signals:

  • AboutPage if it’s a page about e.g. the site, you, or your organization.
  • CheckoutPage if it’s the checkout page in a web shop.
  • CollectionPage if it’s a page about multiple things (e.g., a pagination page listing blog posts, a gallery, a product category, …).
  • ContactPage if it’s the contact page.
  • ItemPage if it’s about a single thing (e.g., a blog posting, a photograph, …).
  • ProfilePage e.g. for user profiles.
  • QAPage if it’s … well, this very page.
  • SearchResultsPage for the result pages of your search function.

Your example

Your three cases are:

<!-- A - only the topic -->
<div itemscope itemtype="http://schema.org/Thing">
  <span itemprop="name">wireless technology</span>
</div>
<!-- B - the blog post + the topic -->
<div itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
    <span itemprop="name">wireless technology</span>
  </div>
</div>
<!-- C - the web page + the blog post + the topic -->
<div itemscope itemtype="http://schema.org/ItemPage">
  <div itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
    <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
      <span itemprop="name">wireless technology</span>
    </div>
  </div>
</div>

A conveys: there is something with the name "wireless technology".
B conveys: there is a blog post about "wireless technology".
C conveys: there is a web page that contains a single blog post (as main content for that page) about "wireless technology".

While I wouldn’t recommend to use A, using B is perfectly fine and probably sufficient for most use cases. While C already provides more details than B (namely that the page is for a single thing, and that this thing is the blog post, and not some other item that might also be on the page), it’s probably not needed for such a simple case. But this changes as soon as you can provide more data, in which case I’d go with C.

like image 141
unor Avatar answered Oct 02 '22 00:10

unor