я делаю так:
1 делаю превьюшку меньшего разрешения и весом в 5-15 кб с таким же соотношением сторон
2 вставляю ее как инлайн картинку
3 к этой картинке применяю фильтр blur
4 вешаю скрипт, либо на document ready, либо сразу, либо при скролле, чтоб начинало грузить картинку в полном размере
5 после загрузки картинки меняю заинлайненный вариант на полный размер, и анимирую blur в 0
выходит примерно так
https://youtu.be/PhSVRzYsSFA
на medium примерно так же картинки грузили
подключаем CDN и выносим туда картинки
уменьшаем вес самих картинок, список утилит для оптимизации размера вам в других ответах написали
дополнительно, в шапке пихаем ссылку на большую картинку с rel="prefetch" или подобными.
включаем на хостинге кэширование, gzip
и прочее для улучшения скорости работы
из минусов - трафик так будет чуть больше