Я стремлюсь достичь 100/100 на PageSpeed, и я почти на месте. Я пытаюсь найти хорошее решение для кеширования Google Analytics.
Вот сообщение, которое я получаю:
Использование кэширования в браузере Установка даты истечения или максимального срока действия в заголовках HTTP для статических ресурсов заставляет браузер загружать ранее загруженные ресурсы с локального диска, а не по сети. Используйте кэширование в браузере для следующих кэшируемых ресурсов: http://www.google-analytics.com/analytics.js (2 часа)
Единственное решение, которое я нашел, было с 2012 года, и я не думаю, что это хорошее решение. По сути, вы копируете код GA и размещаете его самостоятельно. Затем вы запускаете задание cron для повторной проверки Google один раз в день, чтобы получить последний код GA и заменить его.
http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
Что еще я могу сделать, чтобы достичь 100/100, используя Google Analytics?
Спасибо.
источник
Ответы:
Хорошо, если Google изменяет вам, вы можете обмануть Google назад:
Это пользовательский агент для pageSpeed:
Вы можете вставить условие, чтобы избежать предоставления сценария аналитики PageSpeed:
Очевидно, что это не принесет никаких реальных улучшений, но если ваша единственная задача - набрать 100/100 баллов, это сработает.
источник
if(navigator.userAgent.indexOf("Speed Insights") == -1) { /* analytics here */ }
{ }
в моем примере, наряду с любыми другими JS , что GA использует (например,ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview');
или любой другой )Существует подмножество js-библиотеки Google Analytics под названием ga-lite, которое вы можете кэшировать по своему усмотрению .
Библиотека использует открытый REST API Google Analytics для отправки данных отслеживания пользователей в Google. Вы можете прочитать больше в блоге о ga-lite .
Отказ от ответственности: я являюсь автором этой библиотеки. Я боролся с этой конкретной проблемой, и лучший результат, который я нашел, заключался в реализации этого решения.
источник
Вот действительно простое решение, использующее JS для базового отслеживания GA, которое также будет работать для краевых кэшей / прокси (это было преобразовано из комментария):
Примечание. Это скрипт GA по умолчанию. У вас могут быть другие
ga()
вызовы, и если это так, вам нужно будет всегда проверять пользовательский агент перед вызовомga()
, иначе это может привести к ошибке.источник
ga
как иga = function(){};
раньше, фрагментga();
кода молча проваливается при выполнении, так что вам не нужно проверять существование этой функции везде в вашем коде.Я бы не беспокоился об этом. Не размещайте его на своем собственном сервере, похоже, что это проблема с Google, но она хороша. Размещение файла на вашем собственном сервере создаст много новых проблем.
Вероятно, им нужен файл для вызова каждый раз, а не для получения его из кэша клиента, поскольку таким образом вы не будете считать посещения.
Если у вас есть проблема, чтобы чувствовать себя хорошо с этим, запустите URL-адрес Google Insights на самом Google Insights, посмеяться, расслабиться и продолжить свою работу.
источник
В документах Google они определили
pagespeed
фильтр, который будет загружать скрипт асинхронно:Вы можете найти документацию здесь: https://developers.google.com/speed/pagespeed/module/filter-make-google-analytics-async.
Одна вещь, которую нужно подчеркнуть, это то, что фильтр считается высоким риском. Из документов:
источник
varvy.com ( 100/100 Google page speed speed ) загружает код Google Analitycs, только если пользователь прокручивает страницу:
источник
Вы можете попробовать разместить analytics.js локально и обновить его содержимое с помощью сценария кэширования или вручную.
Файл js обновляется только несколько раз в год, и если вам не нужны какие-либо новые функции отслеживания, обновите его вручную.
https://developers.google.com/analytics/devguides/collection/analyticsjs/changelog
источник
храните localy analytics.js, но это не рекомендуется Google: https://support.google.com/analytics/answer/1032389?hl=ru
это не рекомендуется, потому что Google может обновлять сценарии, когда они хотят, поэтому просто сделайте сценарий, который загружает аналитический javascript каждую неделю, и у вас не будет проблем!
Кстати, это решение предотвращает блокировку скриптов Google Analytics рекламным блоком.
источник
Вы можете использовать прокси-скрипт Google Analytics через свой собственный сервер, сохранять его локально и автоматически обновлять файл каждый час, чтобы убедиться, что это всегда последняя версия от Google.
Я сделал это на нескольких сайтах сейчас, и все работает нормально.
Маршрут прокси-сервера Google Analytics в стеке NodeJS / MEAN
Вот как я реализовал это в своем блоге, который построен со стеком MEAN.
Метод действия Google Analytics Proxy в ASP.NET MVC
Вот как я реализовал это на других сайтах, созданных с помощью ASP.NET MVC.
Это CompressAttribute, используемый MVC ProxyController для сжатия Gzip
Обновлен скрипт Google Analytics
На стороне клиента я добавляю путь аналитики с текущей датой до часа, чтобы браузер не использовал кэшированную версию более часа назад.
источник
Для Nginx:
Затем измените путь https://www.google-analytics.com/analytics.js на https://yoursite.com/analytics.js.
источник
PHP
Добавьте это в ваш код HTML или PHP:
JavaScript
Это прекрасно работает с JavaScript:
источник
попробуйте это просто вставить, прежде чем
Пожалуйста, измените xx-xxxxxxx-x на ваш код, пожалуйста, проверьте реализацию здесь http://www.gee.web.id/2016/11/how-to-leverage-browser-caching-for-google-analitycs.html
источник
Google предостерегает от использования локальных копий скриптов аналитики. Однако, если вы делаете это, вы, вероятно, захотите использовать локальные копии плагинов и сценарий отладки.
Вторая проблема, связанная с агрессивным кэшированием, заключается в том, что вы будете получать хиты с кэшированных страниц, которые могли быть изменены или удалены с сайта.
источник
Чтобы решить эту проблему, вам нужно будет загрузить файл локально и запустить задание cron, чтобы продолжить обновление. Примечание: это не делает ваш сайт быстрее, поэтому лучше просто игнорировать его.
Однако в демонстрационных целях следуйте этому руководству: http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
источник
Это может сделать свое дело :)
источник
В зависимости от того, как вы используете данные Google Analytics, если вам нужна базовая информация (например, посещения, взаимодействия с пользовательским интерфейсом), вы можете вообще не включать analytics.js, но все же собирать данные в GA.
Одним из вариантов может быть использование протокола измерений в кэшированном сценарии. Google Analytics: обзор протокола измерений
Когда вы явно зададите метод транспорта для изображения, вы можете увидеть, как GA создает собственные маяки для изображений.
Вы можете создавать свои собственные запросы GET или POST с необходимой полезной нагрузкой.
Однако, если вам требуется более высокий уровень детализации, это, вероятно, не стоит ваших усилий.
источник
Вы можете настроить дистрибутив облачного фронта, который будет иметь www.google-analytics.com в качестве исходного сервера, и установить более длинный заголовок срока действия в настройках дистрибутива облачного фронта. Затем измените этот домен в фрагменте Google. Это предотвращает загрузку на вашем собственном сервере и необходимость постоянно обновлять файл в задании cron.
Это настройка и забудьте. Так что вы можете добавить уведомление об оплате в cloudfront на случай, если кто-то «скопирует» ваш фрагмент и украдет вашу пропускную способность ;-)
Изменить: я попробовал, и это не так просто, Cloudfront проходит через заголовок Cache-Control без простого способа удалить его
источник
Откройте файл https://www.google-analytics.com/analytics.js на новой вкладке, скопируйте весь код.
Теперь создайте папку в своем веб-каталоге, переименуйте ее в google-analytics.
Создайте текстовый файл в той же папке и вставьте весь код, который вы скопировали выше.
Переименуйте файл ga-local.js
Теперь измените URL-адрес, чтобы вызывать локально размещенный файл сценария Analytics в вашем коде Google Analytics. Это будет выглядеть примерно так: https://domain.xyz/google-analytics/ga.js
Наконец, поместите ваш НОВЫЙ код Google Analytics в нижний колонтитул вашей веб-страницы.
Тебе хорошо идти. Теперь проверьте ваш сайт Google PageSpeed Insights. Это не будет отображать предупреждение для использования кэширования браузера Google Analytics. И единственная проблема, связанная с этим решением, заключается в регулярном обновлении сценария Analytics вручную.
источник
В 2020 году пользовательскими агентами Page Speed Insights являются: «Chrome-Lighthouse» для мобильных устройств и «Google Page Speed Insights» для настольных компьютеров.
источник
Вы можете минимизировать все свои скрипты на странице, в том числе
analytics.js
используя:Не забудьте минимизировать файлы перед использованием. В противном случае это займет больше времени на обработку.
источник