_TL;DR if you have to choose, you should prioritize users with no JavaScript over users with old JavaScript._ If you’re a web developer working today, it’s probably long passed time for you to **stop transpiling your modern JavaScript into ES5 for Internet Explorer**. Any time or effort spent getting your JavaScript working in IE11 is wasted time that could be better spent **making a better experience for users without JavaScript**. Moving your resources from Internet Explorer to users without JavaScript will let you improve the SEO and accessibility of your site while providing a better experience for everyone. First, some notes about _who this advice is for_: I am assuming you’re working for a small team with no Quality Assurance testing department making a content focused site. If you have a large team that actually QA tests IE11, this advice may not apply to your situation. If you’re just doing personal projects for fun, you should have already dropped ES5 years ago. If you’re making more of an app than a content site, you probably should have cut off IE11 years ago, but the calculations are more complex and site specific. - - - - ## Why drop support for IE11 JavaScript? To begin with, Internet Explorer represents **less than 1%** of my work traffic according to Google Analytics. People will sometime spin this away by arguing that 1% of a large number is also a large number. If you have 100 million hits, 1% is 1 million hits! But the flipside is that 99 million hits are _not_ Internet Explorer and are not helped by optimizations aimed at Internet Explorer. What’s more this number has been **falling steadily**. Even just in the year and a half that my work site has been around it has dropped. It used to be closer to 2%. On top of that, outside of corporate/enterprise settings, most of these computers browsing your site with Internet Explorer will **also have Chrome installed**, and approximately 100% of the users will **also own a smart phone** they can use to browse your site if their computer cannot display it correctly. The computers in question will be old and have **terrible performance** assuming you do get the JavaScript to run in the first place. Let’s contrast this with other users we could optimize for. The number of **visually impaired** readers is steady and will not go down absent some breakthrough in medical technology. Visually impaired readers can’t just use another device if the site doesn’t work in the device they have in front of them. In fact, even users who have physically normal vision are impaired when driving or walking, and it seems to me inevitable that as **voice assistants** become ubiquitous and easy to use, sighted users having websites read aloud to them will eventually become commonplace. Plus, there are [legal imperatives](https://arstechnica.com/tech-policy/2019/10/accessibility-the-future-and-why-dominos-matters/) to make reasonable accommodations for visually impaired readers. Users **without JavaScript** are another important consideration. As Jake Archibald said, [“All your users are non-JS while they’re downloading your JS.”](https://www.twitter.com/jaffathecake/status/207096228339658752) And remember that sometimes, your user's connection will drop out, and [the JavaScript will never load](https://kryogenix.org/code/browser/everyonehasjs.html). But beyond that, browsers like Opera Mini and extensions like NoScript or overly aggressive ad blockers are already about as common as users of Internet Explorer, and they’re not going to go away. It’s hard to estimate the number of people with JavaScript broken or disabled, but [it appears to be stable from year to year](https://deliberatedigital.com/blockmetry/javascript-disabled), because the underlying causes aren’t subject to change, unlike IE11 usage. Year over year, old computers will be replaced, and IE11 will fade. Disliking ads and having bad connections on the other hand are here to stay. Then there are the most important users of your site without JavaScript: **web spiders and search engines**. While Google does in theory use headless browsers to scrape sites while executing JavaScript, in practice, you’ll still get better SEO if you optimize your content to work without it, and there are other non-Google spiders that you may want crawling your site too, like the [microbrowsers](https://cloudinary.com/blog/a_primer_on_microbrowsers_tips_and_tricks_for_managing_the_seo_feedback_loop) which add link previews to chat and social media. If you’re running a small site without a QA team, it’s probably worth going to [Browserling](https://www.browserling.com) right now and finding out if you’re even working in Internet Explorer to begin with. Browserling will let you run a virtual PC with Internet Explorer from your own browser for a limited time for free, so it’s probably easiest way to do a quick low effort [smoke test][] of your Internet Explorer support without having to install anything. Just open up a tab, take a look at your site, and see if the results surprise you. [smoke test]: https://en.wikipedia.org/wiki/Smoke_testing_(software) I’ve seen developers (including most especially myself) burned by just _assuming_ that [Babel](https://babeljs.io) and [Autoprefixer](https://github.com/postcss/autoprefixer) have solved all their problems with IE11. You may already be dropping support for IE11, you just don’t know it yet. I’ve had sites I work on break for months at a time in Internet Explorer with no complaints from readers. One site I redesigned got just a single reader inquiry about a widget that broke in IE11 after a redesign. When I told the reader to try loading the page in Chrome, he seemed satisfied. More recently, IE11 has had some terrible rendering bugs on my site for days or months at a time that have triggered *zero* reader complaints. If I don't QA it myself, no one else will do it for me. If you think your code will work but haven’t actually QA tested it, it can lead to the worst of both worlds: code bloated with extras for IE11 that still doesn’t even work anyway. It’s not enough to transpile down to ES5, you also need to polyfill every missing DOM API you use, and that can be a very complicated and bloated proposition. Essentially, there are three target web platforms you might want to support: 1. Modern browsers 2. Browsers without JavaScript 3. Internet Explorer 11 (if you're supporting <11, 😱) If you try to support IE11 but aren’t actually QA testing it, you will probably end up with only modern browsers working. It is better to aim for both modern browser support and no-JS browser support and actually succeed than to try for IE11 support and silently fail. - - - - ## What should you do instead of optimizing IE11? The web is built on the foundation of **progressive enhancement**. Deliver “good enough” service to legacy browsers, and save the enhancements for the bulk of your userbase. In 2017, Philip Walton advocated the “[module/nomodule](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/)” pattern for JavaScript. This can be reduced to the “module/bare minimum” pattern today. Walton wrote: > Most developers think of `