DOM элементы Яндекс кнопок поделиться

KS
На сайте с 30.07.2016
Offline
35
119

На странице категории сайта есть много блоков Яндекс кнопок поделиться для каждой записи. Выглядит код примерно так:

<script src="https://yastatic.net/share2/share.js"></script>

<div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,twitter,lj,viber,whatsapp,telegram,skype" data-size="s" data-url="https://site.ru/page1.html" data-title="Заголовок 1" data-description="Описание 1"></div>

<div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,twitter,lj,viber,whatsapp,telegram,skype" data-size="s" data-url="https://site.ru/page2.html" data-title="Заголовок 2" data-description="Описание 2"></div>

Проблема в том что генерируется примерно по 45 элементов DOM структуры на каждый блок кнопок, что дает лишние 1350 элементов на 30 записей при проверке через PageSpeed Insights, Lighthouse и GTMetrix. Нашел временное решение: подгружаю файл share.js через 15 секунд после загрузки страницы, что позволяет отложить прорисовку кнопок и решает проблему с DOM структурой в сервисах. Но 15 секунд... это многовато.

В сервисе PLUSO нет проблем с DOM структурой. Они как-то по-хитрому подгружают файл вот так:

<script type="text/javascript">(function() {
  if (window.pluso)if (typeof window.pluso.start == "function") return;
  if (window.ifpluso==undefined) { window.ifpluso = 1;
    var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
    s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
    s.src = ('https:' == window.location.protocol ? 'https' : 'http')  + '://share.pluso.ru/pluso-like.js';
    var h=d[g]('body')[0];
    h.appendChild(s);
  }})();</script>
Пытался переделать этот код чтобы Яндекс кнопки таким образом подгружать, чтобы их не видели вышеприведенные сервисы, но в JavaScript я не силен и у меня ничего не получилось. Возможно ли вообще вот таким способом подгружать JS файл Яндекс кнопок чтобы они не создавали лишние DOM элементы в PageSpeed Insights или же там все гораздо сложнее чем я думаю? Как этот код переделать чтобы загружать JS Яндекс кнопок таким образом? PLUSO использовать не очень хочу. "Мы не ищем легких путей" 🙃


LEOnidUKG
На сайте с 25.11.2006
Offline
1750
#1
Ну яндекс ещё туда свою метрику вставляет.  Как вариант это загрузка скрипта по действию пользователя, клик, скролл и т.д.
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
totamon
На сайте с 12.05.2007
Offline
437
#2
зачем вам в анонсах то эти кнопки? вы исследовали, они эффективны? или чисто для красоты чтоб было?)
Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий