Short answer: OPML (Outline Processor Markup Language) is a small XML file that lists feed subscriptions, usually grouped into folders. Almost every RSS reader can export your subscriptions as OPML and import an OPML file from another reader, which makes switching apps, backing up your sources and sharing reading lists with colleagues quick and painless. Export one regularly, keep it somewhere safe, and check the import results in the new app.
If you have spent years curating the sources you follow, your subscription list is valuable. It represents hours of finding good blogs, trade publications, newsletters, podcasts and news sources. OPML is what keeps that work portable. It is one of the quiet reasons RSS users are never locked into a single company: when a reader shuts down, changes its pricing or simply stops suiting you, an OPML file moves your whole setup in minutes. This guide explains what OPML is, how to use it, and how to avoid the small problems that sometimes appear during imports.
What OPML is and where it came from
OPML was created in the early 2000s by Dave Winer, who was also central to the development of RSS. It was originally designed as a general format for outlines: nested lists of items, the kind of structure you see in outliner software. The format turned out to be perfect for lists of feeds, and that became its main use. Today, when people say “OPML file”, they almost always mean a subscription list exported from a feed reader or podcast app.
The format is simple. An OPML file has a head with a title and optional dates, and a body containing outline elements. Each feed is an outline element with attributes, and folders are outline elements that contain other outlines.
What an OPML file contains
Each subscription in an OPML file is described by a handful of attributes:
| Attribute | Meaning | Required |
|---|---|---|
| type | Usually “rss”, used for all feed formats | Yes, for feeds |
| text | The name shown in the reader | Yes |
| title | Often the same as text | Optional |
| xmlUrl | The feed’s address | Yes, for feeds |
| htmlUrl | The website’s address | Optional |
| description, language | Extra information about the feed | Optional |
A folder is an outline element with only a text attribute and child outlines inside it. That is all. You can open an OPML file in any text editor to read or edit it, which is reassuring: your data is never trapped in a proprietary format.
What OPML does not contain is equally important. It stores only the list of sources. Read and unread status, starred items, saved articles, tags on individual items, filters and rules usually stay in the old app. If those matter to you, export them separately where the app allows it, for example starred items as a separate file or saved articles to a read-later service.
How to export your subscriptions
Every serious reader has an export option, although it is sometimes hidden in settings. Look for words such as:
- “Export OPML”, “Export subscriptions” or “Export feeds”.
- “Backup” or “Download data” in account settings.
- In podcast apps, “Export podcasts” or “OPML export”, often in advanced settings.
Save the file with a date in its name, such as subscriptions-2026-08-17.opml. If the app offers to include folders or categories, say yes. Open the file once in a text editor to make sure it actually contains your feeds; occasionally an export produces an empty file if the session has expired.
How to import into a new reader
- Find the import option, usually next to export, sometimes under “Add feed” or “Organize”.
- Upload the OPML file. Most readers show a progress indicator; large lists can take a few minutes.
- Check the result. Compare the number of feeds and folders with the original. Look for feeds marked as errors.
- Review the first fetch. Many readers mark imported items as unread. Use “mark all as read” or “mark older than a day as read” to start fresh.
- Reapply filters and rules, which do not travel in OPML.
If you are moving from a service that limits the number of feeds on its free plan, the import may stop at that limit. Check the plan before importing hundreds of feeds, and consider trimming the list first.
Common import problems and fixes
- Some feeds fail after import. The feed address may have changed, the site may have closed, or the old reader was using its own cached copy. Open the failing address in a browser; if it is dead, look for a new feed on the website or remove it.
- Folders are flattened. Some readers support only one level of folders. Nested folders are merged into their parents.
- Duplicate feeds. The same feed may appear with HTTP and HTTPS addresses or with and without www. Remove the duplicates.
- Private or authenticated feeds do not work. Feeds that need a login or a personal key may not import correctly. Re-add them manually.
- The file is rejected. Very rarely an export is not valid XML, often because of an unescaped ampersand in a feed name. Open the file in a text editor and replace
&in names with&.
Using OPML to share reading lists
OPML is not just for moving your own subscriptions. It is a convenient way to share a set of sources:
- Onboarding in teams. Give new colleagues a file with the industry sources everyone follows.
- Agencies and clients. Share a curated list of sources for a client’s market.
- Courses and communities. Publish an OPML file of recommended blogs or podcasts on a resources page.
- Podcast recommendations. Many podcast apps can import OPML, so a list of shows can be shared in one file.
When you share a list, give it a clear title in the head, name each folder meaningfully, and include the website address for each feed so people can check the source before subscribing.
Keeping your OPML backup healthy
An OPML file from three years ago is better than nothing, but a recent one is far more useful. A simple routine:
- Export every few months, or whenever you have added many new sources.
- Store the file somewhere outside the reader: cloud storage, a password manager’s secure notes or a folder you back up.
- Once a year, import the file into a second reader as a test, then delete that test account.
- Prune dead feeds when you export, so the next migration is cleaner.
OPML beyond feed readers
Because OPML is a simple, open list of feeds, other kinds of tools use it too. Knowing this can save you a lot of copying and pasting:
- Automation and monitoring tools sometimes accept an OPML file to add many sources at once, instead of one feed at a time.
- Newsletter and curation tools may import OPML to build a source list for digests.
- Blogrolls. Some bloggers publish their OPML file as a public “what I read” list, which others can import in one step.
- Scripts and research projects can read an OPML file with a few lines of code to process a whole set of sources.
- Documentation. An OPML export is a tidy record of which sources a team monitored at a given time, useful for audits or handovers.
If you maintain sources for several clients or projects, one OPML file per client or project keeps things organised. It is much easier to hand over “the client’s sources” as a single file than as a list of links in an email, and the recipient can load them into whatever tool they prefer.
When a source in your list has no feed
An OPML file can only list sources that publish a feed. Many useful pages, such as company news pages, regulator announcements or product pages, have none, so they never make it into your reader. Our tool, Feeds, creates an RSS feed from a page that lists articles or items, uses the existing feed if a site already has one, and can merge several sources into one feed filtered by your keywords. Each feed it produces is an ordinary feed URL that you can add to any reader and include in your OPML exports. See how it works on the home page.
Related reading
- How to Choose an RSS Reader: Features That Actually Matter
- What Is an RSS Feed? A Plain-English Guide for Site Owners
- How to Create an RSS Feed for a Website Without RSS
The bottom line
OPML is the portable, human-readable list of your feed subscriptions, and it is what keeps RSS readers from locking you in. Export it regularly, check what an import actually brought over, and remember that read status, stars and filters usually stay behind. Used well, OPML makes switching readers, sharing sources with a team and recovering from a shutdown a matter of minutes.
BUJ
What is an OPML file?
It is an XML file that lists feed subscriptions, usually with folders. Feed readers and podcast apps use it to export and import subscriptions, so you can move them between apps or share them with others.
Does OPML include my read and unread items?
No. OPML stores only the list of feeds and folders. Read status, starred items, saved articles, filters and rules usually stay in the old reader unless it offers a separate export.
Can I edit an OPML file by hand?
Yes. It is plain XML, so any text editor works. Keep the structure intact, escape ampersands in names, and validate the file by importing it into a reader afterwards.
Why did some feeds fail after importing OPML?
The feed addresses may have changed, the sites may have closed, or the feeds may need a login. Open each failing address in a browser and look for a current feed on the website, or remove it.
Can podcast apps import OPML?
Many can. Look for an import option in the app’s settings. It is a convenient way to move your podcast subscriptions to a new app without searching for each show again.


