Я всегда стараюсь соблюдать основные правила:
1. Уменьшите количество HTTP-запросов
2. Помещайте CSS файлы в начале страницы
3. Помещайте javascript в конец страницы
4. Минимизируйте css и javascript
5. Используйте поддомены для параллельного скачивания
6. Используйте кэш браузера
7. Используйте CDN для загрузки популярных JavaScript библиотек
8. Оптимизируйте ваши изображения
9. Не масштабируйте изображения
10. Используйте Gzip- сжатие
Все так, добавлю лишь серверную часть

Если у вас вдс, дедик или же есть возможность повлиять на хостера, или заказать размещение сайта на хосте с настройками тогда такими:
* nginx для front-end. Отдаем легкую статику шустрому нгинксу
* apache back-end. Длительные запросы и генерация кеш страниц
* memchached. Серверный кеш.
Если у вас бд с innodb таблицами, тогда кешу отдаем 70% от физ озу
Если же не инно, тогда 30-40% от физ озу.
Есть ещё вариант для кеша брать eAccelerator, APC, но это уже смотря, что больше кешировать надо.