Виджеты заблокированных в Украине ресурсов (ВКонтакте, mail.ru, Яндекс и др.) могут навредить сайтам?

21.02.2017

Рекомендую удалить все виджеты Яндекса и вКонтакте со своих сайтов из-за блокировки оных интернет-провайдерами в Украине или сделать их асинхронными (об этом ниже).

Как известно, с 15 мая в Украине введены санкции против некоторых российских компаний, и все украинские интернет-провайдеры заблокировали доступ к сайтам и сервисам санкционных компаний. То есть без использования VPN напрямую вы не получите доступ к Vkontakte, Яндексу и прочим сайтам и сервисам (ОК, mail.ru, ЯндексДеньги, ЯндексКарты и другие).

Ну не получим доступ, ну не сможем открыть напрямую в браузере Яндекс или почтовик Mail.ru, казалось бы, в чем проблема, если есть масса альтернативных сайтов?

А вот проблема в том, что если на вашем сайте стоят какие-либо виджеты сайтов, которые сейчас заблокированы провайдерами, тогда пользователи скорее всего не смогут полноценно использовать ваш сайт из-за ошибок, которые обязательно возникнут при попытке сайта загрузить скрипты виджетов заблокированных ресурсов. Непонятно, что имеется ввиду?

Виджет Сообщества ВКонтакте для сайта

Например, заходим на сайт yogazal.dp.ua

И видим такой вид главной страницы:

Ничего не видите странного?

Во-первых, я не увидел контент сайта, а во-вторых я вижу что страница грузится бесконечно долго и внизу в левом углу вижу, что сайт пытается получить что-то от VK. Скорее всего, это какой-то виджет.

Проверяем сайт в Opera с включенным VPN и получаем такой вид:

Сайт грузится моментально, контент отображается на всех страницах, и что мы видим — в левом сайдбаре в самом низу стоит виджет Группы Вконтакте.

Этот виджет в коде стоит выше чем контент,и дальше получается такая ситуация:

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

Простыми словами — весь контент после виджета для украинского пользователя не загрузится.

Ели ваш сайт ориентирован на украинский сегмент то нужно удалить все виджеты заблокированных компаний со своих сайтов.

VPN используют не так много людей по причине низкой скорости соединения.

Проблема с виджетами Сообществ наблюдалась на многих сайтах, попробую найти примеры проблем с Виджетам Комментариев и Лайков.

Решение проблемы

Решение проблемы, кстати, не только в удалении виджета, а также и в добавлении в сторонние скрипты атрибутов async/defer.

Это позволит загружать данные скрипты в последнюю очередь, и для пользователей из других стран виджет отобразится нормально, а для Украины весь контент сайта загрузится полностью кроме виджета.

Пример использования:

<script src="async.js" async></script>
<script src="defer.js" defer></script>

Скрипт async.js выполнится, как только загрузится – возможно, до того, как весь документ готов. А defer.js подождёт готовности всего документа.

Clickjacking ВКонтакте

Есть такие сервисы (виджеты, скрипты), которые позволяют определять профили в социальных сетях пользователей вашего сайта.

Никогда не ставьте на сайты такие виджеты.

  • во-первых, поисковики за такое банят,
  • во-вторых, это сулит проблемы пользователям вашего сайта.

Пример — сайт salonforma.com.ua.

Уже долгое время у них на сайте стоит какой-то виджет для определения профилией VK, по итогу пользователь, который в данный момент авторизован в социальной сети Вконтакте, заходя на сайт ничего не заметит, и данные о нем получит менеджер сайта.

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

Скриншот:

И здесь даже блокировка Контакта немного помогла салону, потому как это окно с авторизацией уже не всплывает, и пользователь даже сможет использовать меню по назначению, но только сайт 60 секунд пытается загрузить скрипты Контакта, то есть на загрузку каждой страницы будет уходить 1 минута… Я долго наблюдал за этим сайтом, и все же решил похвонить их менеджеру, надеюсь, проблему устранят.

Виджет ЯндексКарт

Признаюсь грешен. очень часто использовал Конструктор ЯндексКарт из-за своей простоты и удобства с созданием маршрутов и размещением большого количества точек на карте.

Добавлял на сайты обычным скриптом такого вида:

<script type="text/javascript" charset="utf-8" src="https://api-maps.yandex.ru/services/constructor/1.0/js/?sid=_sv2RJqzTO0CcAnf6M2nSo68YFglfleC&width=auto&height=400"></script>

Как ни странно, но ЯндексКарты работают на сайте даже не смотря на блокировку. Хотя я ожидал, что страница будет грузиться нормально, но просто не будет видно самой карты.

Скриншот с сайта prokatt.com:

[UPD 15.10.17]

ЯндексКарты

ЯндексКарты могут отображаться у различных провайдеров, не знаю, как и от чего это зависит, возможно какие-то провайдеры не блокируют доступ ко всем серверам «запрещенных ресурсов», а только закрывают доступ к основному домену. Но суть в том, что на разных машинах можно видеть различное поведение сайтов, где-то может отображаться карта Яндекса, а где-то ее просто не будет, не будет пустого места, и не будет задержек с загрузкой страницы, просто не будет блока с картой. Поэтому я все же рекомендую использовать Googlemaps.

Вот так например выглядит карта одного сайта:

Конструктор блока «Поделиться» от Яндекс

Долгое время на нескольких сайтах я использовал блок Share от Yandex (https://tech.yandex.ru/share/), подкупал он своей простой настройкой и установкой. Про санкции я забыл, и проблем не наблюдал, но вот с недавних пор начали дико тормозить сайты, на которых данный блок был установлен, поэтому очень быстро он был снесен, сайты перестали «тупить». Используйте свои кастомные кнопки Share, о которых я писал в этой статье. (Актуально для Украины на 15.10.17).

Полезная инфа:

Комментарии (6) к “Виджеты заблокированных в Украине ресурсов (ВКонтакте, mail.ru, Яндекс и др.) могут навредить сайтам?”

  • Сергей

    вот работали карты и перестали, как обойти блокировку api-maps.yandex.ru

    Ответить
  • iban

    А как запретить виджеты ВК не владельцу сайта, а пользователю? Может есть какие плагины? Т.е. чтобы когда я захожу на сайт, где есть виджет ВК, то чтобы он и не пытался загрузиться. Так как многие сайты грузятся по минуте, пока браузер не поймет, что виджет с vk.com не загружается и не продолжит загрузку сайта дальше.

    Ответить
    • Denis Creative

      Хороший вопрос, пока что не встречал таких плагинов, но можно попробовать самостоятельно прописать в файле C:\Windows\System32\drivers\etc\host (с помощью текстового редактора) такие правила:

      127.0.0.1       vk.com
      127.0.0.1       ya.ru
      

      По идее, система будет блокировать загрузку данных ресурсов и не должно быть никакого ожидания на загрузку скриптов или на получение данных с этих сайтов. Но это только предположение, нужно тестировать.
      Я потом проверю, как это повлияет на загрузку страниц.

      Ответить
  • Павел cccp-blog.com

    В случае виджета Вконтакте async и defer для асинхронной загрузки не работает. На своём сайте тестировал — cccp-blog.com, не помогло. Нужен специальный скрипт асинхронной загрузки. Пользовался этим — http://xpro.su/php/async_widgets-1 Но, в итоге, остановился на загрузке нужного виджета в зависимости от страны по IP пользователя. Если из Украины, где ВК заблокирован, то показывает фейсбук. Всем остальным — ВК.

    Ответить
    • Denis Creative

      Хорошее решение.
      Для виджета Вконтакте async и defer для асинхронной загрузки не работает — есть такое дело.

      Ответить

Оставить комментарий