lo ideal es desarrollar con los css y js separados y luego juntarlos en un solo archivo para la web final, si usas php puedes usar por ejemplo
minify (yo no lo he usado nunca, pero es el primer resultado que me ha salido en google) o sino seguir buscando en google por "css/js minifier"
basicamente lo que hace es quitarle todos los espacios y saltos de linea al css/js, juntarlos en un solo archivo y comprimirlos con gzip, en esas webs solo con eso habra una diferencia notable de rendimiento
respecto a los sprites css... echale un vistazo a
spriteme que te ayuda a juntar imagenes en un solo sprite (la idea es que juntas varias imagenes en una imagen grande, como llevan haciendo los videojuegos en 2D de toda la vida pero trasladado al mundo web
y luego esas imagenes las muestras con la propiedad background-image y background-position de css
cachear posts.. pues no se, depende de si usas un CMS prefabricado o has programado el blog desde 0? en wordpress hay plugins como
WP-cache que lo que hacen es basicamente guardar una version en html estatico de los posts e irla actualizando cuando cambian... asi estas sirviendo html estatico y las paginas cargan mucho mas rapido
otras formas de hacer cacheo, mas avanzadas, son usando bases de datos K/V para guardar los resultados de las queries a bases de datos relacionales lentas (como mysql). esto quiza se sale un poco del tema porque es mas complejo y probablemente no lo necesites para una web tan sencilla como un blog.
con cachear html estatico y expirarlo cuando cambia, te sobra.
como ejemplo, si el codigo php esta hecho por ti, un sistema muy basico de cacheo seria guardar la portada como html estatico y cada vez que tenga que cambiar (al añadir un post, un comentario, lo que sea...) substituir ese archivo html por la version nueva. esto se puede extender a todas las secciones de tu web que no cambien a menudo