Technical reason why Safari 9 doesn't support modern sites

Safari 9.1 was released in 2016, over 3 years ago, and doesn’t support a lot of popular web technologies that have since been developed.

Polyfills exist for some technologies, with Safari 9 barely making the list for some polyfills, but many developers don’t expect to support a browser lacking ES20151 support (you can’t even declare a variable with let in Safari 9).

caniuse.com provides a detailed feature-based comparison of web browsers, including Safari 9 vs Safari 12.1. Given the added screenshot with your error message, the JavaScript being executed cannot find ‘fetch’ which is likely a reference to the Fetch API, a crucial API for obtaining resources from elsewhere. The Fetch API is first supported in Safari 10.1.

If the web developer hasn’t included a polyfill for Safari 9, it may be possible to inject the polyfill yourself for individual web technology features, but this situation will only get worse. I understand the potential need to run older software, but such use should be limited to a virtual machine, ensuring the host OS is secure as well as running a secure web browser capable of understanding the technologies present on your favourite sites.

1 ES2015 (or ECMAScript 2015) is a scripting-language specification created to standardise JavaScript for use by multiple browsers, applications, and devices. This standard is updated each year in June and we're now up to the ECMAScript 2019 standard. For more information, refer to JavaScript Versions. This page provides a summary of ECMAScript editions and scrolling down you can see a breakdown of browser support.