Greetings, here's a few tips:
If you have linear gradients in your background, try slicing an image 1px wide (if vertical) or high (if horizontal), and use with CSS background repeat property. This can dramatically reduce the size of images for the background. There's another way to do it without images in CSS3, but some old browsers won't support it.
Put as much text as possible in the HTML as text instead of image. This would probably save you lots of megabytes. You can format it with CSS also.
If you have a large image that really has to be left as an image, try saving it as JPG (lower the quality if possible to get an optimal file size) and turn Progressive on. If it's still too large, slice it into smaller images so they could load separately, but in most cases this is unnecessary.
Hope this helps.