Лучшее место для вставки кода Google Analytics

Лучше всего вставить код Google Analytics в WordPress, верхний или нижний колонтитул? Я предпочитаю нижний колонтитул, потому что я хотел, чтобы мой сайт загружался быстрее, уменьшая количество скриптов в заголовке, но может ли он работать, даже если script находится в нижнем колонтитуле?

Ответ 1

Google рекомендовал поместить его непосредственно перед тегом </body>, поскольку исходный метод, который они предоставили для загрузки ga.js, блокировался. Однако новый асинхронный синтаксис можно безопасно помещать в голову с минимальной блокировкой, поэтому текущая рекомендация перед тегом </head>.

<head> добавит немного латентности; в нижнем колонтитуле уменьшится количество просмотров страниц, записанных с небольшим отрывом. Это компромисс. ga.js сильно кэшируется и присутствует на большом проценте сайтов в Интернете, поэтому его часто обслуживают из кеша, уменьшая латентность почти до нуля.

В качестве личного предпочтения я хотел бы включить его в <head>, но это действительно вопрос предпочтения.

Ответ 2

Как говорится в google:

Вставьте его на свою веб-страницу непосредственно перед закрывающим тегом </head>.

Одним из основных преимуществ асинхронного фрагмента является то, что вы можете расположите его в верхней части HTML-документа. Это увеличивает вероятность того, что маяк отслеживания будет отправлен перед пользователем покидает страницу. Обычно для размещения кода JavaScript в <head>, и мы рекомендуем разместить снипп в нижней части раздел <head> для лучшей производительности

Ответ 3

Да, в любом случае рекомендуется поместить код GA в нижний колонтитул, поскольку страница не должна считаться посещением страницы, пока не будет прочитана вся разметка.

Ответ 4

Если вы хотите, чтобы ваши сценарии загружались после отображения страницы, вы можете использовать:

function getScript(a, b) {
    var c = document.createElement("script");
    c.src = a;
    var d = document.getElementsByTagName("head")[0],
        done = false;
    c.onload = c.onreadystatechange = function() {
        if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
            done = true;
            b();
            c.onload = c.onreadystatechange = null;
            d.removeChild(c)
        }
    };
    d.appendChild(c)
}

//call the function
getScript("http://www.google-analytics.com/ga.js", function() {
    // do stuff after the script has loaded
});