The summary.
WHAT MATTERS IS WHEN SOMETHING USEFUL APPEARS
Not when everything has finished. And whether the layout moves afterwards, which makes people click the wrong thing.
MEASURE ON A MODEST DEVICE AND A SLOW CONNECTION
Your own machine conceals every performance problem, and field data consistently shows real visitors are worse off than assumed.
Establish a baseline before optimising, and address the largest contributor — people usually guess wrongly where time goes.
IMAGES ARE USUALLY THE LARGEST SAVING
Size them to their displayed dimensions, compress, use modern formats, and automate it on upload so it does not depend on remembering.
Never scale a large image down with styling — the full file is still downloaded.
SCRIPTS COST MORE THAN THEIR SIZE
They are downloaded, parsed, compiled and executed. Audit what is actually in your bundle — you will find libraries included for one function.
Third-party scripts are slow, can fail, and change without notice.
VERSION ASSET FILENAMES AND CACHE THEM INDEFINITELY
And enable compression for text-based content.