5 Second Freeze on Page Load - mobile only

I’m running into a good 5 second freeze every time I open my page on mobile (see below)

The PageSpeed stats reflect this (when run on mobile with “mobile” tab selected), but I’m struggling to understand what changes I should actually make to fix this, and I want to make an educated decision before I change things/implement something new.

Is a page like this with high res imagery, fancy interactions and fonts, scroll snapping, and multiple swiperJS sliders just going to need a loading overlay for those five seconds to help things feel more seamless? Or can I really get the load time down to an acceptable level through other tweaks in this case?

Hey Pat, have you tested on an actual phone?
The pagespeed insights test seems okay to me - as you probably know, the mobile test is emulating a slow device and a slow connection speed. Performance around 80 is pretty good for mobile in this context.

That said, it looks like there are some scripts you could defer to improve speed, namely

  • Swiper.js
  • Scrollify

I also see a pretty large image (~370KB) is being loaded, but I don’t see it on the page.

I’d recommend lazy loading everything below the fold, and perhaps set images above the fold to eager. You can also add fetchpriority=”high” in custom attributes to anything above the fold.

Preconnecting to the URLs you are calling could be useful as well.

Those are some really helpful actionable steps, appreciate it! Good to know the performance doesn’t seem too too bad overall.

Yeah, the bad performance I am seeing is always on mobile. 5 seconds to interactivity after refresh when I navigate to the page on an iPhone 13 Pro on Safari. When I run a PageSpeed test from mobile I get the below results, which don’t seem great :confused: But hopefully some tweaks with that large image, deferring and lazy/eager load will help

Wanted to share some process of elimination testing I did this morning that is providing a clearer picture of the pain point. I removed all images (except for one small SVG) as well as all custom per page and custom sitewide JS code; I was especially suspicious that SwiperJS or one of the other scripts I was running was causing the issue so figured this would be a good thing to try.

Having removed all of these elements, I am still getting near to the same mobile lag as I was experiencing before. I ran some speed tests as well to make sure my images and scripts were not still somehow loading, and verified they were not. As you can see in the attached screenshot, it looks like the longest remaining URLs to load are: the webflow.schunklinks, the CSS, and the cloudfront link.

Assuming I will need to live with the lag from the CSS and Cloudfront (appears to be anti-malware?), I looked into what the webflow.schunk links are. It appears these are associated with interactivity/animations and such, which makes sense since I did add a good bit of interactivity to this page.

I found the below response from Webflow Staff in another post regarding interactivity lag on mobile only. I guess optimizing the interactivity, adding a loading screen, or living with the lag are my options.

Hi there,

Here’s how to optimize your site’s mobile performance regarding animations and interactions:

Loading animations should be strategically implemented for the best mobile experience. Focus your load triggers only on elements that are immediately visible when the page loads. This helps reduce initial load time and improves performance.

For smoother animations, be selective with your transition and transform properties. Instead of applying all properties, choose only the specific ones needed for your desired effect. For example, if you’re only moving an element, just use the transform: translate property rather than including unnecessary properties like scale or rotate.

If certain animations are still causing performance issues on mobile, you can disable them specifically for mobile devices through the interaction settings panel. This gives you granular control over the mobile experience without affecting desktop users.

Hopefully this helps! If you still need assistance, please reply here so somebody from the community can help.