Moz Q&A is closed.
After more than 13 years, and tens of thousands of questions, Moz Q&A closed on 12th December 2024. Whilst we’re not completely removing the content - many posts will still be possible to view - we have locked both new posts and new replies. More details here.
Schema types for webinars, infographics, datasheets, product videos and eBooks
-
Hi,
I’m looking to add Schema markup to my company pages’s webinar page (recording past webinars) and data sheets, infographics, product videos, eBooks/white papers. For eBooks, I am primarily referring to a landing page with a gate to download a PDF document.
I’m trying to determine the best markup type:
For Webinars, I’ve seen suggestions to use “Event” type but that seems appropriate for future events, not something like a recorded webinar, which is not time-sensitive, unlike a live event. However, I see a StackOverflow forum to use http://schema.org/recordedIn for recorded webinars.
For eBooks and White Papers, I see a few potential schema types:
https://schema.org/DigitalDocument
https://schema.org/CreativeWork
http://schema.org/EBook (or https://schema.org/Book and then book format type of Ebook)
-
I will create the schema for my movies website. I will create the Movie rating schema, Article schema and some more schemas that is need to my website.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Movie",
"actor": [
{
"@type": "Person",
"name": "Johnny Depp"
},
{
"@type": "Person",
"name": "Penelope Cruz"
},
{
"@type": "Person",
"name": "Ian McShane"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"bestRating": "10",
"ratingCount": "200",
"ratingValue": "8",
"reviewCount": "50"
},
"author": [
{
"@type": "Person",
"name": "Ted Elliott"
},
{
"@type": "Person",
"name": "Terry Rossio"
}
],
"description": "Jack Sparrow and Barbossa embark on a quest to find the elusive fountain of youth, only to discover that Blackbeard and his daughter are after it too.",
"director": {
"@type": "Person",
"name": "Rob Marshall"
},
"name": "Pirates of the Carribean: On Stranger Tides (2011)"
}
</script>
This schema is help me to index my website fastly. -
@WhiteHat1 Hey there! For a webinar, the most appropriate schema would be a combination of Event and OnDemandEvent due to its online nature. However, as of my last update, OnDemandEvent was more suitable for an event like a movie or TV show that is available for streaming whenever you want to watch it, rather than a live webinar that takes place at a specific time.
For most live webinars, you should use the Event type with an eventAttendanceMode property set to OnlineEventAttendanceMode. The VirtualLocation type would also be used instead of a physical address.
Here's an example of what that schema might look like:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Interactive Webinar on Data Science",
"description": "Join our expert panel as they delve into the latest trends in Data Science. This webinar will cover a range of topics from predictive analytics to deep learning.",
"startDate": "2023-12-01T18:00:00+00:00",
"endDate": "2023-12-01T19:30:00+00:00",
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "VirtualLocation",
"url": "https://www.webinarhost.com/event123"
},
"image": "https://www.webinarhost.com/images/event123_banner.jpg",
"organizer": {
"@type": "Organization",
"name": "Data Science Community Forum",
"url": "https://www.datascienceforum.org"
},
"performer": {
"@type": "Person",
"name": "Dr. Jane Doe",
"url": "https://www.datascienceforum.org/speakers#JaneDoe"
},
"offers": {
"@type": "Offer",
"url": "https://www.webinarhost.com/register/event123",
"price": "0",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2023-11-01T09:00:00+00:00"
},
"audience": {
"@type": "EducationalAudience",
"audienceType": "Professional"
},
"recordedIn": {
"@type": "CreativeWork",
"name": "Data Science Webinar Series"
}
}
</script>Some points to consider:
eventAttendanceMode: Specifies that the event is an online event.
location: Uses VirtualLocation with a url property to indicate where the webinar can be accessed.
offers: Contains details about the registration or ticketing, which in this case indicates a free event.
recordedIn: If the webinar is part of a series, you might include this to reference the series.
Make sure to validate your structured data using Google's Rich Results Test or similar tools to check for any errors or warnings that might affect how search engines interpret and display your content.I really hope that this helps!
Got a burning SEO question?
Subscribe to Moz Pro to gain full access to Q&A, answer questions, and ask your own.
Browse Questions
Explore more categories
-
Moz Tools
Chat with the community about the Moz tools.
-
SEO Tactics
Discuss the SEO process with fellow marketers
-
Community
Discuss industry events, jobs, and news!
-
Digital Marketing
Chat about tactics outside of SEO
-
Research & Trends
Dive into research and trends in the search industry.
-
Support
Connect on product support and feature requests.
Related Questions
-
Can I add FAQS schema on my homepage?
Hello, can we have the FAQ code on the homepage (staff time)? we have written some questions and answers in the drop-down list on the homepage, and also add the schema code script to one tag of the page, but it does not work!
Intermediate & Advanced SEO | | fbowable0 -
Are "Powered By..." type footer backlinks good or bad for SEO?
Hi guys, We're running a software company which is also selling WP themes amongst other things. We've heard recently that footer backlinks like "Powered by BigBangThemes" might do more harm than good. Some clients usually forget to change them - so we want to make sure we stop including them in case this is true. Thanks!
Intermediate & Advanced SEO | | andy.bigbangthemes0 -
How to add Canonical Tags on Opencart Products
Does anyone know how to add canonical tags to product pages in Opencart? Is this possible to do in htaccess? If so, how specifically should it be written in? Please do not post any links to other pages which reference generic canonical information as I've read them all and none help. I'm looking for an Opencart specific answer, or a way to do it in htaccess.
Intermediate & Advanced SEO | | moon-boots0 -
My client wants to apply schematic markup to their iframe youtube video. Is this possible?
I have a client that wants to apply video object schema to their iframe youtube video. Here is the source code: <iframe src="http://www.youtube.com/embed/clientvideo" width="272" height="202" frameborder="0" allowfullscreen=""></iframe> Is it possible to apply schema markup to this kind of iframe source code? Our development team was having a hard time with it. Thanks!
Intermediate & Advanced SEO | | RosemaryB0 -
Ecommerce Site - Duplicate product descriptions & SKU pages
Hi I have a couple of questions regarding the best way to optimise SKU pages on a large ecommerce site. At the moment we have 2 landing pages per product - one is the primary landing page with no SKU, the other includes the SKU in the URL so our sales people & customers can find it when using the search facility on the site. The SKU landing page has a canonical pointing to the primary page as they're duplicates. Is this the best way? Or is it better to have the one page with the SKU in the URL? Also, we have loads of products with the very similar product descriptions, I am working on trying to include a unique paragraph or few sentences on these to improve the content - how dangerous is the duplicate content within your own site? I know its best to have totally unique content, but it won't be possible on a site with thousands of products and a small team. At the moment I am trying to prioritise the products to update. Thank you 🙂
Intermediate & Advanced SEO | | BeckyKey0 -
Lazy Loading of products on an E-Commerce Website - Options Needed
Hi Moz Fans. We are in the process of re-designing our product pages and we need to improve the page load speed. Our developers have suggested that we load the associated products on the page using Lazy Loading, While I understand this will certainly have a positive impact on the page load speed I am concerned on the SEO impact. We can have upwards of 50 associated products on a page so need a solution. So far I have found the following solution online which uses Lazy Loading and Escaped Fragments - The concern here is from serving an alternate version to search engines. The solution was developed by Google not only for lazy loading, but for indexing AJAX contents in general.
Intermediate & Advanced SEO | | JBGlobalSEO
Here's the official page: Making AJAX Applications Crawlable. The documentation is simple and clear, but in a few words the solution is to use slightly modified URL fragments.
A fragment is the last part of the URL, prefixed by #. Fragments are not propagated to the server, they are used only on the client side to tell the browser to show something, usually to move to a in-page bookmark.
If instead of using # as the prefix, you use #!, this instructs Google to ask the server for a special version of your page using an ugly URL. When the server receives this ugly request, it's your responsibility to send back a static version of the page that renders an HTML snapshot (the not indexed image in our case). It seems complicated but it is not, let's use our gallery as an example. Every gallery thumbnail has to have an hyperlink like: http://www.idea-r.it/...#!blogimage=<image-number></image-number> When the crawler will find this markup will change it to
http://www.idea-r.it/...?_escaped_fragment_=blogimage=<image-number></image-number> Let's take a look at what you have to answer on the server side to provide a valid HTML snapshot.
My implementation uses ASP.NET, but any server technology will be good. var fragment = Request.QueryString[``"_escaped_fragment_"``];``if (!String.IsNullOrEmpty(fragment))``{``var escapedParams = fragment.Split(``new``[] { ``'=' });``if (escapedParams.Length == 2)``{``var imageToDisplay = escapedParams[1];``// Render the page with the gallery showing ``// the requested image (statically!)``...``}``} What's rendered is an HTML snapshot, that is a static version of the gallery already positioned on the requested image (server side).
To make it perfect we have to give the user a chance to bookmark the current gallery image.
90% comes for free, we have only to parse the fragment on the client side and show the requested image if (window.location.hash)``{``// NOTE: remove initial #``var fragmentParams = window.location.hash.substring(1).split(``'='``);``var imageToDisplay = fragmentParams[1]``// Render the page with the gallery showing the requested image (dynamically!)``...``} The other option would be to look at a recommendation engine to show a small selection of related products instead. This would cut the total number of related products down. The concern with this one is we are removing a massive chunk of content from he existing pages, Some is not the most relevant but its content. Any advice and discussion welcome 🙂0 -
Ecommerce Duplicate Product Descriptions across 3 websites
Hi, We are an e commerce company that has our own domain but also sell the same products on eBay and Amazon. What is the feeling on the same exact descriptions being used on different platforms? Do they count as duplicate content? Will our domain be punished/penalised as our domain does not have as much authority as EBay or Amazon? We have over 5,000 products with our own hand written product descriptions. We want our website to be the main place/ have priority over the above market places. What's the best suggestion/solution? thanks,
Intermediate & Advanced SEO | | Roy19730 -
Schema.org and Testimonials
Does anyone know which fields and code are necessary to embed a testimonial into a page using schema.org?
Intermediate & Advanced SEO | | rarbel0