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

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

Удалённый пользователь
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)

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

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

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

18 комментариев
Подписаться на комментарии к посту
Екатерина (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
Вилы Выкидные,
такие костыли только индусы делают и горе-программисты. Поменялся юзерагент, в код лезть сразу?
Вилы Выкидные,
Хорошее решение как по мне. Благодарочка!
Вилы Выкидные,
очень неразумно надеяться, что указанный юзерагент единственно правильный для оценки ресурса гуглом.
Вилы Выкидные
1 мая, 17:59
Farlow,
очень разумно качать чужие скрипты на свой сервак и долбить его кроном ради того, чтобы какой-то сомнительный сервис сообщал Вам о том, что ВАШ сайт не оптимизирован, ПОТОМУ ЧТО ИХ ЖЕ СТАТИСТИКА не кэшируется )))


И этот юзерагент не оценивает сайт, этим юзерагентом бот оценки заходит на Ваш сайт, поэтому вся логика сводится к тому, что если сервис дал код счётчика статистики, то Вам его не обязательно показывать юзерагенту оценочного бота того же самого сервиса )))


А вообще мне это вообще не важно, я просто одно время задавался целью сделать 100 из 100 и сделал И ЗАБЫЛ и даже не заморачиваюсь.
Обновлено 1 мая, 17:59
Вилы Выкидные,
с тем же успехом для этого юзерагента можено отдавать пустую хтмлку, с текстом "hello world" - не нужно будет париться с оптимизацией других элементов страницы :facepalm
Вилы Выкидные
2 мая, 10:28
Farlow,
 я лично не занимаюсь ерундой по закачке посторонних скриптов от гугл для кэширования их у себя на сервере от того, что гугл наплевал на своих пользователей и не удосужился сообщить своему оценочному боту, чтобы тот не учитывал их косяк по срокам кэширования их скрипта.


А вообще эта трабла разовая и она нужна только для нескольких тестирований в процессе отладки, поэтому закрыл метрику от бота, убрал косяки, ну и убирай или оставь этот код, от этого НИЧЕГО НЕ ИЗМЕНИТСЯ.


А вообще оптимизацией сайтов нужно заниматься на профессиональном софте, но не каким-то гуглом и выглядеть это должно примерно так


http://skrinshoter.ru/s/020517/i2PZYd8T
Вилы Выкидные,
Шикарно, вообще. Спасибо!)
Вариант с хранением файла метрики локально и скачиванием новой версии по крону самый простой и всеми советуемый. Мало того, можно даже через wget крон настроить скачивать файл в нужную папку.
Обновлено 29 декабря 2016, 04:25
Вилы Выкидные
29 декабря 2016, 05:09
1. А кроном долбить сервак каждый час - это весьма гениальное решение, особенно ещё такой шнягой, как wget.


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


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


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


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


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

<?php include JPATH_BASE . DS . 'templates' . DS . 'шаблон' . DS . 'html' . DS . 'metrika.php'; ?>
Ставлю код для скрытия счетчиков от PageSpeed
<?php if (!isset($_SERVER['HTTP_USER_AGENT']) || stripos($_SERVER['HTTP_USER_AGENT'], 'Speed Insights') === false): ?>
<?php include JPATH_BASE . DS . 'templates' . DS . 'мой шаблон' . DS . 'html' . DS . 'metrika.php'; ?>
<?php endif; ?>
и этот код не срабатывает показатели остались и поменялись.
Вилы Выкидные
23 апреля, 18:23
lik-astana,
дебажте, что содержит $_SERVER['HTTP_USER_AGENT']


код не может не работать априори
Обновлено 23 апреля, 18:23