"Podcast 2.0" sounds like a new platform. It is not. It is a set of optional additions to the ordinary RSS feed your podcast already has, designed so that any app, directory or search engine can offer richer features without locking you into one company. Transcripts that make your words searchable, chapters that let listeners jump to the part they want, guest credits that follow people across shows, a permanent ID that survives a host migration: these all come from Podcast 2.0 tags.
This guide explains the tags that matter most to independent podcasters, what each does for listeners and discovery, what the XML looks like, and how to add them. It is written by the team behind podsearch.org, a search engine that parses Podcast 2.0 data from millions of feeds in the open Podcast Index catalog.
What the Podcast Namespace is
The Podcast Namespace is an open specification maintained by the Podcast Index community. It defines tags that start with podcast:, for example <podcast:transcript>. Because they live in your RSS feed, any app can read them. Apps that do not understand a tag simply ignore it, so adding tags never breaks anything for listeners on older apps.
Most podcasters never write these tags by hand. Hosting platforms add them when you fill in the relevant fields: upload a transcript, enter chapter markers, add a guest. The point of understanding them is to know which features to ask your host for, and to check that they are actually in your feed.
The tags that help discovery the most
Transcripts: <podcast:transcript>
A transcript tag links an episode to a text file of what was said. The specification supports several formats, including plain text, HTML, WebVTT (text/vtt), SubRip (application/x-subrip) and JSON. A transcript can declare its language, and rel="captions" marks a timed file intended for captions.
<podcast:transcript url="https://example.com/ep42/transcript.vtt" type="text/vtt" />
Why it matters for discovery: search engines mostly match titles and show notes. A transcript makes everything you said searchable. If you discussed a guest's book, a city, a technique or a company without putting it in the notes, a transcript lets listeners find that episode anyway. podsearch.org indexes transcripts where feeds provide them, and includes them in deeper searches.
Why it matters for listeners: accessibility for deaf and hard-of-hearing listeners, the ability to skim and quote, and read-along in apps that support it.
Tips: timed formats (VTT or SRT) are more useful than plain text, because apps can sync them with playback. Correct speaker names and proper nouns; automatic transcripts often misspell exactly the words people search for.
Persons: <podcast:person>
A person tag names someone involved in the show or episode, with an optional role (host, guest, producer and many more from the namespace's taxonomy), an image and a link to a profile.
<podcast:person role="guest" href="https://example.com/janedoe" img="https://example.com/janedoe.jpg">Jane Doe</podcast:person>
At the show level (<channel>), list your regular hosts. At the episode level (<item>), list everyone in that episode, including guests. Episode-level people replace the show-level list for that episode, so include the hosts too.
Why it matters for discovery: guest names are among the most searched terms in podcasting. Person tags make "every show this person has been on" possible for apps and search engines, and they tie your episode to the guest's other appearances.
Chapters: <podcast:chapters>
A chapters tag links to a JSON file of chapter titles and start times, and optionally images and links for each chapter. Because the file is separate from your audio, you can fix chapters after publishing.
<podcast:chapters url="https://example.com/ep42/chapters.json" type="application/json+chapters" />
Why it matters: listeners jump to the part they care about, which increases completion and goodwill. Chapter titles are also a compact table of contents that some search features can use.
Soundbites: <podcast:soundbite>
A soundbite marks a highlight with a start time and duration in seconds, and an optional title. The specification recommends 15 to 120 seconds.
<podcast:soundbite startTime="1234.5" duration="42.25">Why most budgets fail in February</podcast:soundbite>
Why it matters: apps and sites can play your best moment as a preview, which is often what turns a browser into a subscriber. Pick a moment that stands on its own.
The tags that protect your show
Permanent ID: <podcast:guid>
A globally unique, permanent identifier for your podcast, generated once (as a UUIDv5 based on your feed URL at the time) and never changed. It follows your show across hosts and URL changes, so services can recognize it as the same show after a migration.
<podcast:guid>917393e3-1b1e-5cef-ace4-edaa54e1f810</podcast:guid>
Check that your host includes it, and if you move, make sure the new host keeps the same value.
Locked: <podcast:locked>
Tells other hosting platforms whether they may import your feed. yes means a platform that respects the tag should not import it without verifying ownership, typically via the owner email.
<podcast:locked owner="[email protected]">yes</podcast:locked>
This protects against someone copying your show to another platform. Set it to no temporarily when you deliberately migrate.
Podping: <podcast:podping>
Declares that your feed sends Podping notifications when it changes, which tells directories they can rely on notifications instead of frequent polling.
<podcast:podping usesPodping="true"/>
The tag is a declaration; the notifications themselves are sent by your host. See Podping explained.
Other tags worth knowing
The namespace includes many more tags. A selection, with what they are for:
| Tag | What it does |
|---|---|
<podcast:funding> | Links to a page where listeners can support the show |
<podcast:season>, <podcast:episode> | Season and episode numbering, with optional names |
<podcast:trailer> | Points apps to a trailer |
<podcast:location> | What place the show or episode is about |
<podcast:license> | The license your content is published under |
<podcast:alternateEnclosure> | Alternative versions of an episode, such as different bitrates or a video version |
<podcast:value> | Lets listeners send payments to the show and its contributors through supporting apps |
<podcast:medium> | Says what the feed is (for example a podcast, music, or video) |
<podcast:liveItem> | Announces a live stream |
<podcast:podroll> | Recommends other podcasts to your listeners |
<podcast:txt> | Free-form text, sometimes used for ownership verification |
<podcast:updateFrequency> | Tells apps how often you plan to publish |
<podcast:chat>, <podcast:socialInteract> | Point to places where listeners can discuss episodes |
The full, current list and exact syntax are in the namespace documentation.
How to add tags to your feed
Through your host. This is the right route for nearly everyone. Look in your host's episode editor for fields such as transcript upload, chapters, guests or people, and soundbites, and in show settings for funding, locked and podroll. Hosts differ widely in which tags they support; if a tag you want is missing, ask, because hosts add features podcasters request.
Through tools. Some editing and transcription tools export chapters files and transcripts in namespace formats that you can upload to your host.
By hand. If you self-host your feed, add the namespace declaration to your <rss> element and write the tags directly:
<rss version="2.0" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
Validate after any change.
Check that the tags are really there
Open your feed URL in a browser and search the page for podcast:. If you uploaded a transcript but cannot find a <podcast:transcript> tag in that episode's <item>, your host may store transcripts without publishing them to the feed. Ask.
What to do first
If you have limited time, this order gives the most benefit for the least effort:
<podcast:guid>and<podcast:locked>. Usually a settings toggle; protects your show.- Transcripts. The biggest discovery and accessibility win. Start with new episodes, then your most popular back-catalog episodes.
- Persons for hosts and guests. Make your guest episodes findable by name.
- Chapters for longer episodes.
- A soundbite per episode.
- Funding, podroll and the rest as your host supports them.
How Podcast 2.0 data shows up in search
On podsearch.org, which parses transcripts, chapters, soundbites and persons where feeds provide them:
- Transcript text is included in deeper searches, so episodes can match on spoken words.
- People data supports finding episodes by person.
- Shows with clear, complete data are simply easier to match and present well in results.
Other apps and directories use the same tags in their own ways: chapter navigation in players, transcript views, guest pages and more. Because the tags are open, the work you put in once benefits you everywhere that supports them.
Common mistakes with Podcast 2.0 tags
A few errors come up again and again when podcasters add namespace tags:
- Transcript files that do not load. The tag points to a URL that requires a login, has expired, or returns an error. Open the transcript URL in a private browser window to check.
- Wrong MIME types. A VTT file declared as
text/plain, or a chapters file without the JSON chapters type. Apps rely on the declared type to choose a parser. - Episode-level persons that drop the host. Remember that episode-level people replace the show-level list, so an episode tagging only the guest shows no host for that episode.
- Changing the podcast GUID. The whole point of
<podcast:guid>is that it never changes. Do not regenerate it after a migration. - Locked shows that cannot migrate. If you set
<podcast:locked>toyes, set it tono(or verify through the owner email) before you deliberately move to a new host. - Soundbites that start mid-sentence. Pick start times at the beginning of a thought and keep the clip short enough to hold attention.
- HTTP links. The namespace asks that linked resources use HTTPS.
A minimal Podcast 2.0 episode
Putting the most useful tags together, a well-equipped episode item might include these lines alongside the usual title, description, date, GUID and enclosure:
<podcast:transcript url="https://example.com/ep42/transcript.vtt" type="text/vtt" />
<podcast:chapters url="https://example.com/ep42/chapters.json" type="application/json+chapters" />
<podcast:soundbite startTime="1234.5" duration="42.25">Why most budgets fail in February</podcast:soundbite>
<podcast:person role="host" href="https://example.com/sam">Sam Rivera</podcast:person>
<podcast:person role="guest" href="https://example.com/janedoe">Jane Doe</podcast:person>
You will rarely type this yourself; your host generates it from the fields you fill in. But knowing what it should look like makes it easy to check that your host is publishing what you entered.
Why open tags beat platform-only features
Many platforms offer their own versions of these features: proprietary chapter tools, transcripts inside one app, guest credits in one database. They can be good, but they only work in that platform. A namespace tag in your feed works in every app that supports it, today and in the future, and moves with you if you change hosts. Filling in a field at your host once and having it appear across many apps is the best return on effort in podcast publishing.
That is also why the namespace is developed in the open: anyone can propose a tag, discuss it and implement it, and hosts and apps adopt the tags that prove useful. If a feature you want is missing, the project's public repository is where those conversations happen.
Measuring the benefit
You can see the effect of tags directly. After adding transcripts, search for a distinctive phrase you said in an episode but did not write in the notes, using a service that indexes transcripts, such as podsearch.org with a content search. After adding person tags, search for your guest's name. Seeing your episode appear for words that exist only in the audio is the clearest demonstration of why the work is worth doing.
Frequently asked questions
Do Podcast 2.0 tags work in Apple Podcasts and Spotify?
Support varies by platform and changes over time. Because the tags live in your RSS feed, apps that support them use them and apps that do not ignore them, so adding tags is safe.
Will adding tags break my feed?
No, provided the XML is valid. Unknown tags are ignored by apps that do not support them. Validate after changes.
Which transcript format should I use?
A timed format such as WebVTT or SRT is the most versatile, because apps can sync it to playback. You can publish several formats for the same episode.
What is the difference between show-level and episode-level persons?
Show-level persons list your regular cast. Episode-level persons list everyone in that episode and replace the show-level list for it, so include hosts as well as guests.
Is <podcast:locked> a legal protection?
No. It is a signal to hosting platforms that support it. It helps prevent unauthorized imports but is not a substitute for account security.
How do I know if my host supports Podcast 2.0?
Check your host's documentation, and look for podcast: tags in your feed. If a tag you want is missing, request it.
Summary
Podcast 2.0 tags are small additions to your RSS feed with big effects: transcripts make your words searchable and accessible, persons make guests findable, chapters and soundbites help listeners, and the GUID, locked and Podping tags protect your show and speed up indexing. Add them through your host, check that they appear in your feed, and start with identity and transcripts.