Простые рекомендации по оптимизации работы интернет-ресурсов

Сейчас каждый второй сайт предлагает свой свод советов по увеличению производительности сайтов, есть они и поисковика Yahoo.

Во-первых, при работе с HTTP не забывайте:
- избегать HTTP запросы – чем меньше их, тем лучше;
- использовать заголовки «Cache-control» или «Expires»;
- забыть про редиректы (HTTP Redirect).

Во-вторых, скрипты Java требуют внимательности:
- При написании документа в его начале обязательно указывайте ссылки на файлы с таблицами стилей (link href).а в конце прописывайте ссылку на файл JavaScript (script src);
- Вставки CSS и JavaScript храните отдельными файлами;
- При использовании CSS и JavaScript уменьшайте размеры файлов с помощью утилитов YUI compressor или JSMin. Они позволят разобраться с ненужными комментариями и лишними пробелами, а так же сократят переменные.
- Проверяйте файлы скрипта на дублирование кодов, что заставляет догружать ставки и задерживать обновление страницы;
- Избавьтесь от запросов Java к DOM хотя бы частично, выполнив кэширование, отбрасывающее повторяющиеся запросы;
- Все блоки Java вместе с картинками оставляйте на загрузку в последнюю очередь;
- При обработке событий в крайнем случае применяйте onresize, аудиты проводите с помощью YUI Event, а привычный "onload" замените на утилиту DOMContentLoaded.

В-третьих, при работе с Ajax запросами:
- Кэшируйте их;
- используйте метод GET, вмещающий все запросы в один пакет TCP.

В четвертых, CSS тоже можно оптимизировать:
- Не засоряйте CSS вычислимыми выражениями (expression);
- Обязательно сбросьте буфер еще при старте генерации страницы с помощью периодического вызова flush() в PHP, тогда пользователь быстрее загрузить CSS файлы;
- Для загрузки CSS используйте в начале страницы не @import, а "link";
- забудьте про фильтры, они поддерживаются исключительно IE/ лучше возьмите в оборот PNG8.

В-пятых, будьте терпеливы и внимательны при написании сайта:
- Все страницы перед отдачей сжимайте, например, через утилиту mod_gzip;
- Для доставки контента используйте услугами таких сетей как Akamai;
- В странице не прописывайте более трех ссылок на другие домены, будь то обращения к картинке или iframe, ибо сайту приходится дожидаться ответа чужих серверов;
- При использовании iframe'ов, постарайтесь оставить только основные, а так же избавиться от ссылок на чужие ресурсы, иначе часть страницы может остаться заблокированной;
- В Apache настройте ETags;
- Рационально отбирайте те скрипты, которые понадобятся при первоначальной загрузке;
- А весь контент делите равными долями по имеющимся доменам, тогда браузер подгрузит все необходимые данные одновременно;
- Минимизируйте количество элементов в древе DOM, убирайте лишние тэги;
- Банально, но следите, чтобы у вас не появлялась ошибка 404;
- Урезайте размеры Cookie: сокращайте имена, определяйте продолжительность жизни, убирайте все лишнее;
- Во вспомогательных страницах вместо Cookie используйте вынесение всех скриптов на static.domain.com;
- Если решили добавить Flash, заранее определите crossdomain.xml.

В-шестых, обратите внимание на изображения:
- Поработайте над используемыми изображениями (уменьшите размеры используемой палитры, заливайте картинки в формате *PNG с помощью утилитов optipng, pngoptimizer или pngcrush, удаляйте комментарии, а в случае *jpg оптимизируйте файлы через jpegtran);
- Для создания фоновых картинок используйте CSS спрайты;
- Проверяйте совпадения реального размера картинки с прописанными параметрами width и height (тогда не будет проблем с масштабированием).
- Помните, что созданный favicon.ico должен не превышать 1 Кб и быть кешируемым, ибо поисковые системы используют его в каждом десятом запросе.

И, наконец, в-седьмых, при создании сайта, оптимизированного под мобильные устройства:
- Не создавайте страницы, превышающие 25 Кб;
- Используйте multipart блоки, что позволяет производить автоматическую упаковку всех дополнений в приложения.