Worried about Nosto slowing down your site?
The store performance is a very big deal to us, so we’ve actually done a lot of work to make sure Nosto doesn’t slow the site down even if the Nosto embed script is called from head-segment of the page.
Nosto uses asynchronous script loading, which means that if Nosto’s script fails to load it can’t prevent the host site’s main content from loading normally, as browser doesn’t stop waiting for Nosto at all. Nosto can’t block other scripts or elements from loading either, hence the host site’s normal load process and load times are not affected.
Script loading is also done inside an iframe, to make sure the script cannot in any circumstances conflict with the host page, interrupt or slow down target site’s normal operation for example by preventing host page’s on-load event from happening (unlike a script tag with async attribute). The javascript itself is all custom built to be minimal, and during the build process it’s minimised and gzipped.
Nosto recommendations might appear on the site slower than other elements if the site has lots of script tags, which prevent Nosto’s script from loading in an adequate time. This might give a false implication that Nosto would load slowly and slow down the host site if the site have multiple scripts preventing Nosto to perform in a reasonable time.
To make Nosto recommendations appear faster and to improve load times in general, a site should remove or reduce synchronous scripts, or the site can explicitly call Nosto to activate earlier.
The end user’s loading time and experience depends on multiple factors, of which the most relevant are
Page structure and synchronous scripts as described above
How fast the network connection is in conjunction with
Physical location of the end-user
The canonical advise that a javascript should be just before the body-element ends, is good for tracking scripts and such, but not for on-site content such as Nosto, hence we advice to populate the script to a position where it is executed as the first parts of the page. The main reason is that Nosto creates part of the content of the page so pushing the script to the end of the page will make the script start later leading to recommendations appearing later consequently degrading the user experience.