PodcastSeries
PodcastSeries is a CreativeWorkSeries subtype for podcasts as an ongoing series. It has 2 properties of its own: webFeed (the RSS feed URL) and actor (the hosts). All CreativeWorkSeries properties apply, including issn. The individual episodes are PodcastEpisode entities linked via hasPart on the series or partOfSeries on each episode.
The type hierarchy is Thing → CreativeWork → CreativeWorkSeries → PodcastSeries. Google reads PodcastSeries for the podcast knowledge panel and Google Podcasts integration. The webFeed property is the link Google uses to discover and index episodes.
Full example of schema.org/PodcastSeries json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "PodcastSeries",
"name": "Structured Data Deep Dive",
"description": "A weekly podcast on schema.org structured data, JSON-LD implementation, Google rich results, and search optimization. Hosted by Lena Vasquez and Tomás Herrera from Xoo Code Inc.",
"url": "https://xoocode.com/podcast",
"webFeed": "https://xoocode.com/podcast/feed.xml",
"image": "https://xoocode.com/podcast/cover-art.jpg",
"author": { "@id": "https://xoocode.com#organization" },
"actor": [
{ "@type": "Person", "name": "Lena Vasquez", "url": "https://xoocode.com/team/lena-vasquez" },
{ "@type": "Person", "name": "Tomás Herrera", "url": "https://xoocode.com/team/tomas-herrera" }
],
"inLanguage": "en",
"sameAs": [
"https://open.spotify.com/show/xoo-structured-data-deep-dive",
"https://podcasts.apple.com/podcast/structured-data-deep-dive/id9999999"
]
}
</script>webFeed
webFeed is the podcast's RSS feed URL. This is how podcast apps and Google Podcasts discover episodes. It takes a DataFeed object or a plain URL. Include it on every PodcastSeries. Without it, Google cannot index your episodes from the structured data alone.
PodcastSeries vs PodcastSeason vs PodcastEpisode
PodcastSeries is the show. PodcastSeason groups episodes into seasons (optional; many podcasts do not use seasons). PodcastEpisode is a single episode. The series links to episodes via hasPart or episode. Each episode links back via partOfSeries.
Minimal valid version
The smallest markup that still produces a valid PodcastSeries entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "PodcastSeries",
"name": "Structured Data Deep Dive",
"url": "https://xoocode.com/podcast",
"webFeed": "https://xoocode.com/podcast/feed.xml",
"description": "Weekly podcast on schema.org structured data and JSON-LD."
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsPodcast knowledge panelprimary
Common PodcastSeries mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Missing webFeed
WrongPodcastSeries with name and episodes but no webFeedRight"webFeed": "https://xoocode.com/podcast/feed.xml"webFeed is how podcast apps and Google Podcasts discover your episodes. Without it, Google has to find your RSS feed through other means. Include the direct URL to your podcast RSS feed.
- 02
Using CreativeWorkSeries for a podcast
Wrong"@type": "CreativeWorkSeries" for a podcastRight"@type": "PodcastSeries"PodcastSeries adds webFeed and actor properties and tells Google this is specifically a podcast. Google Podcasts reads PodcastSeries; it does not recognize generic CreativeWorkSeries as a podcast.
Schema properties in this example
About the example data
The "Structured Data Deep Dive" podcast by Xoo Code Inc., the series that the PodcastEpisode example belongs to.
Comments
Loading comments...