Столкнулся с похожей неприятностью. Выход нашел такой - для контента прелоадера добавить плавное появление, чтобы он не успел появиться при быстрой загрузке.
Будет мелькать только фон, но если его цвет соответствует дизайну сайта, это будет малозаметно.
Не знаю, насколько кошерно таким пользоваться, npm при установке ругается на уязвимости. Но ужимает картинки не хуже оригинального tinypng, без смс и регистрации :)