Guides · Feeds

OPML explained: take your feed subscriptions to any reader

Updated 12 October 2026 · 7 min read

If you follow sites through a feed reader, your list of subscriptions is worth more than any single article in it. It may have taken years to build. OPML is the reason you do not have to rebuild it by hand when you change readers: almost every reader can save your subscriptions to an OPML file, and almost every reader can load one.

This guide explains what is inside the file, how to get one out of your current reader, and what to check when an import does not go as expected.

What OPML is

OPML stands for Outline Processor Markup Language. It was designed as a general XML format for outlines: nested lists of items, each with a few attributes. One particular use, the subscription list, became the standard way for feed readers to exchange lists of feeds. The OPML 2.0 specification describes that use explicitly and states that the format is frozen, so a file written today follows the same rules as one written years ago.

An OPML file holds the addresses of your feeds, their names and, usually, the folders you put them in. It does not hold the articles themselves, which items you have read, or your starred items. Think of it as an address book for feeds, not an archive of what they published.

What the file looks like

OPML is plain text, so you can open it in any text editor. A small subscription list looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
  <head>
    <title>My subscriptions</title>
  </head>
  <body>
    <outline text="News">
      <outline type="rss" text="Example World News"
               xmlUrl="https://news.example.com/world/rss.xml"
               htmlUrl="https://news.example.com/world"/>
    </outline>
    <outline text="Cooking">
      <outline type="rss" text="A Small Kitchen Blog"
               xmlUrl="https://kitchen.example.org/feed"
               htmlUrl="https://kitchen.example.org/"/>
    </outline>
    <outline type="rss" text="Local council notices"
             xmlUrl="https://council.example.gov.uk/news.atom"/>
  </body>
</opml>

The parts that matter:

  • <head> holds information about the file, such as a title. Readers mostly ignore it.
  • <body> holds the list, as <outline> elements.
  • An outline with type="rss" and an xmlUrl is a feed. xmlUrl is the feed's own address, the one thing a reader truly needs. text is its display name, and htmlUrl, which is optional, points to the website.
  • An outline that only has text and contains other outlines is a folder.

Despite the name type="rss", the same entry is used for Atom feeds too: the type describes the role of the outline, not the format of the feed it points to.

How folders become categories

Most readers let you group feeds, and call the groups folders, tags, collections or categories. On export they are written as outer outlines with the feeds nested inside; on import the receiving reader turns each outer outline back into its own kind of group.

Two things are worth knowing. First, the specification allows lists to be nested more than one level deep, but notes that some programs may not understand or preserve that structure; many readers support only one level of folders, so sub-folders may be flattened or lost. Second, a reader that lets one feed sit in several groups may write that feed several times in the file, once under each folder. The receiving reader then has to decide what to do with the repeats.

TheyreMine turns each folder in the file into a category, and reuses an existing category if one already has the same name. A feed inside a sub-folder goes into a category named after its nearest folder, and a feed outside any folder is imported without a category.

Exporting from your current reader

The option is usually in the settings, under a name such as Import/Export, Backup, Subscriptions or OPML. Menu labels change between versions, so treat the following as pointers rather than exact paths:

  • Feedly: its help pages give a direct address for the export, feedly.com/i/opml, which works while you are signed in on the web. According to Feedly's documentation, the export covers RSS feeds but not Boards, Read Later items or its AI feeds.
  • Inoreader: look in Preferences for the import and export section, which offers an OPML download of your subscriptions.
  • NetNewsWire: on a Mac, choose File, then Export Subscriptions; on iPhone and iPad, open Settings from the Feeds screen and tap Export Subscriptions (NetNewsWire help).
  • Thunderbird: select your feed account in the folder pane, choose Manage subscriptions, and use the Export button in the Feed Subscriptions window (Mozilla support).

If you cannot find the option, search your reader's help for "OPML". A reader that offers no export at all is worth leaving while you still can copy your feeds out by hand.

Importing into TheyreMine

  1. Open the Feeds page and click Import OPML at the bottom of the left pane.
  2. Choose the file you exported. It can hold up to 500 feeds and be up to 1 MB.
  3. Your feeds appear in the left pane straight away, grouped into categories taken from the file's folders.

What to expect afterwards:

  • Feeds start empty. Imported feeds show a pending badge until their first update, which happens within about 15 minutes. Then their items fill in.
  • Old read marks do not come across. OPML carries no reading history, so recent items will appear as unread. The ✓ button above a feed's list marks all its items read in one click.
  • Re-importing is safe. Feeds you already follow are skipped, so loading the same file twice adds nothing.
  • The file is not stored. Only the feeds are kept; the uploaded file itself is discarded.

The full steps are in Importing & exporting (OPML).

Keep a backup

An OPML export takes seconds and is the only thing you need to rebuild your reading list anywhere. It is worth making one:

  • before you change readers or close an account;
  • after a big clean-up or a batch of new subscriptions;
  • every few months as a matter of routine, kept with your other backups.

In TheyreMine, Export OPML on the Feeds page downloads all your feeds, with their categories written as folders. Give the file a dated name, such as feeds-2026-10.opml, so you can tell copies apart. The file contains only feed addresses and names, but it does reveal what you read, so store it as privately as you would your bookmarks.

Tip: starred items are not part of an OPML file in any reader we know of. If you want to keep particular articles, save them separately, for example as bookmarks, before you move.

Troubleshooting

Some feeds never update

An old subscription list nearly always contains dead feeds: sites that have closed, moved their feed or stopped publishing. After the first updates have run, look for feeds that stay empty or report errors. In TheyreMine, a feed whose last three checks failed is marked failing (select it to see the error), and one with no new items for more than 30 days is marked stale; see Feed health badges. For a failing feed, visit the website: if it still exists, type its address into Find feeds to locate the current feed, subscribe to that and unsubscribe from the old one.

Duplicates

Duplicates usually come from the same feed appearing under several folders in the file, or from a site publishing the same feed at two addresses (for example with and without www, or as both RSS and Atom). Readers that match on the exact address can only catch the first case. If you see the same articles twice, compare the feed addresses in each feed's settings and unsubscribe from one.

The file is too large or is rejected

  • Too many feeds. TheyreMine reads up to 500 feeds from one file and reports the rest as not imported. If your list is longer, split it: open a copy in a text editor and divide the folders between two files, keeping the <opml>, <head> and <body> lines in both. Better still, take the chance to drop feeds you no longer read.
  • Not valid XML. A file edited by hand can break on a single unescaped character. An ampersand in a feed name or address must be written as &amp;. Opening the file in a web browser will usually point to the line with the error.
  • Wrong file. Some readers offer several exports (articles, starred items, settings). Make sure the one you chose ends in .opml or .xml and contains <outline lines with xmlUrl attributes.

Once the file is clean, OPML does its one job well: your list of sources stays yours, whichever reader you use to follow them. For an introduction to feeds themselves, see What RSS is.