Clicky

Why Is American Express So Slow? Here Are The Reasons

American Express is one of the biggest financial services companies in the world that specializes in payment cards and other financial products.

A speed report from Lighthouse paints a rather grim picture and scores American Express website 14 seconds on the speed index (SI), and 29 on Performance.

There are many reasons why the American Express website is so slow. This includes:

  • Bloated JavaScript files
  • Unused CSS files
  • Absence of lazyloading
  • Render-blocking resources
  • Large DOM size

Let’s look at each of these reasons and identify potential ways that American Express can make their website load faster.

But before we do that, a quick word about our website CWVIQ.com - we are a free email alert service that sends out notification any time your website is loading very slowly (often due to heavy traffic, or poor scripts). If you have a website, consider setting up an alert so that you can fix issues before they become major. 

Bloated JavaScript files

American Express uses a lot of JavaScript to run the website. However, loading them all from one source could slow up the performance of the website. American Express can avoid this by splitting the code into smaller files. This way, you only load files that are necessary.

The American Express website can be as much as 2.21 seconds faster by adopting this technique.

Unused CSS files

American Express uses CSS files to load the styling elements for the website. However, this file contains a lot of unused scripts that can be slowing down page loading by as much as 0.45 seconds. Code splitting may help avoid this issue.

Absence of lazyloading

Images and videos are by far the most resource-intensive assets and take up a lot of bandwidth during the page-loading process. This can be a real problem on shopping websites since they typically include a lot of graphical content.

But here is the thing – a user who visits the website is not going to need all the images on the page to load. Instead, they only need those images on the top fold of the website to load. The rest can be ‘lazy-loaded’ – that is, they can be loaded after all the other critical components of the webpage have completed loading.

The American Express homepage can load as much as 0.45 seconds faster if images were lazyloaded.

Render-blocking resources

There are scripts on the American Express website that need to run first before they let the rest of the code be executed. The render-blocking resources issue can shave off around 1 seconds from the loading time for the American Express website.

How do you avoid this? If the script is not critical, avoid having it in the <head> tag of your HTML code. But if you do need to have it there for some reason, make sure to include the defer or async attribute so that they do not block the loading of other resources. 

Large DOM size

The American Express website takes close to 9.7 seconds to evaluate all the scripts, parse them, compile, and render them. This can be minimized by minimizing the main-thread work.

They may also look at reducing the number of nodes in the DOM. In simpler terms, you need to make sure that the main HTML code is smaller and has fewer nodes. I have explained this in greater detail in this article about DOMContentLoaded.

Ineffective Caching Policy

A website like American Express is made of several components, including a lot of images, and other media files. Caching, or storing these components in your local computer, enables your browser to load the website much faster when you come back a second or third time.

With American Express however, the cache for most media files clear is deleted every 60 minutes. This means that the website is loaded completely from scratch any time you visit after 60 minutes. Enabling a longer cache period could make loading pages faster and more user-friendly.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top