Клуб Яндекс.Метрики

Google's PageSpeed Insights снимает баллы за код счётчика Яндекс.Метрики

IrishEddy
1 марта 2016, 14:58

Встроил в один из веб-проектов код Яндекс.Метрики. На всякий случай, чтобы не тормозить загрузку основного контента страницы (важно для SEO на Гугле), использовал асинхронный вариант и вставил его между тегами </footer> и </body> ближе к концу тела страниц.

Оцениваю состояние страниц с помощью Google's PageSpeed Insights. Он снимает баллы за скрипт Метрики на странице. Выдаёт следующее:

Leverage browser caching for the following cacheable resources:
https://mc.yandex.ru/metrika/watch.js (60 minutes)

Несколько месяцев назад общался по этому поводу с саппортом Яндекса, но решения проблемы так и не добился.

Недавно зацепил снова эту проблему. На одном из форумов посоветовали использовать синхронный вызов счётчика или вообще загружать скрипт со своего хостинга (обновлять его там периодически роботом).

Есть ли какие-то более простые и надёжные способы решения данной проблемы? Стоит ли бояться синхронной загрузки скрипта Метрики с оригинального сайта?

11 комментариев
Подписаться на комментарии к посту
Екатерина (Yandex.Metrika)
1 марта 2016, 15:03
Здравствуйте!

Асинхронный вариант кода счётчика - правильное решение.

>> Leverage browser caching for the following cacheable resources:
>> https://mc.yandex.ru/metrika/watch.js (60 minutes)

Это сообщение говорит о времени хранения кеша кода счётчика в течение 60 минут.
Это оптимальное время, которое никак не влияет на скорость загрузки сайта.
А вот загрузка кода счетчика с другого домена может вызвать проблемы в его работоспособности.
Екатерина (Yandex.Metrika),
После вставки 
 Leverage browser caching for the following cacheable resources:
 https://mc.yandex.ru/metrika/watch.js (60 minutes) - гугл не ругается но и сайт не работает. Как именно это нужно вставлять может я что-то неверно делаю?
Да не парься, не та это проблема.
Если сильно принципиально и хочется оптимизировать все, то вот недавно писал скрипт который сохраняет код метрики у себя на сайте и через крон автоматически обновляется.

Код можно взять тут http://vasilenko.info/pagespeed-cache/ и прочитать как это все настроить
Андрей Девятов
19 марта 2016, 18:07
Как вариант можете установить на сайт Google Tag Manager и добавить счетчик метрики через него.
Андрей Девятов,
 Это не решит проблему.
Вилы Выкидные
25 декабря 2016, 06:04
Не нужно ничего скачивать никакими кронами, просто отшиваем юзерагента PageSpeed Insights в области кода, где у нас аналитика установлена, ггы.. 


<?php if (!isset($_SERVER['HTTP_USER_AGENT']) || stripos($_SERVER['HTTP_USER_AGENT'], 'Speed Insights') === false): ?>


тут вставляем код гугл аналитики и (или) яндекс метрики


<?php endif; ?>



радуемся, аве мне :)
Обновлено 25 декабря 2016, 06:04
Вилы Выкидные,
такие костыли только индусы делают и горе-программисты. Поменялся юзерагент, в код лезть сразу?
Вилы Выкидные,
Хорошее решение как по мне. Благодарочка!
Вариант с хранением файла метрики локально и скачиванием новой версии по крону самый простой и всеми советуемый. Мало того, можно даже через wget крон настроить скачивать файл в нужную папку.
Обновлено 29 декабря 2016, 04:25
Вилы Выкидные
29 декабря 2016, 05:09
1. А кроном долбить сервак каждый час - это весьма гениальное решение, особенно ещё такой шнягой, как wget.


2. Точно так же, как Вы думаете, что с какого-то бугра сменится юзерагент какой-то очередной шняги от гугла, которую юзают "ВЕЛИКИЕ ПРОГРАММИСТЫ", точно так же может смениться адрес для скачивания кодов метрики. И что, в код лезть сразу?


3. Скачанный таким образом код метрики не виден при проверке правильности его установки.


4. Не на всех хостах и не у всех юзеров стоят планировщики кронзадач да и тупо большинство не умеет его юзать.


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


6. Красиво набиваете посты на форумах, пытаясь троллить посты других юзеров бессмысленными предложениями столетней давности, wget и cron  бабушка моя ещё юзала с динозаврами.