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
-
How many images should I use in structured data for a product?
We have a basic printing website that offers business cards. Each type of business card has a few product images. Should we use structured data for all the images, or just the main image? What is your opinion about this? Thanks in advance.
Intermediate & Advanced SEO | | Choice0 -
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 -
What is the best practice for URLs for E-commerce products in multiple categories?
Hello all! I have always worked successfully with SEO on E-commerce sites, however we are currently revamping an older site for a client and so I thought I'd turn to the community to ask what the best practices that you guys are experiencing for url structures at the moment. Obviously we do not wish to create duplicate content and so the big question is, what would you guys do for the very best structure for URLs on an E-commerce site that has products in multiple categories? Let's imagine we are selling toy cars. I have a sports car for sale, so naturally it can go in the sports cars category and it could also go in to the convertibles category too. What is the best way you have found recently that works and increases rankings, but does not create duplicate content? Thanks in advance! 🙂 Kind Regards, JDM
Intermediate & Advanced SEO | | Hatfish0 -
Schema markup for video playlists?
We're adding schema markup for all of our videos, but some videos exist only in a playlist (all integrated into one URL, and loaded after a javascript call). Per Google: "Make sure that your video and schema.org markup are visible without executing any JavaScript or Flash." https://support.google.com/webmasters/answer/2413309?hl=en So we know the current implementation won't work for schema markup... What's the best practice for adding schema markup for video playlists? Should we host all of these videos on individual URLs (but then they appear twice) or is there some other workaround?
Intermediate & Advanced SEO | | nicole.healthline0 -
Google and Product Description Tabs
How does Google process a product page with description tabs? For example, lets say the product page has a tab for Overview, Specifications, What's In the Box and so on. Wouldn't that content be better served in one main product description tab with the tab names used as (htags) or highlighted paragraph separators? Or, does all that content get crawled as a single page regardless of the tabs?
Intermediate & Advanced SEO | | AWCthreads0 -
Posting same video on both Vimeo and Youtube
A client likes the control of Vimeo Pro for embedding videos on site, but for search purposes would like to create a YouTube channel with the same videos, perhaps with altered titles and descriptions. This is the same video content in two places - will we run into duplicate content issues? Thank you, Stephen
Intermediate & Advanced SEO | | PerfectPitchConcepts0 -
Shopify Product Variants vs Separate Product Pages
Let's say I have 10 different models of hats, and each hat has 5 colors. I have two routes I could take: a) Make 50 separate product pages Pros: -Better usability for customer because they can shop for just masks of a specific color. We can sort our collections to only show our red hats. -Help SEO with specific kw title pages (red boston bruins hat vs boston bruins hat). Cons: -Duplicate Content: Hat model in one color will have almost identical description as the same hat in a different color (from a usability and consistency standpoint, we'd want to leave descriptions the same for identical products, switching out only the color) b) Have 10 products listed, each with 5 color variants Pros: -More elegant and organized -NO duplicate Content Cons: -Losing out on color specific search terms -Customer might look at our 'red hats' collection, but shopify will only show the 'default' image of the hat, which could be another color. That's not ideal for usability/conversions. Not sure which route to take. I'm sure other vendors must have faced this issue before. What are your thoughts?
Intermediate & Advanced SEO | | birchlore0 -
Should I change my product titles from singular to plural to satisfy optimisation?
At present most of our products are listed in the singular form. http://www.towelsrus.co.uk/towels-bath-towels/aztex/turkish-cotton-bath-towel_ct473bd182pd2744.htm However we are optimising for the plural form after carrying out keyword research The question is should I update the product title to reflect this change? This would then change the URL of the page, H1 tag, H2 tag (both auto generated from the product title) My concern here is that these pages will then become "new pages" and will need to index and rank, albeit they don't rank well as they have never been optimised until now. I could put 301 re-directs in place on the old URL's or i could just let the return a 404. What do people think?
Intermediate & Advanced SEO | | Towelsrus0