Артем писал(а):
1) На телефоне сбои всегда, не населенный пункт, не стоимость доставки не загружается, крутится колесико загрузки и всё, а на компьютере всё нормально прогружается. P.S. по крайней мере проверял на нескольких разных телефонах.
С таким описанием симптоматики поставить диагноз не представляется возможным. Может быть все что угодно.
Артем писал(а):
2) Впн нет, странно, мобильный интернет, яндекс, гугл определяет Ярославль, ну ни как сша))
Ну тут мы тоже бессильны. У нас в коде вызывается функция
ymaps.geolocation.get(), почему в вашем случае она возвращает координаты в США - сказать не можем. Можете попробовать эту функцию
в песочнице. У нас же не получается заставить эту функцию так ошибаться, пробовали на разных устройствах.
Артем писал(а):
3) Для оптимизации сайта, использую разные сервисы которые показывают скорость загрузки страниц и их ошибки, для сео это важный пункт, пользователю это не заметно, а сервисы ругаются, что медленная загрузка и тд, и сюда попал этот скрипт - <script src="//api-maps.yandex.ru/2.1/?apikey=1d361db1-2796-4a44-80ea-487b93817c0a&lang=ru_RU" type="text/javascript"></script> при его удалении из head сразу скорость возрастает и ругани нет, но и соответственно пункты доставки и стоимости не подгружаются, вот я и хочу сделать отложенную загрузку или лучше условие, если пользователь про скролил до футера подгружать скрипты,
я конечно не разработчик и тд, но своими силами проб и ошибок, достаточно много исправил в шаблоне, что не получается, с вашей помощью исправляю.
Вот это вряд ли, что сервисы ругаются на скрипт //api-maps.yandex.ru, это просто API, подключение этого файла никоим образом не замедляет загрузку. А вот код, который это API использует - да, может тормозить причем очень значительно.
На странице товара API яндекс карт используется в /theme/js/product.js, в блоке кода
Код:
ymaps.ready(function(){
...
});
Вот все что там скрывается за многоточием это как раз код который активно работает я яндекс-картами через API (геолокация/доставка/самовывоз). Можете перенести его выполнение в таймер через
setTimeout() или
повесить на скролл.