This means your hosting can’t be the discount / cheap hosting you find out there. Cheap hosting is cheap hosting. You’re put on a server with hundreds of other website and you have no idea what those other websites are doing. Instead, get on fast hosting where the server is powerful and optimized and where there’s a limit on how many sites are hosting (or get a VPS – virtual private server).
Images must be optimized. Images from your camera or computer may be formatting for printing and not for a website. They may contain lots of extra information (data) that isn’t needed. Optimizing images must be done to make sure your website loads fast. It’s data. You must reduce the amount of data going through the pipe and images take up a lot of that bandwidth.
Your website’s scripts, style sheets and code must be optimized (minimized). You should also be doing some kind of performance caching to reduce the amount of processing and database / disk access needed to produce a page.
Website speed is all about reducing the amount of data being sent and delivering it as fast as possible. This is a simple concept but if it isn’t implemented, then you won’t see your website load as quickly as it can.