Просматривая наши журналы, мы всегда видим неопределенные JavaScript ошибки, вызванные Googlebot.
Uncaught ReferenceError: myFunction is not defined
Это строка агента пользователя для всех этих ошибок.
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
В нашем коде у нас есть функция, определенная в отдельном файле, а затем ссылка на нее в наших шаблонах представления.
<script type="text/javascript" src="https://example.com/js/my-script.js?v=1.4"></script>
<script>
$('document').ready(function(){
if (typeof myFunction != 'undefined') {
myFunction.init();
}
});
</script>
Файл JS содержит IIFE, присвоенный переменной, который выглядит следующим образом:
var myFunction = (function () {
var init = function () {
// do stuff
};
return { init: init };
})();
Это прекрасно работает для всех устройств, кроме googlebot. Почему googlebot создает эти ошибки, когда myFunction обернут в проверку неопределенности?