Size: a a a

Техническое SEO

2020 March 17

В

Влад 🍒 in Техническое SEO
Denis
для АМП отдельная гугл аналитика и метрика, вы их подключили?
отдельная какая? подключил через плагин. может что-то пропустил?

сейчас перейду на ГТМ
источник

D

Denis in Техническое SEO
Влад 🍒
отдельная какая? подключил через плагин. может что-то пропустил?

сейчас перейду на ГТМ
источник

DA

Dmitriy Alexandrovich in Техническое SEO
Sergey Bizikin
А кто-нить в курсе в хроме лайтхаус на вкладке аудита норм работает? А то что-то не пойму, дичь какую-то показывает
По перфомансу оценка 1 и 10 сек до FCP
источник

DB

Dmitry Bondarenko in Техническое SEO
Alexandr
Народ, как вы решаете проблемы кода адсенса который очень уменьшает оценку?
Я решил просто сделав отложенную загрузку, но в таком случает реклама часто просто не прогружается пока не обновишь страницу
Вот так
function lazy_load_ads() {
   var ll = 0;
   window.addEventListener("scroll",load_ads);
   function load_ads() {
       if (ll === 0 && window.pageYOffset > 150) {
           ll = 1;
           fetch_ad('.selector', 'your_ad_code_here.html');
        }
   }

   function fetch_ad(elementClass, appendData) {
       var xhr = new XMLHttpRequest();
       var element = document.querySelector(elementClass);
       if (element === null)
           return;
       xhr.onreadystatechange = function () {
           if (xhr.readyState == 4 && xhr.status == 200) {
               element.innerHTML = xhr.responseText;
               var scripts = Array.prototype.slice.call(element.getElementsByTagName("script"));
               for (var i = 0; i < scripts.length; i++) {
                   if (scripts[i].src != "") {
                       var tag = document.createElement("script");
                       tag.src = scripts[i].src;
                       document.getElementsByTagName("head")[0].appendChild(tag);
                   } else {
                       eval(scripts[i].innerHTML);
                   }
               }
           }
       };
       xhr.open("GET", appendData, true); // true for asynchronous
       xhr.overrideMimeType('application/javascript');
       xhr.send(null);

   }
}
источник

A

Alexandr in Техническое SEO
Dmitry Bondarenko
Вот так
function lazy_load_ads() {
   var ll = 0;
   window.addEventListener("scroll",load_ads);
   function load_ads() {
       if (ll === 0 && window.pageYOffset > 150) {
           ll = 1;
           fetch_ad('.selector', 'your_ad_code_here.html');
        }
   }

   function fetch_ad(elementClass, appendData) {
       var xhr = new XMLHttpRequest();
       var element = document.querySelector(elementClass);
       if (element === null)
           return;
       xhr.onreadystatechange = function () {
           if (xhr.readyState == 4 && xhr.status == 200) {
               element.innerHTML = xhr.responseText;
               var scripts = Array.prototype.slice.call(element.getElementsByTagName("script"));
               for (var i = 0; i < scripts.length; i++) {
                   if (scripts[i].src != "") {
                       var tag = document.createElement("script");
                       tag.src = scripts[i].src;
                       document.getElementsByTagName("head")[0].appendChild(tag);
                   } else {
                       eval(scripts[i].innerHTML);
                   }
               }
           }
       };
       xhr.open("GET", appendData, true); // true for asynchronous
       xhr.overrideMimeType('application/javascript');
       xhr.send(null);

   }
}
А есть подробнее гайд где посмотреть?
источник

A

Alexandr in Техническое SEO
Для дебилов так сказать
источник

DB

Dmitry Bondarenko in Техническое SEO
в html засовываете код гугла
источник

DB

Dmitry Bondarenko in Техническое SEO
на сайте создаете <div class="ad"></div>, ну или <aside>, если корректно туда блоки пихать. В скрипте указываете этот блок и путь к html файлу
источник

DB

Dmitry Bondarenko in Техническое SEO
ну и функцию lazy_load_ads() где-то вызовете
источник

DB

Dmitry Bondarenko in Техническое SEO
я не мастер JS, но такая вот телега получилась и работает уже пол года
источник

DB

Dmitry Bondarenko in Техническое SEO
Кто-то знает более элегантное решение - с радостью изучу :)
источник

DB

Dmitry Bondarenko in Техническое SEO
Блоки начинают интегрироваться после скролла на второй экран. Можно увеличить расстояние
источник

DB

Dmitry Bondarenko in Техническое SEO
window.pageYOffset > 150
источник

A

Alexandr in Техническое SEO
Вы каждый блок рекламы так в функцию или чисто код загрузки адсенса:
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
источник

DB

Dmitry Bondarenko in Техническое SEO
как код дает, так и засовываете
источник

DB

Dmitry Bondarenko in Техническое SEO
вместе с ссылкой на скрипт
источник

DB

Dmitry Bondarenko in Техническое SEO
Можно разово скрипты засунуть в хедер, тогда без них блоки будет загружать. Но скорость упадет
источник

A

Alexandr in Техническое SEO
Ну, я нагуглил вот такой вариант отложенной загрузки:
<script type='text/javascript'>
var lazyadsense=!1;window.addEventListener("scroll",function(){(0!=document.documentElement.scrollTop&&!1===lazyadsense||0!=document.body.scrollTop&&!1===lazyadsense)&&(!function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(e,a)}(),lazyadsense=!0)},!0);
//]]>
</script>
источник

A

Alexandr in Техническое SEO
Все ошибки ушли, но таким приколом не всегда прогружаются блоки рекламы
источник

A

Alexandr in Техническое SEO
Особенно если траблы со скоростью инета
источник