Доклад о насущей и затертой до дыр теме кеширования не только сайтов на WordPress, но и сайтов в целом: от перегрузки js-скриптов и CSS в CDN до установки и настройки Varnish Cache
2. Зачем нужно ускорять сайт?
Для пользователей: долгая загрузка сайта снижает лояльность посетителей и не раздражает их
Готовность сайта к большому трафику
SEO: поисковики учитывают скорость загрузки сайта, это один из важнейших факторов влияния на ранжирование сайта среди других!
Экономия денег: если Вы используете обычный shared-хостинг, а нагрузка увеличивается, то Вас могут попросить перейти на более дорогой тариф или выделенный сервер, что значительно дороже.
4. Способы ускорения сайтов и WP
Кеширование
Использование CDNдля подгрузкина сайт открытых(open source) библиотек или своих файлов
Сжатие HTML и CSS-файлов, объединениебеграундовв “sprite”
Увеличение ресурсов сервера (процессор, оперативная память). Смена хостинга
Оптимальная настройка сервера (Nginx, MySQL, Apache)
Увеличение количества серверов с помощью балансировщиканагрузок (только для очень больших проектов!)
Оптимизация кода и запросов к базе данных
Оптимизация jsи CSS3-кода(только вручную)
Акселераторы PHP (opCodecache), Memcached, Varnish Cache
Удаление лишних плагинов(для сайтов на WordPress)
5. Content Delivery Network (CDN)
Если Ваш сайт использует открытые скрипты, такие как jQuery, Bootstrap, AngularJSитп, то желательно подключать их через внешние CDN-сети.
Например, ищем в Google: “jQuery CDN”
Находим //ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
Отсюда:https://developers.google.com/speed/libraries/devguide#jquery
Смысл: CDN-сети публичных скриптов обслуживаются мощными серверами, гарантирующими высокую скорость подгрузкискрипта на Ваш сайт.Вы можете также хранитьи подгружать файлы сайта (загружаемые изображения, css-файлы итпна CDN, но за $€¥)
6. Самые известные CDN
Бесплатный хостинг открытых (open-source) библиотек:
Google: https://developers.google.com/speed/libraries/devguide
Яндекс: https://tech.yandex.ru/jslibs/
CDNjs: https://cdnjs.com/
Платные CDN с предоставлением бесплатного хостинга Open Source
MAXCDN: https://www.maxcdn.com/
CloudFlare: https://www.cloudflare.com/
Amazon CloudFront: http://aws.amazon.com/ru/cloudfront/
7. Пример переподключенияскрипта через CDN
В function.phpВашего шаблона:
function change_jquery_to_cdn() {
wp_deregister_script( 'jquery' );
wp_enqueue_script( 'jquery', '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js' );
}
add_action( 'wp_enqueue_scripts', 'change_jquery_to_cdn' );
9. Кеширование. Типы
Кеширование запросов–кеширование результатов SQL- запросов
Кеширование страницы–сохранение статического HTML- кода (результата выполнения скриптов и запросов) требуемой страницы
Браузерноекеширование–кеширование заголовков и использование ресурсов на стороне клиента (пользователя)
Фрагментное кеширование–кеширование отдельных частей страниц
Подробнее: http://codex.wordpress.org/WordPress_Optimization/Caching
10. Кеширование в WordPress
Несколько основных плагинов для кеширования
WP Super Cache https://wordpress.org/plugins/wp-super-cache/
W3 Total Cache https://wordpress.org/plugins/w3-total-cache/
WP Fastest Cache https://wordpress.org/plugins/wp-fastest-cache/
Замечание: дальнейшие тесты плагинов показывают их оптимизацию при загрузке без кеша, отследить скорость с кешемна цифрах не удалось
17. Сравнительный анализ плагинов
WP Super Cache
W3 Total Cache
WP Fastest Cache
Удобство админки
Сложность настройки
Результат
Популярность
Поддержка CDN
Поддержка видов кеширования
Сжатие CSS, JS, HTML