We sell a Software as a Service with a monthly subscription, I’m trying to figure out if we can provide metadata through Schema.org’s specifications.
I have been considering products, but it doesn’t seem to support subscription costs.
For products, Google seems to have e-commerce physical object-type stuff in mind.
There is also Software applications, but that seems to be made for downloadable software rather than web-apps.
What should I use?
There are different possible perspectives:
It’s a SoftwareApplication
(or the more specific WebApplication
, maybe with browserRequirements
).
It’s a Service
with a ServiceChannel
+serviceUrl
.
It’s a Product
and/or an Offer
(both include services).
(It is possible to specify subscription costs in Schema.org.)
You might want to use only one or multiple types of these, depending on your understanding of the SaaS, and what metadata you want to provide.
I was struggling with this too. We develop SEO tools, web based applications and have 3 plans, each in annual and monthly version, and also a free plan. I totally recommend you to include also a free plan as it will display in SERP as a FREE product. If you don't the lowest price will display in SERP. However I have end up with the following solution:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebApplication",
"@id": "kwfinder",
"applicationCategory": "BusinessApplication",
"name": "KWFinder - find logtail keywords with low seo difficulty",
"operatingSystem": "all",
"browserRequirements": "Requires Javascript and HTML5 support",
"url": "https://app.kwfinder.com",
"screenshot": "https://kwfinder.com/images/kwfinder-big.png",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.53",
"reviewCount": "3"
},
"offers": {
"@type": "AggregateOffer",
"offeredBy": {
"@type": "Organization",
"name":"mangools"
},
"highPrice": "469.00",
"lowPrice": "0",
"offerCount": "6",
"priceCurrency": "USD",
"priceSpecification": [
{
"@type": "UnitPriceSpecification",
"price": "0.00",
"priceCurrency": "USD",
"name": "mangools FREE subscription"
},
{
"@type": "UnitPriceSpecification",
"price": "469.00",
"priceCurrency": "USD",
"name": "mangools Premium annual subscription",
"referenceQuantity": {
"@type": "QuantitativeValue",
"value": "1",
"unitCode": "ANN"
}
},
{
"@type": "UnitPriceSpecification",
"price": "49",
"priceCurrency": "USD",
"name": "mangools Premium monthly subscription",
"referenceQuantity": {
"@type": "QuantitativeValue",
"value": "1",
"unitCode": "MON"
}
}
]
},
"creator": {
"@type":"Organization",
"@id":"#organization",
"url":"https://mangools.com/",
"name":"mangools",
"logo":{
"@type":"ImageObject",
"url":"https://mangools.com/mangools-logo.png",
"width":"700px",
"height":"235px"
}
}
}
</script>
With this code you will get something like this:
Please note that if you markup product on a main homepage, it will not appear in SERP. Google accepts structured data only for leaf pages.
I also wrote a quick case study about this problem on our blog.