Podcast Schema

No Comments
Podcast schema
TL;DR: If your podcast pages have no structured data, search engines and voice assistants see a wall of text instead of a show with episodes. Add PodcastSeries and PodcastEpisode schema so your feed, episodes, and audio are machine readable and eligible for richer results.
Check code
RI-029
Type
Structured data
Vocabulary
schema.org
Format
JSON-LD
Detect with
Rich Results Test

What this check is looking for

This flag fires when your podcast landing pages and episode pages ship without podcast structured data. Structured data is a block of machine readable markup, usually JSON-LD, that tells search engines exactly what a page is and how its parts relate. For a podcast, the relevant schema.org types are PodcastSeries for the show as a whole and PodcastEpisode for each individual episode, with an AudioObject describing the actual audio file.

Without it, a crawler lands on your episode page and sees paragraphs of text. It cannot reliably tell that this is episode 42 of a series, who hosts it, how long it runs, when it published, or where the audio lives. Add the markup and every one of those facts becomes explicit rather than guessed.

Why podcast schema matters for SEO

Three reasons, in order of how much they move the needle.

Eligibility for richer presentation. Structured data is how you become eligible for enhanced results. Google does not guarantee any rich treatment, but you cannot qualify for it without the markup. Clear PodcastSeries and PodcastEpisode data gives your pages the best shot at appearing as something more than a plain blue link.

Entity understanding. Schema connects your show to a named entity with a host, a publisher, a genre, and a run of episodes. That helps search engines build a confident picture of what your podcast is and which queries it should answer, which is exactly the understanding you want feeding rankings.

Voice and assistant surfaces. Assistants and podcast directories consume structured feeds. The cleaner and more explicit your data, the more places your show can be picked up correctly rather than mangled or skipped.

How the podcast schema nests PodcastSeries name, url, image, author, webFeed PodcastEpisode name, episodeNumber, datePublished AudioObject contentUrl, duration, encodingFormat Series wraps the whole show Each episode is partOfSeries The audio file is associatedMedia

How to detect whether it is missing

  1. Google Rich Results Test. Paste an episode URL and see what structured data Google can read. If it finds no podcast markup, you have your answer.
  2. Schema.org validator (validator.schema.org). A stricter check of whether your JSON-LD is well formed and uses the right types and properties.
  3. Screaming Frog or Sitebulb. Both extract and validate structured data across a whole site in one crawl, so you can confirm every episode page is covered rather than checking them one at a time.
  4. Search Console Enhancements reports. Where Google surfaces structured data it has parsed plus any errors it hit, useful for spotting markup that exists but is broken.

How to add it, step by step

  1. Mark up the show page as PodcastSeries. Include name, url, a square image, the author or host, and the webFeed pointing at your RSS feed. That feed link is important, because it ties your page to the canonical source directories already trust.
  2. Mark up each episode page as PodcastEpisode. Set name, episodeNumber, datePublished, description, and partOfSeries pointing back at the show. Do not fake numbers or dates. Pull them from your real publishing data.
  3. Describe the audio with AudioObject. Give contentUrl (the real audio file), duration in ISO 8601 like PT38M12S, and encodingFormat. This is the part that makes the audio itself machine readable.
  4. Use JSON-LD in a script tag. Google recommends JSON-LD over inline microdata because it is easier to maintain and less likely to break when your template changes. Drop it in the head or body.
  5. Keep the markup consistent with what users see. The schema must match the visible page. Marking up an episode that is not on the page, or a duration that is wrong, is a structured data violation and can get the markup ignored.
  6. Validate, then request indexing. Run the Rich Results Test again, fix any errors, then submit key URLs in Search Console so Google re-fetches them.

Series versus episode markup at a glance

PropertyPodcastSeriesPodcastEpisode
ScopeThe whole showOne episode
nameShow titleEpisode title
webFeedRSS feed URLInherited via series
episodeNumberNot usedRequired for ordering
associatedMediaOptionalAudioObject with contentUrl
Links toIts episodespartOfSeries back to show
DO
  • Use JSON-LD and keep it in your page template
  • Point webFeed at your real RSS feed URL
  • Give AudioObject a working contentUrl and ISO 8601 duration
  • Match every value to what a visitor actually sees
  • Validate with the Rich Results Test before shipping
DON'T
  • Invent episode numbers, dates, or durations
  • Mark up audio that is not present on the page
  • Rely on microdata scattered through messy HTML
  • Leave the series and episodes disconnected from each other
  • Ship the markup without validating it first

FAQ

Do I still need schema if I already have an RSS feed?
Yes. The RSS feed powers podcast apps and directories. On-page schema helps search engines understand your website pages, which is a separate surface. Link the two by putting your feed URL in the webFeed property so they reinforce each other.
Does adding podcast schema guarantee a rich result?
No. Structured data makes you eligible, not entitled. Google decides when and where to show enhanced results. Correct markup is a prerequisite, not a promise, so treat it as removing a blocker rather than buying a placement.
JSON-LD or microdata?
JSON-LD, in almost every case. It lives in one clean script block, is easy to generate from your CMS, and does not shatter when a designer restyles the page. Microdata woven through your HTML is fragile and harder to audit.
How do I format the episode duration?
Use ISO 8601 duration format. A 38 minute 12 second episode is PT38M12S. Get this wrong and validators will complain, so pull it straight from your audio file metadata rather than typing it by hand.
Make every episode page machine readable

Rolling correct PodcastSeries and PodcastEpisode markup across a full back catalog, and keeping it valid as your template evolves, is exactly the kind of thing a proper audit catches before it costs you visibility.

Get an advanced SEO audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog