Правила по улучшению Google Page Speed

0. Установите Google Page Speed Модуль

Модуль pagespeed предоставляет большое количество инструментов улучшения производительности вашего сайта используя как малеленькие так и большие изменения.

Смотреть здесь

1. Избегайте перенаправлений(Redirects)

Избегайте больше чем одного перенаправления с даного url на конечную страницу.

2. Сжатие

Включите сжатие статических файлов. К примеру, используйте gzip сжатие.

3. Улучшение время ответа сервера

Убедитесь, что время не привышает 200мс.

  • Проанализируйте логику вашего приложения и протестируйте ответы с сервера и устраните источник проблемы. Это могут быть тяжелые запросы к базе даных или большие картинки…
  • Используйте Rack Mini Profiler для того, чтобы проверить скороль ответа сервера.
  • Избегайте плохих запросов к базе даных.
  • Используйте CDN для статических файлов.
  • Используйте SPDY on Rails
  • Используйте Rails Caching - прочтите следующие статьи Rails Official Guide и Blog - Complete guide on Rails Caching.

4. Используйте кеширование в браузерах

Убедитесь, что ответы с сервера включают в себя заголовки кеширования или ресурс кешируется на некоторое непродолжительно время.

  • Переместите favicon.ico в папку assets и используйте favicon_link_tag.
  • Используйте следующие Nginx конфигурации для того, чтобы установить http кеш-контроль над картинками в папке /public/images:
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
  expires 1M;
  access_log off;
  add_header Cache-Control "public";
}
  • Если вы включили сжатие с помощью Gzip и вы так же хотите использовать Rails Http кеширование, тогда обновите NGINX до nginx 1.7.3 или больше. Так же используйте Rails weak etags gem. Больше информации: Rails & Weak ETags
  • Прочтите следующее, если вы хотите использовать Rails HTTP кеширование. Вам нужно будет настроить Rails, что бы использовать кешированые ответы сETag-ами.

5. Уменьшайте CSS и JavaScript

Убедитесь, что CSS и JavaScript файлы минимизированы.

  • минимизируйте файлы CSS и JavaScript. Rails фреймворк минимизирует CSS/JS файлы по-умолчанию с помощью sprockets и uglifier-ов.

6. Оптимизируйте картинки

Сжимайте размеры картинок без большого урона качеству.

7. Оптимизируйте CSS

  • Не используйте @import вызовы в CSS.
  • Не больше одного внешнего CSS файла больших розмеров (только меньше чем 75k).
  • Встраивайте маленькие куски CSS в HTML используй style-тег.
  • Не используйте CSS в HTML тегах. К примеру, div или h1.

8. Уменьшить размер верхней половины видимой части сайта(above-the-fold content)

Уменьшить размер верхней половины видимой части сайт корорая нужна при загрузки страницы.

  • Включите Keep-Alive HTTP соединение.
  • Структурируйте ваш HTML так, чтобы главный контерт загрузался первым(above-the-fold content).

9. Попробуйте использовать скрипты асинхронно

<%= javascript_include_tag 'application', async: Rails.env.production? %>

LikeMe: