Free tool · No signup

    Podcast Schema Generator

    Turn a podcast episode's details into valid PodcastEpisode JSON-LD that helps search and AI engines surface it correctly.

    PodcastEpisode JSON-LD

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "PodcastEpisode",
      "name": "Log Files Beat Guesswork",
      "episodeNumber": 48,
      "description": "Why server logs settle crawl arguments faster than any crawler simulation, and how to sample them without a data warehouse.",
      "url": "https://example.com/podcast/48-log-files-beat-guesswork",
      "image": "https://example.com/img/crawl-budget-cover.jpg",
      "datePublished": "2026-05-12",
      "duration": "PT38M",
      "timeRequired": "PT38M",
      "partOfSeries": {
        "@type": "PodcastSeries",
        "name": "The Crawl Budget Show",
        "url": "https://example.com/podcast"
      },
      "partOfSeason": {
        "@type": "PodcastSeason",
        "seasonNumber": 3
      },
      "associatedMedia": {
        "@type": "MediaObject",
        "contentUrl": "https://cdn.example.com/audio/crawl-budget-048.mp3"
      }
    }
    </script>

    Paste this block into the <head> or anywhere in the <body> of the page it describes, then confirm it parses with the JSON-LD schema validator.

    In short

    A podcast schema generator produces JSON-LD for a PodcastEpisode nested inside a PodcastSeries, describing the episode name, associatedMedia audio file with contentUrl and duration, and its position via episodeNumber. Google doesn't currently show a dedicated web-search rich result for podcast markup, but the properties are the same vocabulary podcast directories and AI answer engines parse to identify episode audio, run time and series context, which improves how reliably an episode is understood outside the audio player itself. Fill in the episode details below to generate the markup.

    Worked example

    What the output looks like

    Input
    Podcast: The Growth Loop, Season 3 Episode 14, 'Pricing Pages That Convert', 38 minutes, MP3 hosted at cdn.example.com
    Output
    { "@context": "https://schema.org", "@type": "PodcastEpisode", "name": "Pricing Pages That Convert", "url": "https://example.com/podcast/pricing-pages-that-convert", "episodeNumber": 14, "partOfSeason": { "@type": "PodcastSeason", "seasonNumber": 3 }, "partOfSeries": { "@type": "PodcastSeries", "name": "The Growth Loop", "url": "https://example.com/podcast", "webFeed": "https://example.com/podcast/feed.xml" }, "datePublished": "2025-02-04", "description": "A breakdown of pricing page structure and copy that moved trial-to-paid conversion for three SaaS companies.", "associatedMedia": { "@type": "MediaObject", "contentUrl": "https://cdn.example.com/episodes/ep14.mp3", "encodingFormat": "audio/mpeg", "duration": "PT38M" } }
    How to read it
    partOfSeries and partOfSeason nest the episode in its show hierarchy so a crawler can tell this is episode 14 of season 3, not a standalone clip. associatedMedia.contentUrl must point directly at the audio file, not the show notes page — pointing it at an HTML page instead of the MP3 is a common error that makes the media unreadable to parsers.

    How it works

    1

    Enter the series name and episode details

    Provide the PodcastSeries name and webFeed, then the episode's name, episodeNumber and partOfSeason. This nests the episode correctly inside its show for machines parsing the page.

    2

    Add the audio file as associatedMedia

    Enter the direct contentUrl to the MP3 or audio file, its duration in ISO 8601 format, and encodingFormat. This is the property search and AI crawlers use to locate the actual audio, separate from the webpage.

    3

    Copy the JSON-LD onto the episode's show notes page

    Paste the generated script tag into the head of the individual episode page, not the podcast homepage, so each episode's audio and description are attributed to its own URL.

    What this tool does

    • Generates nested PodcastSeries and PodcastEpisode objects
    • Includes associatedMedia with contentUrl and duration for the audio file
    • Orders episodes with episodeNumber and partOfSeason
    • Outputs schema.org-valid JSON-LD for your show notes or episode page

    Questions

    Frequently asked

    More free SEO tools

    Track AI Overview and LLM visibility across every keyword

    LemRank tracks rankings, backlinks, and AI-search visibility in one dashboard. 14-day free Pro trial. No credit card.