Разгоняем WordPress! Google PageSpeed Insights 100 из 100

Google PageSpeed Insights – это сервис от “корпорации Добра”, который позволяет оценить привлекательность вашего сайта для мобильных устройств, а также его оптимизацию в плане скорости загрузки. В один прекрасный день я задался целью сделать блог, который набрал бы в нем 100 баллов из 100 возможных. Для поиска оптимальных решений этой задачи я потратил все выходные.

На какие параметры PageSpeed Insights обращает внимание больше всего?

Скорость отклика вашего сервера – если ваш блог будет находится на shared хостинге с кучей других сайтов – соседей, соответственно работать он будет медленней, чем отдельный VDS. Если сайт коммерческий, имеет смысл пользоваться именно выделенным сервером.

Наличие мобильной версии – с недавнего времени Google и Яндекс ранжируют сайты в мобильной выдаче в зависимости от степени удобства последних для просмотра на мобильных устройствах. Если ваш сайт не имеет адаптивного дизайна, будьте готовы, что он будет понижен в выдачи для устройств с небольшими экранами. Кстати, согласно статистики, сейчас 30-40% пользователей интернета сидят именно с мобильных устройств.

Наличие неоптимизированного контента на странице – несжатые файлы стилей, скрипты, картинки. Все это желательно уменьшать в размерах и оптимизировать до заливки на сайт.

Это основные моменты.

Сервис Google PageSpeed Insights находится по этой ссылке. Вводим адрес сайта в единственное поле и жмем “Анализировать”.

Почему именно WordPress?

Этот движок мне кажется самой удобной CMS для блогов, тем более, что ее функционал можно значительно расширить за счет плагинов. С Вордпрессом я работаю достаточно давно, так что мне он нравится именно своей простотой.

Итак, начнем:

Хостинг

В качестве хостинга я использовал VDS от DigitalOcean с установленной на нем Ubuntu 14.04. В качестве Web-сервера Apache. Территориально сервер расположен в Нью-Йорке.

Объяснять, как устанавливать веб-сервер на Ubuntu я не вижу смысла. Можно создать готовый дроплет с LAMP. И установить на него панель управления сервером Webmin. Далее в настройках Апача обязательно включаем mod_rewrite и mod_expires

Тема для WordPress

Чем более навороченную тему для WordPress вы выберете, тем больше она будет отъедать баллов от итогового результата, поэтому 100 из 100 вы вряд-ли наберете. Для своего блога я выбрал самую простую тему, она так и называется “Start”. Адаптивный дизайн и наличие мобильной версии – вот и все, что мне было нужно.

Плагины, оптимизирующие скорость блога

Вот эти плагины я ставил, чтобы увеличить параметры Google PageSpeed Insights:

  • Autoptimize – уменьшает размер CSS и HTML
  • Async Javascript – плагин, с помощью которого можно меня порядок загрузки скриптов, делая его асинхронным, что значительно может ускорить блог
  • WP Super Cache – кеширующий плагин, который значительно ускоряет работу блога.

Помимо этого, старайтесь загружать на сайт только оптимизированные и сжатые изображения. Обычно, если файл имеет немного цветов, то можно использовать формат png, если цветовая гамма насыщенная, то лучше пожатый jpg. Перед загрузкой картинки на сервер я обязательно уменьшаю его размер с помощью сервиса kracken.io

Настройки сервера

В настройках Апача обязательно нужно включить директивы mod_rewrite и mod_expires. Первая разрешает использование ЧПУ ссылок в блоге (без них не работает WP Super Cache), а вторая позволяет через .htaccess включать кэширование сайта в браузере посетителя. Google обращает на это особое внимание. 

Как включить поддержку .htaccess

В Apache по умолчанию отключена поддержка файлов .htaccess. Включить ее можно отредактировав файл /etc/apache2/apache2.conf,

а именно там есть следующий участок кода: (надо сменить None на All)

Directory /var/www/>
 Options Indexes FollowSymLinks
 AllowOverride All (по умолчанию стоит None)
 Require all granted
</Directory>

Содержимое .htaccess

В корне сайта создаем файл .htaccess (без расширения) и вносим в него следующее содержание.

# Включаем поддержку ЧПУ ссылок.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#Кэширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/svg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
 
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|svg)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
 
#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

Именно после этих манипуляций, один из моих блогов  (не этот) показал оценку в PageSpeed Insights в 100 баллов из 100 возможных. Я ни в коем случае, не утверждаю, что после этого позиции вашего сайта взлетят! По крайней мере, это только 1 из 200 факторов ранжирования Google. Но зато я точно теперь знаю, что хотя бы одно условие я выполнил! )

Чтобы узнавать больше подписывайтесь на Телеграм-канал Блог компьютерного мастера

Leave a Reply

Your email address will not be published. Required fields are marked *

13 − 2 =