For those who have optimized a website using recommendations from Google PageSpeed Insights and ran into the issue of being unable to cache JavaScript scripts from third-party websites.
In essence, this is not such an important optimization metric. It is like moving CSS and JS elements from the site header to the footer, even though Google itself has issues with this item 🙂
Still, you or your clients may want to optimize the caching of third-party scripts. Or perhaps you want to see a nice number in the analyzer counter, especially since optimization will only take a few minutes.
What we will cover today:
Browser cache for your own assets
First, let’s set up caching for our own scripts. For this example, let’s look at the blog Devaka.ru (at the time of writing)
- https://devaka.ru/assets/copyright.min.js (no expiration date specified)
- https://devaka.ru/assets/i/566.jpg (no expiration date specified)
- https://devaka.ru/assets/i/icons.png (no expiration date specified)
- https://devaka.ru/assets/i/postcomm-left.png (no expiration date specified)
- https://devaka.ru/assets/i/postcomm-right.png (no expiration date specified)
To fix this issue, open the .htaccess file and add this code at the very bottom:
# сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
# кеш браузера
<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 1 days"
# Включаем кэширование изображений и флэш на месяц
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/jpeg "access plus 4 weeks"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/gif "access plus 43829 minutes"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
# Включаем кэширование css, javascript и текстовых файлоф на одну неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
# Включаем кэширование html и htm файлов на один день
ExpiresByType text/html "access plus 43200 seconds"
# Включаем кэширование xml файлов на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
# Нестандартные шрифты сайта
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
</ifModule>
After that, you can test your website in the Page Speed tool. If everything is correct, only links to Yandex.Metrica, analytics, social networks, and so on should remain.
If there are links to unknown domains, your site may have been hacked and malicious scripts inserted (redirects, subscriptions, etc.). To prevent this from happening again, remove suspicious code from the template.
Examples of third-party scripts
If you completed the first step correctly, you should see a list similar to this:
Use browser cache for the following resources
- https://apis.google.com/js/api.js (30 minutes)
- https://apis.google.com/js/platform.js (30 minutes)
- https://mc.yandex.ru/metrika/watch.js (60 minutes)
- http://www.google-analytics.com/analytics.js (2 hours)
- http://code.jivosite.com/script/widget/NuT1gBLsC6 (no expiration date specified)
- https://static.doubleclick.net/instream/ad_status.js (15 minutes)
- https://connect.facebook.net/ru_RU/all.js (20 minutes)
- https://an.yandex.ru/system/context.js (60 minutes)
- https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js (60 minutes)
- https://pagead2.googlesyndication.com/pagead/osd.js (60 minutes)
- https://disqus.com/next/config.js (60 seconds)
- And so on.
You may only have a few URLs for Metrica and analytics, for example, but that is not important. The solution is the same for all of them.
Cache for third-party assets
Originally, I wanted to write an article about this point only, but I expect there will be many questions. Now, to the point.
We cannot affect the cache duration of a third-party website, but we can do it within our own website. The most logical approach here is to automatically download the latest Metrica, analytics, and other scripts to your website using cron (the script is included).
Let’s go through it step by step.
Step 1. Copy the list of all scripts shown by Google PageSpeed into a text editor, or copy them directly from the browser.
Step 2. Create a file with the php extension on your hosting and paste the following code into it:
promoTools instead of manual workForty-four generators, converters, and checkers—all running in your browser.View all
<?php
function downloadJs($file_url, $save_to)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
}
// Указываем URL, затем папку от корня сайта и имя файла с расширением.
// Проверьте чтобы на папке были права на запись 777/755
// Метрика
downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath("./js") . '/watch.js');
// Google Analytics
downloadJs('http://www.google-analytics.com/analytics.js', realpath("./js") . '/analytics.js');
// Для скриптов без расширения
downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath("./js") . '/NuT1gBLsC6');
?>
Note the function call:
There are 3 in the code as examples, but you can create as many as needed. Just copy and paste them below, or remove the unnecessary ones.
Change 3 values in this line:

1. The script that will be downloaded to your website
2. The path where the file will be saved:
In my case, this is the js folder, meaning the exact path to it will be vasilenko.info/js/ (you need to create the folder yourself and grant it CHMOD write permissions)
3. The script name. If it has the .js extension, include it. If it has no extension or a different one, do everything as in the example above. Make sure there are no files with identical names.
Step 3. Upload the edited file to the server
Then open the direct link, for example https://vasilenko.info/downloadjs.php, if you did everything correctly, the required file/files will be in the JS folder (or the folder you specified in the file).

Step 4. Add the file to cron for automatic file updates
To avoid services working incorrectly if they make changes to their scripts, cron will automatically access and update them on your server.
Open your hosting control panel, select the CRON tab, enter the command, and set the schedule to once an hour, once a day, or any other interval.
wget -q -O - /dev/null https://vasilenko.info/downloadjs.php >/dev/null 2>&1
Do not forget to change the URL. Your command syntax may also differ, so check the cron command examples in your hosting documentation or contact technical support.
Step 5. Change the JS path in the counter or script
If the path in the counter was https://mc.yandex.ru/metrika/watch.js, replace it with a path within your website, for example https://vasilenko.info/js/watch.js
That’s it. You should no longer see browser cache configuration messages in the PageSpeed Insights list.
If you have questions, ask them in the comments!
Comments (98)
The discussion was moved with the post: the dates and authors are the same as before. New comments aren't accepted on archived posts.
Сергей FreeThinker
Ох не думаю я, что геморрой с дополнительной нагрузкой на сервер и подключением крона стоит того, чтобы скачивать себе сторонние скрипты. Тем более для большинства из них время жизни указано. Не спроста же сам Google для своих скриптов ставит время жизни 30-60 минут — значит так надо.
А внутри сайта время жизни можно указать лишь добавив в конце url знак вопроса с любым параметром — хоть внутри css, хоть в блоке вызова. Например:
icons.png?0
Is.js?o
Alex V author
На счет нагрузки, только что с примера выше взял все скрипты (11 штук) и отследил программно время выполнения php скрипта, результат: Скрипт выполнялся 2.4809 сек. От того что cron будет «кушать» 2 секунды раз в день, ничего страшного не будет.
Тем более у большинства скриптов явно меньше, если это коммерция, то только метрика, аналитика +/- пару скриптов. В этом случаи скрипт выполнялся за 0.5981 сек.
> для своих скриптов ставит время жизни 30-60 минут
Можно и крон ставить на столько 🙂 Но, я ставлю на раз в сутки, полет нормальный.
> А внутри сайта время жизни можно указать лишь добавив в конце url знак вопроса с любым параметром
Вот этого не знал, спасибо. Правда если устанавливаешь новый плагин, то сразу нужно вносить правку в вызов скрипта, легче раз код прописать в htaccess и спать спокойно.
Сергей FreeThinker
ОК, напишу по-другому: если уж такие асы оптимизации, как wikimart, ozon, да и сам Google (проверь хотя бы https://www.google.com/webmasters/ или тот же https://developers.google.com/speed/pagespeed/insights/ !) не парятся по поводу времени жизни (читай «кеша») сторонних источников, то простым смертным тем более не стоит заморачиваться. 🙂
Alex V author
Так и есть, это как пузомерки на сайтах, вроде не кому сейчас не нужны, но все приятно когда они растут. Так и тут с анализом после проверки в зеленой зоне.
Yura Yevtikhov
Здравствуйте! Сделал всё, как описано выше. В папке /js создаются файлы скриптов (папка-755, скрипты-644), но они пустые, а при вызове downloadjs.php выдает ошибку «Warning: file_get_contents(https://www.google-analytics.com/analytics.js): failed to open stream: Connection timed out in /home/uХХХХ/public_html/downloadjs.php on line 5″. Может потому, что сайт на https?
Буду благодарен за ответ, поскольку php не владею.
Yura Yevtikhov
Разобрался. Нужно указывать адрес https://google-analytics.com/analytics.js
Alex V author
Видимо у себя что-то поменяли, раньше с www работало.
Yura Yevtikhov
Но появилась новая фишка: «Включите сжатие для следующих ресурсов, чтобы уменьшить объем передаваемых данных на 15 КБ (58 %).
Сжатие страницы https://XXXXXXXXX.XXX/js/analytics.js уменьшит ее размер на 15 КБ (58 %).», хотя на сайте и сервере сжатие включено. Возможно при скачивании можно указать сжатие?
ONE
Спасибо большое! Очень годная статья!
kirpich
Для тех, у кого WordPress 4+ можно в functions.php прописать такой код, который будет качать скрипты метрики и гугл аналитикс на Ваш сайт. Плюс этого варианта в том, что не нужно трогать крон на хостинге, т.к. работать будет встроенный в WordPress крон. Т.е. и сайт перенести будет проще на другой хост и другие важные мелочи приятные.
Т.е. теперь скрипты будут качаться раз в сутки и они будут у Вас всегда в актуальном состоянии.
Не забудьте, что в html-коде нужно изменить адрес с yandex.ru на ваш_домен.ru/js_s/watch.js
Для гугл аналитикса всё точно также будет, нужно поменять пути.
Делов, на самом деле, 10-15 минут.
—-
А также весьма полезным будет дерегистрировать все js-скрипты, а потом заново их регистрировать и сувать именно в подвал, это создаст у посетителя ощущение того, то сайт быстро грузится.
Первым из скриптов будет jQuery, а потом него ПОСЛЕДОВАТЕЛЬНО будут подгружаться остальные скрипты по важности по убыванию.
Скажу так. Страница моего сайта коммерческого открывается за 800 миллисекунд.
Та же страница, но на мобильной версии, генерируется иногда даже за 500 миллисекунд.
По Google PageSpeed Insights набирает 100/100 баллов по всем показателям.
Имейте в виду, что этот форум обрезал ссылки и добавил в конце ссылки апостроф ‘
Поэтому прежде чем запускать скрипт, поправьте это всё
Всего всем хорошего.
Alex V author
Спасибо, хороший способ!
Crypto Rotator
Подскажи, через какое время после установки кода, закачает скрипты, а то страницу периодически обновляю — пустая папка для закачки
kirpich
Во-первых, вряд ли скачает, если ты ЗАЛОГИНЕН в админке.
Во-вторых, скрипт настроен на раз в сутки.
Crypto Rotator
ну-ну, какая разница, кто обновит станицу ))) не работает код твой короче
kirpich
Не работает? Ок. Я удалил код, чтобы никто не наткнулся на него, он весь такой неправильный и только у меня на двух сайтах работает.
Crypto Rotator
ну вообще-то давно уже есть куча плагинов, которые выполняют PHP код повремени, имитируя Cron, твой код не работает в самой последней версии WordPress. версия PHP 5.6
Pavel Mankov
Здравствуйте!
Перенёс скрипт к себе на сайт (https://mc.yandex.ru/metrika/watch.js). Теперь инспектор кода показывает кучу ошибок. Видимо в скрипте есть запросы к файлам, которых нет у меня на сайте.
Aliexpress на русском
Не стоит так делать, во первых все кешируется хоть и гугл ругается, во вторых будут проблемы со статистикой. А в третьих гугл ругает только на то что малое время кеширования да и только.
Александр Чумаков
всем привет предлагаю бесплатный тренинг открытия магазина
прибыль 100000 р в месяц https://goo.gl/r5i8oV
Роман Крамар
Так понимаю, Ваш код с этим поможет
Объяснение:
Используйте кеш браузера для следующих ресурсов: (developers.google.com/speed/docs/insights/L…)
toursector.org.ua/wp-content/gallery/foto_m… (не указан срок действия)
toursector.org.ua/wp-content/gallery/foto_m… (не указан срок действия)
toursector.org.ua/wp-content/gallery/foto_m… (не указан срок действия)
Роман Крамар
И такого 172 штуки, все jpg
Роман Крамар
Почему спрашиваю. У вас в описании кода это «# сжатие text, html, javascript, css, xml:» а вот jpg, png код сожмет )
Alex V author
Не сжимает, а кеширует. Для картинок есть правило:
ExpiresByType image/jpeg «access plus 4 weeks»
ExpiresByType image/png «access plus 30 days»
Если у вас не работает этот код, обратитесь в службу поддержки хостинга
Сергей Грицков
А если в скрипте используется относительная адресация на файлы размещённые на том же сервере? После копирования скрипта себе на сервер он ведь не сможет найти те файлы, так как уже будет искать их у нас, а не на том сервере с которого его скопировали.
Я конечно не силён в работе с js-скриптами, но разве я не прав?
Рома Шкабко
Если кому нужно, можете подключать эти JS (обновляются каждый день)
https://static.flamix.info/cron/js/analytics.js (гугл)
https://static.flamix.info/cron/js/watch.js (яндекс)
На своем сайте сделал, добился 100% оптимизации — https://ru.flamix.software/
Может оно и не надо, но мне приятно 🙂
Galina Rampova
спасибо!!! яндекс с гуглом ушли. а живосайт продолжает писать 24 часа и гугл pagespeed на это продолжает ругаться. до этого на живосайт ругался тк вообще не было срока действия. сейас 24 часа. подскажите как можно увеличить, чтобы ошибка совсем ушла?
Alex V author
Так же само поставьте скрипт jivosite на крон
Galina Rampova
так и сделал :-))) но гугл ругается именно на файл сохраненый кроном на моем сайте.
Пишет, что ему 24 или 48 часов осталось всего.
Alex V author
Настройки в htaccess эти прописаны?
ExpiresByType text/javascript «access plus 604800 seconds»
ExpiresByType application/javascript «access plus 604800 seconds»
ExpiresByType application/x-javascript «access plus 604800 seconds»
Galina Rampova
да, прописан. но именно этот js от живосайта никак не поддается почему-то 🙁
Рома Шкабко
Ссылки также доступны и по https
Sergey Lidoff
отличная статейка)
Александр Шмаков
Здравствуйте Александр!
Спасибо за столь логичное решение. Ваша статья очень помогла мне достичь 100 из 100 в Google Page Speed https://seovedenie.ru/
Вилы Выкидные
Не нужно ничего скачивать никакими кронами, просто отшиваем юзерагента PageSpeed Insights в области кода, где у нас аналитика установлена, ггы..
тут вставляем код гугл аналитики и (или) яндекс метрики
радуемся, аве мне 🙂
Антон Кулявец
Спасибо большое, супер расписано. Но есть проблема.
https://vk.com/fonts/opensans300.woff (не указан срок действия)
https://vk.com/fonts/opensans400.woff (не указан срок действия)
https://vk.com/fonts/opensans600.woff (не указан срок действия)
https://vk.com/fonts/opensans700.woff (не указан срок действия)
А в скрипте только путь к js, как с этим бороться?
Alex V author
Что за скрипт? Нужно посмотреть, отпишите через форму контактов
mozilaFFF
Были 2 ошибки
https://mc.yandex.ru/metrika/watch.js
https://static.doubleclick.net/instream/ad_status.js
Все сделал по инструкции, в футере, где подключал метрику заменил путь к своему сайту и ошибка исчезла.
Но никак не пойму где и как поменять путь, чтоб исчезла вторая ошибка. Скрипт создается, но его сайт не подхватывает, как я понимаю и берет данные по старому пути.
P.S. на сайте стоит All in one seo pack вроде в нем чет похожее нашел (но это не точно)
Alex V author
Если грешите на плагин какой-то, отключите его и посмотрите исчезла ошибка или нет. Как обнаружите плагин проблемный, уже в коде копайте.
Дмитрий Давыдов
Привет! Классная статья, с удовольствием прочитал) Перенес тут вчера файлы в облачное хранилище, установил заголовки, а гугл все равно ругается:
developers.google.com/speed/pagespeed/insig…
Но сторонний тест говорит, что с заголовками все хорошо:
bertal.ru/index.php?…
И кому верить?)
Денис Михайлович
Супер скрипт!
У меня jivo не загружается, ошибку выдает Uncaught Error: Failed to evaluate the widgetId or configHost
Как ты его победил?
Григорий Ефремов
Добрый день. Не появляются файлы в папке /js и куда то пропал jivosite с сайта. Вроде все правильно делал
Григорий Ефремов
Хотя Гугл Пэйдж спид на файлы ругаться перестал. Вот не знаю, теперь работает ли вообще аналтика…
Андрей Сиротин
Большое спасибо за отличную статью. Небольшой вопросик.
Как быть с такого рода кодом:
На сайте выведена карта google
maps.googleapis.com/maps/api/js?…
Как именно здесь нужно поступить?
big_jacky
Похоже действительно на PHP 5.6 не работает. Пол года над у себя запускал — работало. Сейчас хостинг перешёл на новую версию РНР — перестало работать.
Administrator
Александр, сталкивались ли лично с закачкой на сайт JS скриптов VK и FB?
В первую очередь интересует FB. Скорее всего этот номер с соц сетями не пройдёт.
В первую очередь интересует https://connect.facebook.net/en_US/sdk.js
Olya
Добрый день. Не работает фейсбук и незнаю как гугл карты апи вписать. Есть у кого решеные?
Ренат Зайдуллин
Спасибо! Отличная статья, пригодилась. Единственно не разобрался с кодом JivoSite — на хостинг он скачивается, но у него нет расширения. Какую конструкцию для него правильно написать в htaccess (что-то вроде ExpiresByType или еще как). А то теперь на него гугл ругаться стал
… /nrDybLg3YO (24 часа) И кстати да, на сайте тоже отображаться консультант перестал.
Ренат Зайдуллин
И для яндекс.карт тоже не разобрался 🙁
api-maps.yandex.ru/2.0/?… (5 минут)
Alex
Откройте консоль и смотрите на ошибки там
Yan Inoy
Выдаёт 403 ошибку You don’t have permission to access downloadjs.php on this server. Наверное я что-то не так сделал?
Сергей Федотов
Все отлично работает, но Jivosite отказывается работать.
Выдает —
Uncaught Error: Failed to evaluate the widgetId or configHost
Стоит какая-то защита от запуска js на стороне сервера.
Павел Свирский
Спасибо! Ценная инфа, пригодилась.
Сделал кэш браузера по Вашему методу через htaccess только для своих картинок (jpg, gif, png) . Остальное (скрипты, css , сторонние скрипты) не трогал. Этого уже оказалось более чем достаточно. Скорость поднялась, PageSpeed Insights теперь показывает в пределах 86…93 из 100 (было 70…78 из 100).
Единственное, не совсем понял. Вот если у меня была картинка на странице с именем например image1.jpg , кэш браузера у нас на 30 дней сохраняется, а я на следующий день эту картинку видоизменил (т.е. под image1.jpg у меня уже другой рисунок). Что тогда произойдет у пользователей , которые зашли вчера и автоматом закешировали себе image1.jpg (старое изображение), когда они зайдут завтра — что они увидят — старое изображение или новое ?
Пробовал у себя — ГуглХром упорно показывает старую картинку , сколько ни нажимай кнопку «обновить» , а Яндекс-браузер сам сразу обновил картинку. Не понимаю, от чего это зависит.
Может, нет смысла кешировать на 30 дней, а ставить 2 или 3 дня (если картинки часто меняются на сайте под тем же именем) ?
Angry Bird
Спасибо за ценную информацию! Этот Гугл со своими требованиями уже достал, честно говоря….
Дмитрий Кандауров
2)Ставим файл на крон для автоматического обновления файлов. Совсем не понятно)
Julia Randall
Спасибо, очень пригодилось!
Alexandr Ostryanin
спасибо, код для .htaccess очень помог.
Илья
Добрый день!
Вторая часть почему-то не работает.
Создал каталог oblomow.ru/js/ и положил в него файл dw.php
Содержание файла как у вас:
Обращаюсь к этому файлу и ничего не происходит.
Права у каталога и у файла 777
Подскажите, пожалуйста, чём может быть дело?
Роман
Доброго времени суток!
Делаю все так, как описано про файл .htaccess
Сначала все норм. PageSpeed перестает ругаться на то, что не указан срок действия и т.д.., но уже примерно через сутки двое вновь делаю проверку в PSpeed — история повторяется!
Не могу понять почему так? Причем преимущественно для изображений.
Сергей Морозов
не работает
Nazerke Shaldanbaeva
Все сделала как описано про кеширование сторонних ресурсов, но Pspeed все равно выдает на них рекомендации.
Nazerke Shaldanbaeva
В самом скрипте менять ничего не надо?
Игорь Рекуненко
А у Вас что, изображения берутся с чужих сайтов?
Игорь Рекуненко
работает. Вы что-то не так сделали или не сделали 🙂
Игорь Рекуненко
Ссылки на скрипты сменили на локальные?
В самом скрипте ничего менять не нужно, нужно сменить адреса к скриптам, которые показывает PageSpeed
Nazerke Shaldanbaeva
Да, ссылки изменила, до этого другой способ пробовала, тоже не работал, странно все 🙁
Игорь Рекуненко
Напишите мне в ФБ, через часик-полтора буду за компом, посмотрим вместе
Игорь Рекуненко
У меня все получилось сделать, остался один единственный скрипт, который грузится по результату работы другого скрипта.
Nazerke Shaldanbaeva
Ок)
Игорь Рекуненко
Вопрос для знатоков: не могу настроить крон. Просто не отрабатывает 🙁
Стас
А как заменить путь для сайтов на вордпресс? если оно генерится с помощью плагинов
Sergiy Antonyuk
Все получилось!
Огромное спасибо.
Чувствуется, что статью писал ПРОФИ-ПРАКТИК 🙂
Владислав Золотарёв
При настроенном кэшировании, Вы увидите старую картинку, пока срок кэширования не истекёт. В Яндекс браузере у Вас видимо не включена поддержка кэширования. Гугл минимальным требует срок кэширования 1 неделю, ставьте её, если не уверены, что можно ставить более длительный срок.
Владислав Золотарёв
Почему не использовать код, как у меня, в чём отличие Вашего кода?
SetOutputFilter DEFLATE
ExpiresActive on
ExpiresDefault «access plus 1 week»
Header set Cache-Control «private, must-revalidate»
Владислав Золотарёв
так какой смысл, если они будут всё равно со стороннего веб-адреса? )
Vladyslav Tarasenko
поставил, как велела инструкция, после проверки через firebug, вижу, что google analytics блокируется, и что при проверке аудита сайта, не находится google метрика.
Rina Savran
Спасибо! Отличная статья, работает
Little Pony
Да, но мне кажется что это не самое главное для Гугла
Hakan Pehlivan
Вообщем не работает Используйте кеш браузера и сжатие в google page speed проверял.
Файл .htaccess выглядит следующим образом:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault «access plus 5 seconds»
#кэшировать флэш и изображения на месяц
ExpiresByType image/x-icon «access plus 2592000 seconds»
ExpiresByType image/jpeg «access plus 2592000 seconds»
ExpiresByType image/png «access plus 2592000 seconds»
ExpiresByType image/gif «access plus 2592000 seconds»
ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds»
#кэшировать css, javascript и текстовые файлы на одну неделю
ExpiresByType text/css «access plus 604800 seconds»
ExpiresByType text/javascript «access plus 604800 seconds»
ExpiresByType application/javascript «access plus 604800 seconds»
ExpiresByType application/x-javascript «access plus 604800 seconds»
#кэшировать html и htm файлы на один день
ExpiresByType text/html «access plus 43200 seconds»
#кэшировать xml файлы на десять минут
ExpiresByType application/xhtml+xml «access plus 600 seconds»
AddOutputFilterByType DEFLATE text/plain text/html
AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/xml-dtd
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml image/svg+xml
AddOutputFilterByType DEFLATE text/css text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE font/otf font/opentype application/font-otf application/x-font-otf
AddOutputFilterByType DEFLATE font/ttf font/truetype application/font-ttf application/x-font-ttf
Как исправить?
Max Sokol
Та же проблема. Все сработало, кроме
https://static.doubleclick.net/instream/ad_status.js
В этом файле всего одна строчка
window.google_ad_status = 1;
Подозреваю что путь создается в каком-то другом js, но не смог пока найти.
vicsk
Здравствуйте, при запросе файла downloadjs.php выдает 403 Forbidden, права какие только не устанавливал
Gran Torino
автор забыл указать, что использование файла htaccess актуально для серверов на Appache, для других это не будет работать
AdminAndrey
бредовый парсер, скопипастили а сами не знают как работает
«»
вот простейший парсер, вешайте на крон и все ок
Михаил Мелихов
А как прописать на ngnix кеширование файла «NuT1gBLsC6» какое указать расширение?
сейчас стоит на расширения:
location ….
expires max….
Artem Pavliienko
А как закешировать гугл карту? PageSpeed Insights выдает ссылки, например: google.com/maps/vt?…
Владимир
Совет с размещением гугл скриптов (аналитики той же) у себя на сайте сомнителен. Если проверить, к примеру свой сайт сервисом https://tools.pingdom.com/#!/cxNdPH/https://comatele.com то видно, что скорость загрузки именно таких скриптов в разы выше, чем со своего сервера, плюс преимущество уменьшения запросов (к своему серверу). А так получаем, что в угоду мифическому показателю скорости от Google PageSpeed мы теряем реальную скорость загрузки. Вопрос что лучше? Пока без ответа
admirus
А у меня требует картинки (24 часа).
Andrew
Сделал всё. Но как только указал путь к js у меня перестала работать карта 2гис + гугл аналитик и Я.метрика
Yerokhov Konstantin
Автору следует обновить следующий код для загрузки по протоколу https:
Александр
а нужно ли обновлять эти js файлы? Может пусть так будут? Иногда просто самому в ручную загружать
Crystal Crystal
Если был путь в счетчике https://mc.yandex.ru/metrika/watch.js, то заменяем его на путь внутри сайта, например https://vasilenko.info/js/watch.js
А можно относительный путь писать? есть ли смысл?
Ivan Pruchai
Рискуете получить слабую работоспособность + обзавестись лишней работой, которую система и так может делать самостоятельно.
Артем Рашин
Никак, используйте https://maps.googleapis.com/maps/api/js. Он прорисовывает карту в нужный вам блок после загрузки html. А вот сам скрипт уже скачиваете к себе как автор написал и кэшируете. Ответ поздний конечно, но может кому пригодится.
RomanMorenets
Для jivosite данный способ не работает. Я подозреваю, что идёт проверка со стороны сервера разработчика на каком хосте запускается скрипт. Если на стороннем, то выполнение блокируется(
Анатолий Коновалов
жуткое приложение
Анатолий Коновалов
все что с ней можно сделать — вставить в самый низ, или написать свою форму, не делаю, потому как уже полгода собираемся поменять дизайн сайта
Анатолий Коновалов
после всевозможных блокировок уже актуально….
Sergey Matunin
Поддерживаю, попробовал, поглядел на реальную скорость отработки — вернул родные урлы файликов, переносить их к себе — плохая идея.
Али Профи
Как ни старайся, а 100 из ста не получишь, если только так поломать свой сайт, что там почти ничего работать не будет. Скорость важна, но не настолько, чтобы убиваться из-за каждого скрипта.