Skip to content
XSLT Checker
XSLT Checker / Chrome XSLT removal

Chrome is removing XSLT: what happens and when

On Nov 17, 2026 Chrome stops applying XSLT stylesheets. The data in your XML files stays the same; the styled page people used to see does not.

Last updated: · What changed: Added an accuracy table, coverage statement and Chrome 158 sourcing, and a new operator section on the About page.

Last verified against Chrome's published timeline:

Timeline

These dates and version numbers come from the official Chrome page on deprecating XSLT and the Chrome Platform Status entry, as read in October 2026. Some early reports said Chrome 155; Chrome's current documentation and Platform Status entry say Chrome 158, with the same November 17, 2026 date. Some earlier posts gave different version numbers for the same dates, so follow the dates.

Oct 28, 2025

Chrome 142. Console warnings begin. Official deprecation follows on Dec 2, 2025 (Chrome 143).

Mar 10, 2026

Chrome 146. The Enterprise Policy goes live, so organisations can test with XSLT turned off early.

Aug 25, 2026

Chrome 152. The Origin Trial starts. A site that enrols can keep using XSLT past the removal date.

Nov 17, 2026

Chrome 158. XSLT stops functioning on Stable for all users other than Origin Trial and Enterprise Policy participants.

Aug 17, 2027

Chrome 176. The Origin Trial and the Enterprise Policy stop working. XSLT is disabled for all users.

Other engines are moving the same way. Mozilla posted an “Intent to Unship: XSLT” in August 2026 (Mozilla's “Intent to Unship: XSLT” post, tracking bug), planning to disable it first in Nightly and in all channels in August 2027. WebKit has indicated support for removal; Chrome's page links to its position, and no Safari date is published.

What is removed

Two things go. The XSLTProcessor JavaScript class, and the XSLT processing instruction in XML files: <?xml-stylesheet type="text/xsl" href="..."?>. The same xml-stylesheet instruction keeps working with type="text/css".

Who is affected

  • Sites with styled sitemaps. Several WordPress SEO plugins, static site generators and sitemap tools add an XSL file so the sitemap looks like a table.
  • Sites with styled feeds. RSS and Atom feeds that link an XSL file for people who click the feed address.
  • Web apps that call XSLTProcessor to turn XML from an API into HTML in the browser.
  • Devices and internal tools that serve XML plus XSL from firmware or an old back end and cannot be updated easily.

Not affected: search engine crawlers and feed readers, XML styled with CSS, and any transform that runs on a server or in a build step.

What breaks

Open an XML file with an XSLT stylesheet line in Chrome after the date and you see the XML tree, with element names, instead of a table. A page that creates an XSLTProcessor in a script loses that class and the script fails at that point. Nothing in your XML data is lost, and nothing about how crawlers read it changes.

What to do

  1. Check your sitemap and feed addresses to see which ones use XSLT.
  2. For each one choose: remove the line, swap it for a CSS stylesheet, render HTML at build time, or add the polyfill.
  3. For script code that uses XSLTProcessor, run the transform on the server, or load the polyfill.

What the removal does and does not affect

Think of two audiences. People who open the XML address in a browser lose the styled view. Software that downloads the XML, such as search engine sitemap fetchers and feed readers, never ran the stylesheet and keeps working. The sitemap or feed remains valid XML either way, so the data you publish is unchanged. This is general information; confirm with the documentation of any tool you depend on.

Finding XSLT use with the Reporting API

Chrome emits a deprecation report with the id XSLT when a page uses it. To collect these reports in a page you control:

new ReportingObserver((reports) => {
  for (const r of reports) {
    if (r.body.id === 'XSLT') console.log('XSLT used:', r.body.message, r.body.sourceFile, r.body.lineNumber);
  }
}, { types: ['deprecation'], buffered: true }).observe();

For files served as raw XML, use the checker, since there is no page script to observe. Our method section explains exactly what it looks at and what it cannot see.

Migration options at a glance

  • Render HTML at build time:xsltproc -o sitemap.html sitemap.xsl sitemap.xml, then publish the HTML next to the XML.
  • Polyfill: self-host xslt-polyfill.min.js (BSD-3-Clause, npm xslt-polyfill) and add <script src="xslt-polyfill.min.js" xmlns="http://www.w3.org/1999/xhtml"></script> inside the XML root.
  • CSS: swap the line for <?xml-stylesheet type="text/css" href="/style.css"?>.
  • Feeds: advertise them with <link rel="alternate" type="application/rss+xml" href="/feed.xml"> in your HTML pages.
  • Script code: JSON with client-side rendering, or SaxonJS for XSLT 3.0.

Snippets and trade-offs for each are in the migration section on the home page.

Source

the official Chrome page on deprecating XSLT. This site is not run by the Chrome team and does not speak for it. Dates can change; check the official page before you plan around them.

Questions

When does Chrome stop supporting XSLT?

On Nov 17, 2026, with Chrome 158 on Stable, XSLT stops working for everyone except Origin Trial and Enterprise Policy participants. Those two exceptions end on Aug 17, 2027 (Chrome 176), when XSLT is disabled for all users. Sources: the official Chrome page on deprecating XSLT and the Chrome Platform Status entry. Some early reports said Chrome 155; Chrome's current documentation and Platform Status entry say Chrome 158, with the same November 17, 2026 date.

Does CSS on XML still work?

Yes. The official page says the xml-stylesheet instruction remains supported with CSS. Only the XSLT type is removed.

Will Google still read my sitemap after Chrome removes XSLT?

The change is in the Chrome browser, not in how sitemaps are fetched. A search engine's sitemap fetcher downloads the raw XML and reads the URLs and dates, so a sitemap that still carries a stylesheet line remains valid XML. Only the page a person sees when opening the sitemap in Chrome changes. Chrome's own documentation does not discuss search engine crawling; this is general information, not a statement from any search engine.

What about Firefox and Safari?

Mozilla posted an “Intent to Unship: XSLT” in August 2026 (see Mozilla's “Intent to Unship: XSLT” post and the tracking bug). It describes disabling XSLT first in Nightly and then in all channels in August 2027. WebKit, the engine behind Safari, has indicated support for removal, and Chrome's page links to its position. We do not state a date for Safari because none has been published.

Can I keep XSLT working after the date?

Until Aug 17, 2027 an Origin Trial (for sites) or an Enterprise Policy (for managed browsers) can keep it on. After that nothing does, so move to CSS, a build step, the polyfill or server rendering.