Браузерное или пользовательское кеширование

123 4
AM
На сайте с 04.09.2009
Offline
47
3392

Приветствую, друзья!

Кто и как решает задачу браузерного кеширования?

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

Даже если сервер не выдает дату последней модификации документа (last-modified), ваш сайт будет проиндексирован. Однако в этом случае следует учитывать следующее:
- в результатах поиска не будет показываться дата рядом со страницами вашего сайта;
- при сортировке по дате сайт не будет виден большинству пользователей;
- робот не сможет получить информацию о том, обновилась ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже.

Гугл в тестированиях скорости все время настаивает на необходимости настройки браузерного кеширования.

Я думаю, что не нужно забивать на отличную технологию, потому что она реально может экономить ресурсы сервера. Также нужно разобраться в настройках браузерного кеширования, поскольку Яндекс и Гугл обращают внимание на http-заголовки, связанные с браузерным кешированием. Да и обычный посетитель может не увидеть свежих публикаций из-за неправильной настройки пользовательского кеша. И зачем грузить сущность, которая не изменилась (особенно для мобильного трафика)?

Кто хочет подробно разобраться в этом вопросе — я написал статью. Там хоть и много букв, но рекомендую вникнуть. Мои эксперименты показали, что мало кто серьезно задумывался над этой темой.

***

Много сайтов работает на WordPress и с клиентским кешированием html-файлов там полная беда. Я так и не нашел ни одного готового решения (плагина), адекватно работающего с северными кешами.

Друзья, есть те, кто как-то решил задачу? Знаю, что есть, сам видел такие сайты :) Хорошо бы решить задачу для виртуального хостинга, когда доступа к настройкам сервера нет.

Также часто хостеры странным образом настраивают http-заголовки для изображений, листов стилей и т.д. Нужно быть осведомленным в этой теме и вооруженным. Иначе проблем не избежать.

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#1

Статику кеширую заголовками Expires\Cache-Control с максимальным сроком действия кеша - 1 год

Валидатор кеша - ETag

Динамику кеширую так-же парой Expires\Cache-Control на срок от 0 до 48 часов в зависимости от настроек.

Валидатором выступает Last-Modified.

Статика (JS\CSS и т.д.) и динамика (страницы сайта) минифицируется, архивируется и кешируется на сервере (файлы или мемкеш).

Использую именно пару Expires\Cache-Control потому что некоторые хостинги ведут себя неадекватно при отсутствии одного из этих заголовков.

A
На сайте с 19.07.2010
Offline
130
#2
AndreyMorkovin:
Кто хочет подробно разобраться в этом вопросе — я написал статью. Там хоть и много букв, но рекомендую вникнуть.

Лишний раз подтвердилось высказывание: "Чем больше слов, тем меньше смысла". :)

Кратко, апач:

ExpiresActive On
ExpiresByType image/jpg A604800
ExpiresByType image/jpeg A604800
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/x-icon A604800
ExpiresByType text/css A604800

nginx:

location ~ ^.+\.(jpg|jpeg|gif|png|ico|svg|woff|css|js)$ {
expires 30d;
}

Все. Цифры править по вкусу.

.............
SeVlad
На сайте с 03.11.2008
Offline
1609
#3
AndreyMorkovin:
я написал статью.

Так вот ради чего этот топик. :)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
D
На сайте с 14.01.2007
Offline
153
#4
SeVlad:
Так вот ради чего этот топик.

причем по полному феншую 🙄. и окружение тематичное и линк безанкорный. ляпота в общем.

и вроде топик создавался с одной очевидной целью, а прибьёшь - будешь тираном :)

L
На сайте с 07.12.2007
Offline
351
#5
AndreyMorkovin:
Много сайтов работает на WordPress и с клиентским кешированием html-файлов там полная беда.

Вся ваша "беда" надумана и высосана из пальца.

Кэшированием "статики"(html, стили, скрипты, картинки) испокон веков занимался веб-сервер, и он отлично с этим справляется.

У "статики" есть дата изменения файла - на её основе веб-сервер сам грамотно отдаёт и Etag и LastModified. Apache умеет это ещё с первых версий 1.3.х

L
На сайте с 10.02.2015
Offline
260
#6

У меня и динамика отдает правильные заголовки. :)

AM
На сайте с 04.09.2009
Offline
47
#7

Хотелось бы конструктива.

>Вся ваша "беда" надумана и высосана из пальца.

>Кэшированием "статики"(html, стили, скрипты, картинки) испокон веков занимался веб-сервер, и он отлично с этим справляется.

Повторюсь. Проблема очевидно возникает на WordPress с html-файлами. У них нет заголовка Last-Modified. А он должен быть.

И не стоит относить html к статике.

>причем по полному феншую . и окружение тематичное и линк безанкорный. ляпота в общем.

У Вас наблюдается профессиональная деформация личности. Это просто топик, в котором я хотел обсудить с сообществом свое «исследование».

>Лишний раз подтвердилось высказывание: "Чем больше слов, тем меньше смысла".

>Кратко, апач:

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

Как предложенные Вами настройки помогут вывести корректный Last-Modified?

Спасибо Алексей Барыкин, livetv и частично admak, за адекват.

siv1987
На сайте с 02.04.2009
Offline
427
#8

Откуда у вп html файлы? Может быть чпу html, тогда следует употреблять правильное название и не вводить людей в заблуждения. У html динамических страниц, также как и остальных динамических страниц с другим чпу форматом не обязательно должно быть настроено кеширование, потому что технически порой это довольно сложно сделать имея кучу динамического контента с редактированием, удалением и прочими функциями которые влияют на содержимое страницы. А о статике ввиде html файлов правильно сказала ladycharm - о ней заботится веб сервер как минимум он отдает last-modified.

Статью не читал, в двух словах что вы предлагаете для браузерного кеширования динамических страниц?

A
На сайте с 19.07.2010
Offline
130
#9
AndreyMorkovin:
Если бы Вы прочли статью, или хотя бы вникли в суть моего первого сообщения в топике, то поняли, что Ваш ответ вообще не в тему.
Как предложенные Вами настройки помогут вывести корректный Last-Modified?

Есть такой хороший заголовок как Expires. Когда он есть и его дата в "будующем", то браузер не смотрит на прочие заголовки типа: Last-Modifed и ETag.

Браузер просто берет контент из своего кеша, без всяких дополнительных запросов к серверу типа: If-Modified-Since и If-None-Match.

Погоняйте свой сайт на http://www.webpagetest.org/ с заголовком Expires и без него. (Смотреть на "повторную загрузку страницы")

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#10

А я кстати делаю вот так для кэша:

<IfModule mod_headers.c>

Header append Cache-Control "public"

# 30 дней

<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">

Header set Cache-Control "max-age=2592000, public"

</filesMatch>

# 30 дней

<filesMatch "\.(css|js)$">

Header set Cache-Control "max-age=2592000, public"

</filesMatch>

# 1 день

<filesMatch "\.(html|htm|php)$">

Header set Cache-Control "max-age=172800, private, must-revalidate"

</filesMatch>

</IfModule>

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий