I have to implement schema.org for a large local car dealer with
repair shop, gas station, showroom and car wash. All on one website.
Is it possible to define for each area own opening hours in schema.org? And maybe google show them all?
Like
<meta itemprop="openingHours" item-name="Gas Station" content="Mo-Sa 11:00-14:30">
or are any child-entities reserved for this use case?
Thanks for hints.
Each area needs its own item (in Microdata introduced with the itemscope attribute). And the opening hours for an area have to be nested under its item.
So the whole business could be an AutomotiveBusiness. The repair shop are could be an AutoRepair, the wash area could be an AutoWash, and so on. And to relate the areas with the business, you could use the department property.
<div itemscope itemtype="http://schema.org/AutomotiveBusiness">
<!-- properties about the whole business go here -->
<div itemprop="department" itemscope itemtype="http://schema.org/AutoRepair">
<!-- properties about the repair area go here -->
</div>
<div itemprop="department" itemscope itemtype="http://schema.org/AutoWash">
<!-- properties about the wash area go here -->
</div>
</div>
You can try to use schema hours to distinguish each separate entity's opening hours, but the best way to get each entity listed in Google is to have a Google My Business page for each one.
I have clients who offer multiple services at the same location in the same manner you do. The trick is to add a "sub address" to the location by adding either a suite number or letter. i.e. 1234 Mary Way #100, or 1234 Mary Way #A.
Google Map Maker allows users to add unique addresses such as this to divide inner locations on buildings or establishments.
Hope this helps
Related
I try to get a simple business address which I structured after the https://schema.org/PostalAddress Example 2:
<div class="place" itemscope itemtype="https://schema.org/Organization">
<p>
<span itemprop="name">Organisation</span>
</p>
<p itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">Stationstreet 1</span>
<span itemprop="postalCode">8596</span> <span itemprop="addressLocality">Arbon</span>
</p>
</div>
If I let google test rich results test this it claims that no data was detected. If I test on (https://validator.schema.org) it proofs to contain a proper address.
Is this a mistake on my end or shouldn't I trust Google's test here?
The purpose of Google’s Rich Results Test tool is showing/validating structured data that conforms to their own Rich Results. Rich Results are features in Google Search (typically for displaying a search result in a different way), which make use of certain Schema.org schemas. This means the tool only considers a very small subset of what is possible to describe with Schema.org.
You can see this in action if you replace your Organization type with the subtype LocalBusiness (just for testing; if your organization is not a local business, don’t publish it like that). The tool will detect an item then, because Google has a rich result for local businesses.
Hello and thank you for the opportunity to post a question. I have searched the Internet, Schema.org and Stackoverflow for an answer to my question. Maybe I am not asking my question correctly... I have a directory website that lists various organizations and businesses. Almost all the Organizations are Government funded and require documentation from a client in order to receive services.
For example: 'Name of Food Bank, Address, Telephone, Description, Documentation required: Photo ID, Birth Certificate, Utility Bill, EBT card.' The same would be for a Hospital, Substance Use Program, Medical, Dental, etc.
I cannot find any schema for how to list the documentation that the organization requires from a client in order to be eligible for services. I'm sure it's got to be somewhere!
Most likely, there is a way, but for just one specific entity type. I need a way to use for any entity type.
My question is how would I use Microdata to list the (any) organizations/business 'Required Documentation' of a client?
I don't think there's such an option. You might start from what's it about.
From what you're saying, some companies offer some services. So we could use Service and LocalBusiness entities.
Customers need to provide documentation, which means it's an application, so we can use ApplyAction as the top/main entity, because that seems to be the point.
As for "required documentation", can't think of anything other than just list it in the description, as is.
Here's how it might look (ApplyAction that has a Service as an object, offered by one of the companies, with requirements listed in the description):
<div>
<div itemtype="http://schema.org/ApplyAction" itemscope>
<div itemprop="object" itemtype="http://schema.org/Service" itemscope>
<meta itemprop="serviceType" content="Hospital, Substance Use Program, Medical, Dental, etc." />
<meta itemprop="description" content="Documentation required: Photo ID, Birth Certificate, Utility Bill, EBT card" />
<div itemprop="provider" itemtype="http://schema.org/LocalBusiness" itemscope>
<meta itemprop="name" content="One of various organizations and businesses" />
</div>
</div>
</div>
</div>
I have been trying to find the best way to link two items together using RDFa, specifically linking a Person to multiple SoftwareApplication entries.
The way I currently do this on the author page is:
<div class="container text-center" vocab="http://schema.org/" typeof="Person">
...
<span property="hasOfferCatalog" typeof="OfferCatalog">
<meta property="numberOfItems" content="10" />
<span property="itemListElement" typeof="CreativeWork">
<meta property="name" content="Project Name" />
<meta property="url" content="https://www.my-domain.tld/ProjectName/" />
</span>
...
As above the project is actually a SoftwareApplication, and the URL has a complete RDFa/Schema.org definition of it, but if i put:
typeof="SoftwareApplication"
on the author's page then, kind of expectedly, Google's Structured Markup validator throws errors about required values not being present for it, CreativeWork throws no errors but is less specific. I don't really want to repeat the entire SoftwareApplication metadata everywhere the project is referenced, I'd rather just say "go look at this URL".
What is the correct/best way to cross reference the SoftwareApplication pages from the author page? in the project the reverse reference is easy as there is an Author attribute, which can be of type Person, which is acceptable with just name and URL.
Once I know the correct RDFa way of referencing I'll apply the tags to content in the page rather than using meta tags.
To link items together, you need a suitable property. Like author (to state which Person is the creator of the SoftwareApplication), or like hasOfferCatalog (to state which SoftwareApplication is offered by the Person).
Inverse properties
In most cases, Schema.org defines its properties only for one direction. So there is only author, and no authorOf. If you need the property for the other direction, you can use RDFa’s rev attribute.
Linking instead of repeating
If you don’t want to repeat your data (i.e., only define it once and link/refer to this definition instead), you can provide a URL value. Schema.org allows this for all properties, even if URL is not listed as expected type. If you want to follow Semantic Web best practices, give your entities URLs (as identifiers) with RDFa’s resource attribute, and use these URLs as property values to refer to the entities.
For this, simply use one of the linking elements (e.g., elements with href or src attribute).
Example
Using the author case as example:
<!-- on the page about the software: /software/5 -->
<div typeof="schema:SoftwareApplication" resource="/software/5#this">
Author:
<a property="schema:author" typeof="schema:Person" href="/persons/alice#i">Alice</a>
</div>
<!-- on the page about the person: /persons/alice -->
<div typeof="schema:Person" resource="/persons/alice#i">
Authored by:
<a rev="schema:author" typeof="schema:SoftwareApplication" href="/software/5#this">Software 5</a>
</div>
Errors in Google’s SDTT
If the Structured Data Testing Tool gives errors about missing properties, note that it doesn’t mean that something is wrong with your markup. Schema.org never requires a property.
It just means that these properties are required for getting a certain Google search feature. So ignore these errors if you don’t want to get the feature (or if you can’t provide all required properties).
Thank you for the other response, I'll have a read over the linked resources, I have also found a solution to the specific case in my question.
Google Search Console has a page on Carousels which shows that you can use ListItem, which only "needs" URL, to populate the hasOfferCatalog property. E.g.
<span property="itemListElement" typeof="ListItem">
<meta property="position" content="1" />
<meta property="url" content="https://www.my-domain.tld/ProjectName/" />
</span>
I'm a product manager for a local directory. I'm writing some requirements for my developer to update business listing pages with Microdata from Schema.org. Currently we mark up all businesses to LocalBusiness.
I can't decide whether we should be using LocalBusiness from the Place property or Organization property? Current listings have geo in for geo-coordinates but there are other itemprops I could add.
Is it possible to merge both so I can use geo tag inside a LocalBusiness that is generally mapped around Organization? If so, do I need to define that anywhere in my markup?
There is only one LocalBusiness type. It has two parent types, Organization and Place. It inherits all properties from these parent types (and their parents, up to Thing).
You simply provide http://schema.org/LocalBusiness as itemtype, and you can use an Organization property like founder and a Place property like geo:
<article itemscope itemtype="http://schema.org/LocalBusiness">
<div itemprop="founder" itemscope itemtype="http://schema.org/Person">…</div>
<div itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">…</div>
</article>
I don't know which Schema.org type to use for a specialized team in my work.
I have something like that:
team name
team photo
team member 1 name
team member 1 photo
team member 1 qualification/skills
team member 2 name
team member 2 photo
team member 2 qualification/skills
etc...
I could use the type Organization, but I don't know what to use to specify the qualification/skills of the person.
Any idea?
I have had success with using Person schema: itemprop="jobTitle" and itemprop="knows".
Then you may add a link directly to your resume which highlights your skills or About page:
<span class="resume" itemprop="knows">
<a href="https://www.hillwebcreations.com/about-jeannie-hill/" title="About Jeanne" target="_blank" itemprop="url">
<img src="https://www.hillwebcreations.com/wp-content/uploads/2014/05/hill-web-creations-Jeannie-Hill.jpg" alt="example of how to add skills via schema" itemprop="url">
</a>
</span>
Recently each page with Person schema came up with a new error stating that it was missing homeLocation. Word from our Google Partners support says these errors in the Search Console will correect themselves and drop off soon. However, for the meantime, I was able to eliminate the error notices by adding the following code:
<div itemprop="homeLocation" itemscope itemtype="http://schema.org/PostalAddress">
<strong>Residence:</strong>
<span itemprop="addressLocality">Minneapolis</span>,
<span itemprop="addressCountry" itemscope itemtype="http://schema.org/Country">
<span itemprop="name">USA</span>
</span>
You can find more details as to how on GitHub. Or borrow ideas from my own site: Hill Web Marketing
Each person would be represented by Person.
You can use all properties that are defined in the first table on that page, i.e., properties from Person and Thing.
As you’ll see, there is no property for skills/qualifications.
Depending on your actual case, you might have use for the jobTitle property. And for a short paragraph of text (which may include information about skills/qualifications) about this person, you could use the description property.