Mam zamiar osiągnąć 100/100 na PageSpeed i już prawie jestem na miejscu. Próbuję znaleźć dobre rozwiązanie do buforowania Google Analytics.
Oto wiadomość, którą otrzymuję:
Wykorzystaj buforowanie przeglądarki Ustawienie daty wygaśnięcia lub maksymalnego wieku w nagłówkach HTTP zasobów statycznych instruuje przeglądarkę, aby ładowała wcześniej pobrane zasoby z dysku lokalnego, a nie przez sieć. Wykorzystaj buforowanie przeglądarki dla następujących zasobów, które można buforować: http://www.google-analytics.com/analytics.js (2 godziny)
Jedyne rozwiązanie, jakie znalazłem, pochodzi z 2012 roku i nie sądzę, aby to było dobre rozwiązanie. Zasadniczo kopiujesz kod GA i sam go hostujesz. Następnie uruchamiasz zadanie CRON, aby raz dziennie sprawdzać Google, aby pobrać najnowszy kod GA i zastąpić go.
http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
Co jeszcze mogę zrobić, aby osiągnąć 100/100 podczas korzystania z Google Analytics?
Dziękuję Ci.
źródło
Odpowiedzi:
Cóż, jeśli Google cię zdradza, możesz oszukać Google z powrotem:
To jest klient użytkownika dla pageSpeed:
Możesz wstawić warunek, aby uniknąć wyświetlania skryptu analitycznego w PageSpeed:
Oczywiście nie poprawi to w żaden sposób, ale jeśli twoją jedyną troską jest uzyskanie wyniku 100/100, zrobi to.
źródło
if(navigator.userAgent.indexOf("Speed Insights") == -1) { /* analytics here */ }
{ }
w moim przykładzie, wraz z innymi JS używanymi przez GA (takimiga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview');
lub innymi)Istnieje podzbiór biblioteki js Google Analytics o nazwie ga-lite , który można buforować w dowolny sposób.
Biblioteka korzysta z publicznego interfejsu API REST Google Analytics do wysyłania danych śledzenia użytkownika do Google. Możesz przeczytać więcej na blogu o ga-lite .
Oświadczenie: Jestem autorem tej biblioteki. Walczyłem z tym konkretnym problemem i najlepszym rezultatem, jaki znalazłem, było wdrożenie tego rozwiązania.
źródło
Oto naprawdę proste rozwiązanie wykorzystujące JS do podstawowego śledzenia GA, które będzie działać również w przypadku buforowania krawędzi / serwerów proxy (zostało to przekonwertowane z komentarza):
Uwaga: jest to domyślny skrypt GA. Możesz mieć inne
ga()
połączenia, a jeśli tak, zawsze musisz sprawdzić agenta użytkownika przed nawiązaniem połączeniaga()
, w przeciwnym razie może się nie powieść.źródło
ga
tak jakga = function(){};
przed fragmentem, że po cichu zakończy się niepowodzeniemga();
, ponieważ nie musisz sprawdzać istnienia tej funkcji w całym kodzie.Nie martwiłbym się tym. Nie umieszczaj go na własnym serwerze, wygląda na to, że jest to problem z Google, ale tak dobry, jak to możliwe. Umieszczenie pliku na własnym serwerze spowoduje wiele nowych problemów.
Prawdopodobnie potrzebują pliku, aby był wywoływany za każdym razem, zamiast pobierać go z pamięci podręcznej klienta, ponieważ w ten sposób nie liczysz wizyt.
Jeśli masz problem z poradzeniem sobie z tym, uruchom adres URL Google Insights w samym Google Insights, śmiej się, zrelaksuj i kontynuuj swoją pracę.
źródło
W dokumentach Google zidentyfikowali
pagespeed
filtr, który załaduje skrypt asynchronicznie:Dokumentację można znaleźć tutaj: https://developers.google.com/speed/pagespeed/module/filter-make-google-analytics-async
Jedną rzeczą do podkreślenia jest to, że filtr jest uważany za wysokie ryzyko. Z dokumentów:
źródło
varvy.com ( 100/100 wgląd w szybkość strony Google ) ładuje kod google analitycs tylko wtedy, gdy użytkownik przewinie stronę:
źródło
Możesz spróbować hostować plik analytics.js lokalnie i zaktualizować jego zawartość za pomocą skryptu buforującego lub ręcznie.
Plik js jest aktualizowany tylko kilka razy w roku, a jeśli nie potrzebujesz żadnych nowych funkcji śledzenia, zaktualizuj go ręcznie.
https://developers.google.com/analytics/devguides/collection/analyticsjs/changelog
źródło
przechowuj plik localy analytics.js, ale google nie zaleca: https://support.google.com/analytics/answer/1032389?hl=pl
nie jest to zalecane, ponieważ Google może zaktualizować skrypt, kiedy tylko zechce, więc po prostu zrób skrypt, który co tydzień pobiera javascript do analizy, a nie będziesz mieć problemów!
Nawiasem mówiąc, to rozwiązanie zapobiega blokowaniu przez adblock skryptów Google Analytics
źródło
Możesz proxy skryptu Google Analytics za pośrednictwem własnego serwera, zapisać go lokalnie i automatycznie aktualizować plik co godzinę, aby upewnić się, że jest to zawsze jego najnowsza wersja od Google.
Zrobiłem to już na kilku stronach i wszystko działa dobrze.
Trasa proxy Google Analytics w stosie NodeJS / MEAN
W ten sposób zaimplementowałem go na moim blogu zbudowanym ze stosu MEAN.
Metoda działania proxy Google Analytics w ASP.NET MVC
W ten sposób zaimplementowałem go na innych stronach zbudowanych z ASP.NET MVC.
Jest to CompressAttribute używany przez MVC ProxyController do kompresji Gzip
Zaktualizowany skrypt Google Analytics
Po stronie klienta dołączam ścieżkę analityczną z bieżącą datą do godziny, aby przeglądarka nie używała wersji z pamięci podręcznej starszej niż godzina.
źródło
W przypadku Nginx:
Następnie zmień ścieżkę https://www.google-analytics.com/analytics.js na https://yoursite.com/analytics.js
źródło
PHP
Dodaj to w kodzie HTML lub PHP:
JavaScript
Działa to poprawnie z JavaScript:
źródło
spróbuj tego po prostu wstaw wcześniej
Zmień xx-xxxxxxx-x na swój kod, sprawdź wdrożenie tutaj http://www.gee.web.id/2016/11/how-to-leverage-browser-caching-for-google-analitycs.html
źródło
Google przestrzega przed używaniem lokalnych kopii skryptów analitycznych. Jednak jeśli to robisz, prawdopodobnie będziesz chciał użyć lokalnych kopii wtyczek i skryptu debugowania.
Drugim problemem związanym z agresywnym buforowaniem jest to, że będziesz otrzymywać trafienia ze stron w pamięci podręcznej - które mogły ulec zmianie lub zostały usunięte z witryny.
źródło
Aby rozwiązać ten problem, musisz pobrać plik lokalnie i uruchomić zadanie CRON, aby kontynuować aktualizację. Uwaga: to wcale nie przyspiesza działania Twojej witryny, więc najlepiej ją po prostu zignorować.
Jednak w celach demonstracyjnych postępuj zgodnie z tym przewodnikiem: http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/
źródło
To może załatwić sprawę :)
źródło
W zależności od sposobu korzystania z danych Google Analytics, jeśli chcesz uzyskać podstawowe informacje (takie jak wizyty, interakcje w interfejsie użytkownika), możesz w ogóle nie uwzględnić pliku analytics.js, ale nadal zbierać dane w GA.
Jedną z opcji może być użycie protokołu pomiaru w skrypcie buforowanym. Google Analytics: Omówienie protokołu pomiaru
Gdy jawnie ustawisz metodę transportu na image, możesz zobaczyć, jak GA konstruuje własne sygnały nawigacyjne obrazu.
Możesz utworzyć własne żądania GET lub POST z wymaganym ładunkiem.
Jeśli jednak potrzebujesz większej szczegółowości, prawdopodobnie nie będzie to warte twojego wysiłku.
źródło
Możesz skonfigurować dystrybucję w chmurze, która ma serwer źródłowy www.google-analytics.com i ustawić dłuższy nagłówek wygaśnięcia w ustawieniach dystrybucji w chmurze. Następnie zmodyfikuj tę domenę we fragmencie Google. Zapobiega to obciążeniu własnego serwera i konieczności ciągłego aktualizowania pliku w zadaniu cron.
To jest konfiguracja i zapomnij. Możesz więc dodać alert rozliczeniowy do chmury, na wypadek, gdyby ktoś „skopiował” Twój fragment kodu i ukradł przepustowość ;-)
Edycja: Próbowałem i nie jest to takie proste, Cloudfront przechodzi przez nagłówek Cache-Control bez łatwego sposobu na usunięcie
źródło
Otwórz https://www.google-analytics.com/analytics.js plik w nowej karcie, skopiuj cały kod.
Teraz utwórz folder w katalogu internetowym i zmień jego nazwę na google-analytics.
Utwórz plik tekstowy w tym samym folderze i wklej cały kod skopiowany powyżej.
Zmień nazwę pliku ga-local.js
Teraz zmień adres URL, aby wywołać lokalnie hostowany plik skryptu Analytics w kodzie Google Analytics. Będzie to wyglądać mniej więcej tak https://domain.xyz/google-analytics/ga.js
Na koniec umieść NOWY kod Google Analytics w stopce strony.
Możesz ruszać. Teraz sprawdź swoją witrynę Google PageSpeed Insights. Nie wyświetli ostrzeżenia dla Leverage Browser Caching Google Analytics. Jedynym problemem związanym z tym rozwiązaniem jest regularna ręczna aktualizacja skryptu Analytics.
źródło
W 2020 r. Agentami użytkownika Page Speed Insights są: „Chrome-Lighthouse” na komórki i „Google Page Speed Insights” na komputery.
źródło
Możesz zminimalizować wszystkie skrypty na stronie, w tym
analytics.js
za pomocą:Pamiętaj, aby zminimalizować pliki przed ich użyciem. W przeciwnym razie zajmie to więcej czasu przetwarzania.
źródło