Россия+7 (495) 960-65-87

Запрет кэширования полезен для посетителей и владельцев сайта

Россия+7 (495) 960-65-87
Шрифт:
3 23345

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


В настоящее время скорость передачи данных в сети интернет позволяет с легкостью просматривать видео в хорошем качестве, играть в online-игры, устраивать конференции, быстро скачивать и передавать информацию и т.д. Но так было не всегда! Десять лет назад, чтобы передать 1 Мб информации, приходилось тратить достаточно много времени. Для повышения скорости загрузки страниц сайта было решено сохранять часть данных в кэш браузера (памяти) на локальном компьютере пользователя. Во время последующего обращения к сайту браузер загружал их оттуда при условии, что загружаемые данные не менялись.

Сейчас содержание данных в кэше браузера не является столь востребованным в целях увеличения скорости загрузки. В большинстве случаев данные с сервера запрашиваются методами GET или HEAD. Запросы методами GET и HEAD по умолчанию кэшируются (сохраняются) в логах сервера и прокси-сервера, а также в истории браузера. Из-за того, что информация кэшируется, многие посетители сайта увидят устаревшие данные, а новая станет им доступна только после удаления из кэша. Это может доставить проблемы не только посетителям сайта, но и повлиять на прибыль компании, если сайт коммерческий.

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

Самые распространенные правила опубликованы на авторитетных ресурсах www.spravkaweb.ru (http://www.spravkaweb.ru/php/sovet/nocash) и www.ru.wikipedia.org (http://ru.wikipedia.org/wiki/Мета-теги). Многие сайты позаимствовали эти настройки и используют их сейчас.

Рис.1. Запрет кэширования — www.ru.wikipedia.org

По утверждению Википедии, если в заголовке документа <head> написать <meta http-equiv="Expires" content="Wed, 26 Feb 1999 08:21:57 GMT", определив тем самым неактуальность документа (т.к. дата актуальности закончилась 26 февраля 1999 г.), страница кэшироваться браузером не будет.

Рис.2. Запрет кэширования — www.spravkaweb.ru

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

При данных настройках сервер отдает заголовки, представленные на рис.3.

Рис.3 Заголовки ответа сервера

Разберем каждую строчку, чтобы понять, как это должно работать.

Заголовок актуальности документа предлагается передать прошедшей датой. Например, «Expires: Mon, 26 Jul 1997 05:00:00 GMT», определив, тем самым, что данные уже не нужны, и кэшировать их не за чем. Это, должно вызывать подозрение не только у людей, но и у поисковых роботов при индексации таких документом. Зачем роботу держать в индексе неактуальную информацию, мало кто задумывается. Поисковые системы не любят, когда им пытаются передать недостоверные данные.

Заголовок «Last-Modified» передает браузеру дату и время изменения документа (в данном примере дата и время будут текущие). Если при каждом заходе на страницу поисковому роботу сообщается, что документ только что изменился (хотя в своем поисковом индексе робот различий не замечает), то, возможно, система будет воспринимать это как воздействие на релевантность поисковой выдачи с целью улучшения позиций сайта. Это может послужить причиной наложения санкций со стороны поисковых систем.

Передача заголовка «Pragma: no-cache» для запрета кэширования данных была одним из первых методов, но на данный момент уже не работает.

Эксперимент

Пример 1.

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

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

Рис.4 Запрет кэширования не работает

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

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

Пример 2.

В первом примере предлагалась передача заголовка «Cache-Control: no-cache, must-revalidate», вот только настроен он был неправильно. Дополним заголовок новыми параметрами «Cache-Control: no-cache, no-store, must-revalidate, max-age=0», где

no-store — приватные данные нельзя сохранять на локальном диске (запрещает кэширование в браузерах);

no-cache — директива, использующаяся для запрета кэширования информации прокси-серверами;

max-age=0 — директива, указывающая время, в течение которого хранится информация в кэше браузера;

must-revalidate — директива, сообщающая браузеру о требовании дополнительной проверки актуальности документа, в случае возникновения сомнений.

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

Порядок и условия эксперимента остаются прежними. Если время меняется, значит, оно запрашивается с сервера, а не из кэша браузера.

Рис.5 Запрет кэширования работает

Так как при каждом обращении к странице время обновляется, метод запрета кэширования действительно работает. В данном примере параметры передаются из самой страницы, но возможен более универсальный вариант, который настраивается на сервере. На сервере Apache настройки производятся через служебный файл .htaccess, это дает более функциональный механизм запрета кэширования сразу для всех страниц сайта. В файле конфигурации необходимо включить модули mod_headers.c и mod_expires.c, убрав комментарии с фрагмента кода

и добавить в файл .htaccess фрагмент кода

Если сервером является Internet Information Services (IIS) 6.0, то кэширование можно запретить только имея доступ непосредственно к интерфейсу сервера. Сделать это возможно во вкладке «Заголовки HTTP» (HTTP Headers) в настройках сервера.

Рис.6 Запрет кэширования на сервере IIS 6.0

На рис. 6 приведен пример запрета кэширования посредством передачи заголовков «Cache-Control: no-cache, no-store, must-revalidate, max-age=0» для страниц сайта. Для настройки заголовка «Expires» нужно включить «Установить срок действия содержимого» (Enable content expiration) и «истекает немедленно» (Expires immediate).

Минусы запрета кэширования

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

Заключение

Своевременное получение информации играет значимую роль как для посетителей сайта, так и для их владельцев. Поэтому владельцам веб-ресурсов нужно тщательно анализировать заголовки, которые отдаются их серверами. Запрет кэширования является важной настройкой, которая позволяет посетителям всегда получать только реальную информацию с вашего сайта. Сейчас на большинстве интернет-ресурсов отдаются заголовки «Expires» и «Last-Modified», которые не только не запрещают кэширование, но и возможно способны препятствовать нормальной индексации сайта поисковыми роботами.


(Голосов: 1, Рейтинг: 5)
Читайте нас в Telegram - digital_bar

Есть о чем рассказать? Тогда присылайте свои материалы Даше Калинской


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Игорь
    больше года назад
    Думаю перед тем как отменять кеширование, нужно посмотреть на аудиторию ресурса, в аналитике и на виды соединений, какими они пользуются. Бывает, что большинство посетителей используют медленное соединение и в этом случае мы сделаем неудобным использование ресурса для большой части нашей аудитории.
    И второе, если информация на страницах не меняется, к примеру статьи в блоге, то почему бы из не кешировать?
    ИМХО довольно спорная тема.
    -
    0
    +
    Ответить
  • Петя и Волк
    больше года назад
    только no-store работает
    -
    0
    +
    Ответить
  • Дмитрий Севальнев
    105
    комментариев
    0
    читателей
    Дмитрий Севальнев
    больше года назад
    >> Сейчас на большинстве интернет-ресурсов отдаются заголовки «Expires» и «Last-Modified»

    Да ну, бросьте, это не так =)
    -
    0
    +
    Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Google Data Studio: делаем красивые отчеты по контекстной рекламе для клиентов
Светлана Зубрицкая
1
комментарий
0
читателей
Полный профиль
Светлана Зубрицкая - Нужно убрать пробелы между строк и заменить кавычки на вот такие "
#SEOnews14: мы празднуем – вы получаете подарки!
Rizat Sundetov
1
комментарий
0
читателей
Полный профиль
Rizat Sundetov - 14
Как ускорить сайт на WordPress, чтобы получить 100/100 в Google PageSpeed Insights
Георгий
1
комментарий
0
читателей
Полный профиль
Георгий - Все что рекомендуется в этой статье есть у w.tools. Ни разу не пожалел что подключился. Своя CDN сеть, кеш статики и динамики, минификация js\css и кешируемого html, оптимизация всех типов картинок и еще куча всего полезного. Сайт летает и я не знаю проблем. Могу рекомендовать от души.
Война с дубликатами. Как нужно и как не нужно канонизировать URL
Ann Yaroshenko
5
комментариев
0
читателей
Полный профиль
Ann Yaroshenko - Дмитрий, добрый день! Если вы проставили на странице с автозапчастями rel=canonical ( а я вижу в коде, что не проставили) или в HTTP хедере, то бот, как правило: выберит ту страницу главной, которую вы указали в rel=canonical ссылке. Eсли же вы этого не сделали, то бот сам выберит оригинал (алгоритмы, по которым бот это делает, скрыты Googl-ом)
«Аудит, чтобы ты заплакала…», или Что делать, когда получил сторонний аудит сайта
TehotdelSamara@gmail.com
4
комментария
0
читателей
Полный профиль
TehotdelSamara@gmail.com - Артур! Задели своим комментарием "за живое") Абсолютно,... целиком.... и полностью согласны с вами! А именно, с тем, что продажи клиента зависят в первую очередь от клиента, перечисленных вами выше и других факторов! А ещё с тем, что чистое SEO в классическом его понимании зачастую уже не даёт результата в виде роста продаж. Если хотим увеличить продажи - нужно бить по всем фронтам, SEO - только один из них, об этом клиент должен знать и быть предупреждён... Касательно нашей рекомендации смотреть на эффективность по тому, увеличилось ли число и качество заказов или нет - в контексте данной статьи говорится о том, что SEO бывает разное. По большому счёту, результат SEO — это именно привлекаемый поисковый трафик. И этот трафик может быть качественным, целевым или нет. Кроме того, трафик должен расти. Мы говорим о том, что если специалист хорошо проработал семантику, изучил бизнес клиента, исключил фразы с околонулевым спросом и проч., то трафик должен быть целевым, растущим, что значит рост обращений в отдел продаж клиента !при условии! , что само предложение и сайт располагают к тому, чтобы обратиться в отдел продаж клиента. Действительно, современное SEO предполагает учёт значительного количества факторов, в том числе и коммерческих. Без этого и трафика зачастую не будет. Нужно доносить всё это до клиента, включать подобные работы в стоимость по SEO или отдельно. А с "хочу все подряд за 25к в месяц" мы сталкиваемся тоже. Тут только пояснять и подсказывать, давать рекомендации заранее, чтобы клиент заранее был предупреждён о том, что ему требуется сделать параллельно с нашими работами по SEO. И в итоге вся эта деятельность должна привести к росту целевого трафика как на сайт, так и в отдел продаж.
BDD 2019: Как перестать убивать время на сбор и обработку тонны данных для SEO-аудита
Feth
1
комментарий
0
читателей
Полный профиль
Feth - Тот момент, когда от статьи в интернете получаешь больше полезных знаний и навыков, чем от своего начальства. По статьям нетпиковцев можно учебник про SEO уже сшивать, ребята молодцы. Спасибо, что делитесь информацией.
Как вывести сайт в ТОП 10 Google в 2019 году
Анна Макарова
356
комментариев
0
читателей
Полный профиль
Анна Макарова - Сергей, в нашей отрасли много заимствований из английского, иногда с ними быстрее, проще .Но будем стараться ))
Как улучшить репутацию сайта недвижимости с помощью крауд-маркетинга
Евгений
2
комментария
0
читателей
Полный профиль
Евгений - а у вас какое впечатление от статьи?
Как построить качественный ссылочный профиль на основе конкурентов
Ирина
7
комментариев
0
читателей
Полный профиль
Ирина - Давно сотрудничаю с megaindex.com и считаю данный сервис одним из лучших в сео сегменте рунета да и не только рунета. Пользуюсь их инструментами для аналитики своих работ и выявлению своих и чужих ошибок. Да и ссылочный профиль, как и говорится в данной статье сделать гораздо проще и правильней при помощи как раз мегаиндекса. Добавлю еще что инструмент для поиска конкурентов у мегаиндекса очень удобный и простой в применении.
Как я пытался купить CRM-систему, но мне ее поленились продать
Kristina
1
комментарий
0
читателей
Полный профиль
Kristina - Очень рекомендую CRM-систему польской фирмы Firmao. Все функции настраиваются в соответствии с индивидуальным потребностям компании! Советую попробовать бесплатную демо-версию, чтобы попробовать все необходимые функции, без лишних кнопок и траты дополнительных финансов! :) Сайт: firmao.ru/info
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
356
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
137
Комментариев
121
Комментариев
105
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
71
Комментариев
67
Комментариев
60
Комментариев
59
Комментариев
57
Комментариев
55

Отправьте отзыв!
Отправьте отзыв!