According to the CreativeWork Schema, "license" is a valid property, but testing the below code with the Google Structured Data Testing Tool renders an error:
Error: Page contains property "license" which is not part of the
schema
<span itemscope itemtype="http://schema.org/CreativeWork">
<meta itemprop="genre" content="Travel">
<meta itemprop="isFamilyFriendly" content="true">
<link itemprop="license" content="http://creativecommons.org/licenses/by-nd-nc/1.0/">
</span
Am I to assume that this is a glitch in the testing tool, or that Google ignores the property and it is used elsewhere by other SEs?
The license property was added in version 1.6 (2014-06-16).
The Google Structured Data Testing Tool doesn’t recognize many other properties from after and even before this release, so it’s likely that they did not catch up yet.
If Google makes use (or ever will make use) of this property can’t be answered. Neither Google nor other schema.org consumers necessarily make use of all properties and classes, and specific uses might be undocumented or secret.
(Side note: As you have a URL as value of the license property, you must use the link element instead of meta.)
Related
I tried to add Schema.org markup on my site, with the type Article, then adding some properties on it, when checked on Google Structured Data Testing Tool, it said required certain properties, like dataPublished, author etc.
I can add some properties to meet the requirement, but not all of them. Is this requirement real? I mean really required by the rule? Or just Google rule? I came across this page https://developers.google.com/search/docs/data-types/articles It said for non-AMP, those requirements are only optional (ignored or recommended, non of them said required for non-AMP).
This get me confused, anyone knows about this, what's your opinion? Do Google Structured Data Testing Tool already include AMP requirement?
These are required/recommended for getting one of Google’s search features.
If you don’t want that Google search feature, or if you can’t provide all necessary properties, you can keep everything like it is and ignore the errors and warnings.
Related answers
Should Schema.org dateModified have some default value if not available?
Schema.org/Microdata markup for list of recent posts without providing “author” / “publisher”?
Do I have to create new visible elements to abide by Google's Microdata Schema.org requirements?
Omitting price property for sold products?
Use Schema.org for Article without image property?
Image missing and required - Wordpress AMP Structure doesn't add Image attribute
On Webmasters SE:
Schema.org BlogPosting and image required
Is it mandatory to have rich snippets for AMP pages?
I'm trying to learn how Microdata works and I was looking at the Schema.org website and I kinda get how the basics works because you can find some outlined examples online of the Navigations, Headers, Sidebars and Footers - but I don't understand what properties you can use with more complex item types.
Let's say I have an About page on my site.
Nothing fancy, you just talk about your business but there is a item type http://schema.org/AboutPage you can use.
So I visit that link but to be honest everything you see at that page isn't really written down for beginners I think.
Am I allowed to use all the item properties listed on that specific page or only the the selected few in the Thing section at the bottom of the page because the above two sections are part of WebPage and CreativeWork? I don't have the CreativeWork item type on my page, just the WebPage attached to my HTML body tag.
I always thought you could use those item types as snippets in your HTML to wrap pieces of HTML content together and you didn't need to work with an inherited workflow. Going from wrapped content inside WebPage → CreativeWork → AboutPage item types.
How to find the items types and which properties you can use within them?
First note, you can’t use the vocabulary Schema.org with Microformats. You probably confused it with Microdata, which is one of three syntaxes the Schema.org partners support (the other two are JSON-LD and RDFa). (I edited your question accordingly.)
You may use all properties that are listed on a type’s page.
A type in Schema.org always inherits from all its parent types, up to Thing. So, for example, the type AboutPage is also a WebPage, which is also a CreativeWork, which is also a Thing. You just have to use the most specific type that applies in your case.
For finding appropriate types, simply start at Thing and check the "More specific Types", linked on that page. And repeat.
Another way would be to search for some related keywords on the list of all types and check if a suitable type exists.
The problem is if you're unfamiliar with XML and Schemas because schema.org is as friendly as they can be without actually giving more examples of it, simply because stuff like this is indeed complex to make generic enough to reuse, while verbose enough to explain.
However there are some Google tools which can help you learn:
https://www.google.com/webmasters/markup-helper
https://developers.google.com/structured-data/testing-tool/
And register for Google Webmaster Tools account, and use their data highlighter and test.
Use that in combination with the schema.org examples and definitions, and then you'll properly relatively fast start learning which tags to use and how to nest them.
The GoodRelations Web site gives a short example on how to extend schema.org with GoodRelations classes and properties.
Unfortunately, the example markup is not valid when testing it with the Google Structured Data Testing Tool.
For this code snippet given as example, the properties "hasBusinessFunciton" and "haspriceSpecification" are not recognized for the "Offer" type.
<div itemscope itemtype="http://schema.org/Offer" itemid="#offer">
<div itemprop="name">Hepp Personal SCSI Controller Card</div>
<div itemprop="description">The Hepp Personal SCSI is a 16-bit add-on card that allows attaching up to seven SCSI devices to your computer.</div>
<link itemprop="http://purl.org/goodrelations/v1#hasBusinessFunction"
href="http://purl.org/goodrelations/v1#Sell" />
<!-- Shipment fees -->
Delivery costs to
<div itemscope itemprop="http://purl.org/goodrelations/v1#hasPriceSpecification"
itemtype="http://purl.org/goodrelations/v1#DeliveryChargeSpecification">
<meta itemprop="eligibleRegions" content="DE">Germany:
<meta itemprop="hasCurrency" content="EUR">Euro:
<span itemprop="hasCurrencyValue">10.00</span>
<link itemprop="appliesToDeliveryMethod"
href="http://purl.org/goodrelations/v1#UPS" />(via UPS)
</div>
<!-- other offer properties follow here -->
...
</div>
Is there some working example of schema.org extended with GoodRelations properties ?
What about using http://wiki.goodrelations-vocabulary.org/Cookbook/Vehicles in schema.org
Cheers
The reason for this is that the examples on the GoodRelations site are not yet updated to reflect the integration of GoodRelations into schema.org (simply because I did not yet manage to do that).
In order to understand this, you need to look at the history of GoodRelations:
http://wiki.goodrelations-vocabulary.org/History
GR started as an independent Web vocabulary ("ontology") and was designed to be used in RDFa or other RDF-syntaxes (like RDF/XML, Turtle, ...).
In 2009, Yahoo started to honor GoodRelations in RDFa syntax, and in 2012 Google followed. Note that this all happened in the original GoodRelations namespace, i.e. with identifiers like
http://purl.org/goodrelations/v1#BusinessEntity
After the announcement of schema.org in 2011, I worked with Google, Bing, and Yahoo to integrate GoodRelations into schema.org, which was completed and released in 2012.
This meant that (almost) any element from GoodRelations would now also be part of schema.org. So GoodRelations is now the official, extended e-commerce model of schema.org.
The result is that every GoodRelations element has now TWO identifiers:
a) the original one, like http://purl.org/goodrelations/v1#OpeningHoursSpecification
b) the one in schema.org, like http://schema.org/OpeningHoursSpecification
In some cases, the local part of the names differs between the original GoodRelations namespace and the derived version of in the schema.org namespace, in order to be consistent with the existing naming conventions in schema.org, or because a similar element had existed before.
For instance, an "Offer" is
http://purl.org/goodrelations/v1#Offering
in the original GoodRelations version, but
http://schema.org/Offer
in schema.org. But the two are the same conceptual element.
For a full list of naming differences, see
http://wiki.goodrelations-vocabulary.org/Cookbook/Schema.org#Naming_Differences
Now here comes the tricky part:
GoodRelations is supported by Google and Yahoo in its original namespace in RDFa syntax, but only in the schema.org namespace in Microdata or JSON-LD, and the support in its original namespace may be a bit out of date.
For enumerations (individuals), the original namespace remains the official one, i.e. all elements from http://www.heppnetz.de/ontologies/goodrelations/v1.html#individuals remain valid in the http://purl.org/goodrelations/v1# ... namespace, e.g. http://purl.org/goodrelations/v1#Cash.
This was chosen because we could reduce the number of new elements for schema.org by keeping the identifiers for values in the original namespace.
So when you are using GoodRelations for search engines, you should use it in the schema.org namespace. The http://purl.org/goodrelations/v1# ... namespace keeps being functional for RDF / Linked Data / SPARQL-based projects.
In the future (likely this year), there will be service update in GoodRelations which will provide
updated examples to reflect this properly and
mapping axioms so that Semantic Web applications will see the equivalences.
Hope that helps!
Best wishes
Martin Hepp
http://www.heppnetz.de
This example is valid Microdata, and also appropriate use of the Schema.org vocabulary.
Google’s Testing Tool is not a validator. It only checks structured data according to Google’s own rules, e.g. what they recognize, or for showing their Rich Snippets.
What’s happening in this snippet: the two properties (http://purl.org/goodrelations/v1#hasPriceSpecification and http://purl.org/goodrelations/v1#hasBusinessFunction) are specified as absolute URLs, which is one of the four valid ways how to provide properties in Microdata.
However, note that Microdata has only limited support for mixing vocabularies. RDFa is way more powerful in that regard. (Related: differences between Microdata and RDFa.)
With RDFa, the snippet could look like this (keeping the same HTML):
<div typeof="schema:Offer" resource="#offer">
<div property="schema:name">Hepp Personal SCSI Controller Card</div>
<div property="schema:description">The Hepp Personal SCSI is …</div>
<link property="gr:hasBusinessFunction" href="http://purl.org/goodrelations/v1#Sell" />
Delivery costs to
<div property="gr:hasPriceSpecification" typeof="gr:DeliveryChargeSpecification">
<meta property="gr:eligibleRegions" content="DE" />Germany:
<meta property="gr:hasCurrency" content="EUR" />Euro:
<span property="gr:hasCurrencyValue">10.00</span>
<link property="gr:appliesToDeliveryMethod" href="http://purl.org/goodrelations/v1#UPS" />(via UPS)
</div>
</div>
(Making use of the prefixes schema, for the Schema.org vocabulary, and gr, for the GoodRelations vocabulary, which are defined in the RDFa Core Initial Context.)
Using the Structured Data Tool in Google Webmaster Tools I have an error where Google says we are missing the required author, updated fields etc. for an entry that we do not want to have these fields.
Is there a way to tell Google that this is not an Item/Article?
No, there is no way. Google recognizes that you are using it, and either reports that you are not using the Microformat correctly (in which case it’d be a "Microformat error", if there would be such a thing), or that it doesn’t suffice Google’s guidelines for displaying a Rich Snippet (in which case it would be no error, just a notice).
The Microformat hEntry requires entry-title, updated, and author. The Microformat h-entry has no required properties.
I get the following errors from the Google Rich Snippet Tool for my website http://iancrowther.co.uk/
hcard
Warning: This information will not appear as a rich snippet in search results results, because it seems to describe an organization. Google does not currently display organization information in rich snippets
Warning: At least one field must be set for Hcard.
Warning: Missing required field "name (fn)".
Im experimenting with vcard and Schema.org and am wondering if I'm missing something or the validator is playing up. I have added vcard and Schema.org markup to the body which may be causing confusion. Also, I am making the assumption I can use both methods to markup my code.
Update:
I guess with the body tag, I'm just trying to let Google discover the elements which make up the schema object within the page. I'm not sure if this is a good / bad way to approach things? However it lets my markup be free of specific blocks of markup. I guess this is open to discussion but I like the idea of having a natural flow to the content that's decorated in the background. Do you think there is any negative impact? I'm undecided.
I am in favour of the Person structure, this was a good call as this is more representative of the current site content. I am a freelance developer and as such use this page as my Organisation landing page, so I guess I have to make a stronger decision of the sites goals and tailor the content accordingly, ie Organisation or Person.
I understand that there is no immediate rich snippet gains, but im a web guy so have a keen interest in these kind of things.
With schema testing, I find it easiest to start from the most obvious problem, and try to work our way deeper from there. Note, I have zero experience with hcard, but I don't believe the error you mentioned actually has anything to do with your hcard properties.
The most obvious problem I see, is that your body tag has an itemtype of schema.org\Organization. When you set an itemtype on a dom element, you are saying that everything inside of that element is going to help describe that itemtype. Since you've placed this on your body element, you are quite literally telling Google that your entire page is about an organization.
From the content of your page, I would recommend changing that itemtype to schema.org\Person. This would seem to be a more accurate description. Once you make that change and run the scanner again, you may see more errors relating to the schema and we can work through those too (for example, you'll probably need to set familname and givenName).
With all of that said, you should know that currently there are no rich snippets that you will gain from adding this schema data. Properly setting this up on your page, is only good to do, especially since we don't know what rich snippets Google or others will expose in the future, but currently you won't see any additional rich snippets in Google search results from adding these tags. I don't want to discourage you from setting this up properly but I just want to set your expectations.