Why Chrome shows RSS feeds as plain text, and how to read them

Updated 14 October 2026 · 4 min read

Open an RSS or Atom feed in Chrome and you often get a wall of code instead of articles. Feeds are written for feed reader apps, not for browsers. Here is why Chrome shows them this way, and what readers and publishers can do.

Why Chrome shows code

An RSS or Atom feed is an XML file made for feed reader apps, which read its XML. It is not a web page: unless it links to a stylesheet, nothing in it tells a browser how to lay it out.

Chrome decides how to show a feed from the content type that the server sends with it. We sent the same small RSS feed to Chromium with three different types:

Type sent by the server What Chrome showed in our test
application/rss+xml The raw text of the feed, all on one line
application/atom+xml The raw text of the feed, all on one line
application/xml “This XML file does not appear to have any style information associated with it. The document tree is shown below.”, then the XML tree

So a feed that opens as a wall of code may be perfectly fine: in our test, only the type changed between the raw text and the tree.

The tree is easier to scan, since the elements are indented and each item shows its title. It is still raw XML, not a list of articles.

Styled feeds and XSLT

Some publishers make their feed readable in the browser. Chrome’s announcement on XSLT says that many RSS and Atom feeds use XSLT to make raw XML feeds human-readable when they are viewed directly in a browser. The feed links to an XSL stylesheet, and the browser turns the XML into a page.

That stops working in Chrome. According to the same announcement, XSLT stops functioning in Chrome 158, on 17 November 2026, for all users except sites in Chrome’s origin trial and browsers managed with an enterprise policy. From then on, a styled feed loses the layout that its stylesheet gave it.

Learn more about what breaks when XSLT leaves Chrome.

How to read a feed

The simplest way is the one feeds are made for: a feed reader app. Copy the address of the feed from Chrome’s address bar and paste it into the app where it asks for a feed or a subscription. The app reads the XML and shows the articles.

To read feeds in Chrome itself, an extension can help. XMLNest, for example, shows XML pages that use an XSL stylesheet (version 1.0) the way Chrome used to show them, so a styled feed keeps its layout. It also has a reader view for RSS and Atom feeds, with a built-in podcast player, and a tree view where you can fold any XML document and search its names and values. XMLNest has no site access at install: you turn it on everywhere in one click, or site by site from its toolbar button.

To open any other XML file, see how to open an XML file in Chrome.

For publishers

Link the feed from your HTML pages. The RSS Advisory Board describes autodiscovery, which lets browsers and other software find a site’s feed automatically. Add a link element to the head of your pages:

<link rel="alternate" type="application/rss+xml" title="Example blog" href="https://example.com/feed.xml">

According to the RSS Advisory Board, type must contain the feed’s type in lowercase, application/rss+xml for an RSS feed, and href must be the feed’s address, preferably a full one. The title is optional and helps when a page lists several feeds. Chrome’s announcement calls this element the standard HTML way to point to a feed, rather than a visible link that visitors might click by accident.

Keep a styled feed readable. Chrome’s announcement says that a feed can be augmented with one line that loads the xslt-polyfill script, and that this should not affect the ability of feed readers to parse the XML:

<script src="xslt-polyfill.min.js" xmlns="http://www.w3.org/1999/xhtml"></script>

It also says that the <?xml-stylesheet ... ?> processing instruction remains supported with a CSS stylesheet, using type="text/css".

Check the type your server sends. MDN’s list of common media types says that an Atom feed is application/atom+xml, but that application/xml serves as a valid default. In our test, only application/xml gave the XML tree in Chrome.

When the feed downloads instead

Sometimes Chrome does not show the feed at all and saves it as a file. One cause is the Content-Disposition response header. MDN explains that it says whether content should be displayed inline in the browser or downloaded as an attachment, and that with attachment, most browsers show a “Save as” dialog.

If it is your feed, check the headers that your server or publishing tool sends, and remove Content-Disposition: attachment if you want the feed to open in the browser. If it is someone else’s feed, open the downloaded file in a text editor, or paste the feed address into a feed reader app: the download does not change what the app receives.

Questions

Is my feed broken if Chrome shows code?

No. Feed reader apps read the XML of the feed. What Chrome displays does not change what they receive.

Why does the feed download instead of opening?

The server can send the feed with a header, Content-Disposition: attachment, that asks the browser to download the file instead of showing it. The feed still works in feed reader apps.

Sources

  1. Chrome for Developers: Removing XSLT for a more secure browser (checked on 14 October 2026)
  2. RSS Advisory Board: RSS Autodiscovery (checked on 14 October 2026)
  3. MDN: Common media types (checked on 14 October 2026)
  4. MDN: Content-Disposition header (checked on 14 October 2026)
  5. Tested by XMLNest : Tested by XMLNest in Chromium 156.0.8078.4 on 14 October 2026: the same RSS feed showed as raw text, all on one line, when the server sent it as application/rss+xml or application/atom+xml, and as “This XML file does not appear to have any style information associated with it. The document tree is shown below.” followed by the XML tree when it sent it as application/xml (checked on 14 October 2026)