SEO - Настройка многоуровневого кэширования

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

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

Кэширование - это один из способов оптимизации Web-приложений. В любом приложении встречаются медленные операции (SQL-запросы или запросы к внешним API), результаты которых можно сохранить на некоторое время. Это позволит выполнять меньше таких операций, а большинству пользователей - показывать заранее сохраненные данные.

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

  1. Первый - кэширование объектов, при котором объекты приложения сохраняются локально для их дальнейшего использования при будущих запросах без необходимости обращения к исходному серверу.
  2. Следующий - кэширование баз данных, позволяющее сохранить в буфер памяти данные запроса для увеличения скорости работы баз данных.
  3. Кэширование байт-ходов, например, с помощью OPcache, повышает эффективность PHP, сохраняя прекомпилированные скрипты в общую память. Таким образом, отпадает необходимость загрузки и синтаксического анализа PHP при каждом запросе.
  4. При кэшировании страницы сохраняются результаты работы скрипта в виде HTML-файла, который веб-сервер с легкостью сможет сразу же отдать, не обращаясь вновь к динамическому получению данных.
  5. Наконец, при кэшировании распространяемого контента используются географически распределенные серверы для увеличения скорости загрузки (см. раздел про настройку CDN).

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

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

Как всегда, для большинства CMS есть плагины и расширения, кэширующие запросы к БД.

Так, например, для WordPress есть комбайн “W3 Total Cache”, который выполняет кэширование практически всех уровней.

http://wordpress.org/plugins/w3-total-cache/

Есть и другие известные плагины кэширования. Однако если вы используете самописную CMS, то для кэширования запросов к БД можно использовать Memcache:

http://memcached.org/

Для прекомпилирования PHP - ну например OPcache:

http://php.net/manual/ru/book.opcache.php

Сегодня OPcache работает очень стабильно и обеспечивает высокий прирост производительности PHP, уменьшая продолжительность компилирования скриптов и оптимизируя генерирование опкодов. Есть очень много информации в Интернете по этому способу оптимизации сайтов, ну например вот на Хабре:

https://habrahabr.ru/company/mailru/blog/310054/

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

Кэш браузера “запоминает” ресурсы, которые браузер уже загрузил. Когда посетитель переходит на другую страницу сайта, логотип, CSS-файлы и т.д. не должны загружаться снова, потому что браузер уже “запомнил” их (сохранил). В этом заключается причина того, почему во время первого посещения загрузка веб-страницы занимает больше времени, чем при повторных.

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

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

Подробная инструкция по активации и настройке браузерного кэширования есть, например, тут:

http://seo-mayak.com/sozdanie-bloga/skorost-zagruzki/kak-vklyuchit-kesh-brauzera-nastorone-polzovatelya.html

Посмотреть включен ли кэш браузера можно, например, тут:

https://webpagetest.org



Copyright 2018 SEO-MOB.ru