Уроки        08 июня 2017        344         0

Как оптимизировать быстродействие сайта на WordPress за 8 шагов

Как оптимизировать скорость сайтов на WordPress за 8 шаговСкорость загрузки страниц — один из важнейших факторов, влияющих на статистику отказов. Его учитывают и поисковые системы, понижая в своей выдаче медленные сайты. Ускорение WordPress является многоступенчатой операцией, включающей в себя различные аспекты, такие как: настройка кэширования, сжатие изображений, стилей и скриптов, а также прочие действия.

 

 

1. Выбор качественного хостинга

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

  • Проверка отзывов. Первый шаг на пути к хорошему хостингу — чтение отзывов о кандидатах на различных ресурсах. При наличии крупных проблем, об этом обязательно станет известно. Как и о том, насколько дружественно техническая поддержка относится к клиентам.
  • Активное тестирование. Часто такая возможность имеется в виде кратковременного тестового периода, во время которого можно проверить как хостинг справляется с реальной нагрузкой и насколько быстро на нём работает сайт.
  • Обращение в поддержку. Непосредственное общение применяется с целью выяснения быстроты реагирования и манер поведения. Желательно, чтобы вопрос был технический и не простой, в вечер пятницы или в выходные.

 

2. Оптимизация back-end

Лучше всего, когда шаблон написан самостоятельно под конкретные требования. В противном случае придётся выискивать слабые места в чужом коде, а их там бывает много. Например, чтение настроек в footer.php совершенно лишнее, ведь в большинстве случаев в подвале сайта содержится статическая информация.

То же самое касается плагинов. Они нуждаются в тщательной проверке, поскольку могут содержать уязвимости и не эффективные алгоритмы, потребляющие драгоценные ресурсы.

Количество запросов к базе данных, откуда они были сделаны, сколько времени заняли и прочую информацию можно узнать с помощью плагина Query Monitor. А WP Optimize очистит БД от мусора.

 

3. Оптимизация front-end

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

CSS, JavaScript и графика

Сама тема оформления не редко имеет множество разрозненных скриптов и стилей, а плагины усиливают беспорядок, заставляя браузер совершать лишние запросы, нагружая сервер. Объединение стилей и скриптов экономит ресурсы, и увеличивает скорость загрузки сайта.

С изображениями дело обстоит так же: их следует объединить, применив в шаблоне спрайты. Если тема создана без их использования — не беда, всё поправимо благодаря плагинам.

Например, JCH Optimize:

  • Объединяет и сжимает стили, скрипты;
  • Оптимизирует HTML;
  • Реализует GZip сжатие отдаваемого содержимого;
  • Создаёт спрайты, объединяя изображения темы.

Такой функционал есть и в других плагинах, один из них — W3 Total Cache.

Блокирующие вызовы

Некоторые скрипты могут увеличивать время до показа основного содержимого, потому что они установлены в верхней части страницы и вызываются первыми. Для исправления данной ситуации следует установить Async JavaScript, который сделает выполнение скриптов асинхронным, либо будет запускать их после загрузки страницы.

 

4. Сжатие изображений

Меньше — значит быстрее. Существует ряд плагинов, сжимающих картинки без потери качества:

  • EWWW Image optimizer — сжимает как новые, так и старые изображения, используя локально установленные библиотеки (на виртуальных хостингах могут возникнуть проблемы). Платная версия даёт возможность использовать внешний сервис. Поддерживает CDN.
  • CW image optimizer — обладает схожими возможностями. Сжимает уже имеющиеся и добавляемые изображения. Можно делать бэкапы. Не использует сторонние сервисы.
  • WP Smush — картинки сжимаются удалённо, поэтому в бесплатной версии есть ограничения.

А ещё есть Lazy load — он реализует «ленивую» загрузку изображений. Отображаются только те картинки, которые видит пользователь, а остальные подгружаются по мере прокрутки страницы.

 

5. CDN

Сеть доставки содержимого повышает устойчивость к DDoS атакам, и увеличивает скорость отдачи файлов клиентам за счёт распределённой инфраструктуры. Её используют для высоко нагруженных проектов и в тех случаях, когда основная задача сайта — показ мультимедиа (например, видео). Бесплатные, но лимитированные CDN сервисы:

  • DropBox;
  • CloudFlare;
  • HighWinds;
  • Amazon.

В качестве альтернативы CDN можно использовать Google Drive, Photobucket, Flickr и прочие сервисы, через которые нетрудно организовать раздачу изображений. Нужно лишь воспользоваться плагином Image Url Rewrites for CDN для изменения путей к картинкам.

 

6. Кэширование

Благодаря кэшу экономится процессорное время: не каждый запрос требует исполнения PHP сценариев, но когда это всё же необходимо, кэш снова приходит на помощь, сохраняя скомпилированный код в памяти, чтобы он не компилировался заново.

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

Инструменты для кэширования:

  • Varnish — система кэширования, выступающая промежуточным звеном между клиентом и веб-сервером;
  • XCache — акселератор PHP, кэширующий байткод;
  • Memcached — кэш, основанный на хэш-таблице, который передаётся по сетевому протоколу.

Также стоит упомянуть APC, eAccelerator, Redis. Для реализации поддержки кэширования лучше всего подходит плагин W3 Total Cache с массой возможностей. Помимо основных задач он добавляет поддержку CDN, оптимизирует и сжимает front-end код.

 

7. Настройка сервера

Наивысшего быстродействия можно достигнуть только на новых версиях ПО, ведь оно постоянно совершенствуется. Например, 7 версия PHP превосходит 5 по скорости в несколько раз.

Выбор инструментов и их связка между собой осуществляется под конкретные задачи, поэтому невозможно дать общих рекомендаций. Где-то будет эффективно использовать Varnish NGINX, а где-то NGINX Apache2, и так далее.

Настройка кэша MySQL

Файл настроек располагается по адресу /etc/mysql/my.cnf, в нём есть следующие опции:

  • query_cache_size — объём кэша хапросов (в байтах);
  • query_cache_limit — объём максимальной выборки;
  • thread_cache_size — количество потоков, кэширующихся при отключении клиента;
  • table_cache — сколько таблиц держать в кэше.

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

 

8. Отключение и удаление лишнего

Плагины, которые не используются, не должны создавать нагрузку. Если они нужны лишь периодически, их следует отключать. WordPress проверят обновления для всех компонентов независимо от того, активированы они или нет. То же самое относится и к темам, неиспользуемым файлам: они занимают место на жёстком диске, в том числе в бэкапах.

Проверка скорости

На всех этапах оптимизации быстродействия рекомендуется контролировать скорость загрузки сайта. Самый доступный инструмент для измерения — функционал браузера. В Firefox он открывается по нажатию CTRL+SHIFT+Q, или из контекстного меню «Инструменты» «Веб-разработка» «Сеть». Если этого мало, то расширение YSlow позволит получить больше информации.

Внешние сервисы:

  • Google PageSpeed Insights — проверка с выводом рекомендаций, проводит тесты для ПК и смартфонов;
  • GTmetrix — выдаёт множество показателей, есть сохранение истории;
  • Load Impact — активное тестирование путём эмуляции захода посетителей (слабый DDoS);
  • Monitis Tools — анализ загрузки сайта из разных географических точек.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *