Этот гид помогает вам выявить и исправить проблемы с JavaScript, которые могут блокировать вашу страницу или определенный контент на страницах, использующих JavaScript, от отображения в поиске Гугл (Google). Хотя Гугл (Google) Search и использует JavaScript, существуют некоторые особенности и ограничения, которые важно учитывать при проектировании страниц и приложений, чтобы учесть, как роботы Гугл (Google) получают доступ и рендерят контент.
Гугл (Google)bot предназначен для того, чтобы быть хорошим гражданином сети. Основная задача Гугл (Google)bot — это индексация, при этом он не должен ухудшать пользовательский опыт при посещении сайта. Гугл (Google)bot и его компонент Web Rendering Service (WRS) постоянно анализируют и выявляют ресурсы, которые не вносят вклад в основной контент страницы, и могут не загружать такие ресурсы. Например, запросы для отчетности и ошибок, не имеющие отношения к основному контенту, а также другие аналогичные типы запросов могут не использоваться для извлечения основного контента. Клиентская аналитика может не предоставлять полную или точную картину активности Гугл (Google)bot и WRS на вашем сайте. Используйте отчет о статистике обхода в Гугл (Google) Search Console, чтобы отслеживать активность Гугл (Google)bot и WRS на вашем сайте и получать обратную связь.
Если вы подозреваете, что проблемы с JavaScript могут блокировать вашу страницу или контент на странице с JavaScript от появления в поиске Гугл (Google), выполните следующие шаги. Если вы не уверены, является ли JavaScript основной причиной, воспользуйтесь нашим общим руководством по отладке для определения конкретной проблемы.
Также рекомендуем собирать и проверять ошибки JavaScript, которые возникают у пользователей, включая Гугл (Google)bot, на вашем сайте, чтобы выявить возможные проблемы, влияющие на рендеринг контента. Вот пример того, как можно логировать ошибки JavaScript, которые фиксируются в глобальном обработчике onerror:
window.addEventListener('error', function(e) {
var errorText = [
e.message,
'URL: ' + e.filename,
'Line: ' + e.lineno + ', Column: ' + e.colno,
'Stack: ' + (e.error && e.error.stack || '(no stack trace)')
].join('
');
var DOM_ID = 'rendering-debug-pre';
if (!document.getElementById(DOM_ID)) {
var log = document.createElement('pre');
log.id = DOM_ID;
log.style.whiteSpace = 'pre-wrap';
log.textContent = errorText;
if (!document.body) document.body = document.createElement('body');
document.body.insertBefore(log, document.body.firstChild);
} else {
document.getElementById(DOM_ID).textContent += '
' + errorText;
}
var client = new XMLHttpRequest();
client.open('POST', 'https://example.com/logError');
client.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
client.send(errorText);
});
Для предотвращения ошибок "мягких 404" в одностраничных приложениях (SPA) это может быть особенно сложно. Чтобы избежать индексации страниц с ошибками, можно использовать одну или обе из следующих стратегий:
Когда SPA использует клиентский JavaScript для обработки ошибок, часто они сообщают код 200, а не подходящий код состояния, что может привести к индексации страниц с ошибками, которые потом могут попасть в поисковые результаты.
Ожидайте, что Гугл (Google)bot будет отклонять запросы на разрешение пользователя. Функции, требующие разрешения от пользователя, не имеют смысла для Гугл (Google)bot, так как ему не предоставляется камера или другие устройства. Вместо этого обеспечьте доступ к контенту без принудительного разрешения пользователя на использование этих устройств.
Одностраничные приложения (SPA) могут использовать фрагменты URL (например, https://example.com/#/products) для загрузки различных представлений. Однако схема "AJAX-crawling" была устаревшей с 2015 года, поэтому нельзя полагаться на фрагменты URL для работы с Гугл (Google)bot. Рекомендуем использовать History API для загрузки различного контента в SPA.
WRS загружает каждый URL (смотрите раздел о том, как работает Гугл (Google) Search), следуя серверным и клиентским перенаправлениям, как обычный браузер. Однако WRS не сохраняет состояние между загрузками страниц:
Гугл (Google)bot активно кэширует контент, чтобы снизить количество сетевых запросов и загрузку ресурсов. WRS может игнорировать заголовки кэширования. Это может привести к использованию устаревших JavaScript или CSS ресурсов. Для избегания этой проблемы используйте отпечатки контента, включая часть имени файла, например main.2bb85551.js. Отпечаток зависит от содержимого файла, поэтому обновления создают новый файл с другим именем.
Убедитесь, что ваше приложение использует детекцию функций для всех критических API, которые оно требует, и предоставляет запасное поведение или полифиллы, где это необходимо. Некоторые веб-функции могут не поддерживаться всеми пользовательскими агентами, и Гугл (Google)bot может не поддерживать такие функции, как WebGL.
Гугл (Google)bot использует HTTP-запросы для получения контента с вашего сервера. Он не поддерживает другие типы подключений, такие как WebSockets или WebRTC. Для того чтобы избежать проблем с такими соединениями, предоставьте HTTP-резерв для получения контента и используйте надежную обработку ошибок.
Убедитесь, что ваши веб-компоненты правильно рендерятся. Используйте инструмент Rich Results Test или инструмент проверки URL в Search Console, чтобы проверить, что -код отображает весь ожидаемый контент. WRS упрощает работу с light DOM и shadow DOM. Если веб-компоненты не используют механизм
После того как вы исправили все элементы из этого чек-листа, протестируйте вашу страницу с помощью Rich Results Test или инструмента проверки URL в Search Console. Если ошибка была устранена, появится зеленая галочка, и ошибки больше не будут отображаться. Если ошибки остаются, обратитесь в сообщество поддержки Search Central.
Если у вас есть вопросы, вы можете связаться с нашей SEO компанией "seo.computer" по email: info@seo.computer, WhatsApp: +79202044461.
ID 87