Что можно сделать с помощью JavaScript
Ты можешь создать веб-сайт только с помощью HTML и CSS. Но если ты хочешь, чтобы твой сайт делал больше, чем просто отображал информацию, то тебе нужно будет использовать JavaScript.
С помощью JavaScript ты можешь сделать свой веб-сайт более интерактивным. Это означает, что пользователи, которые посещают твой сайт, получат дополнительные преимущества. Используя JS ты сможешь:
- Добавить анимацию на веб-страницу
- Открыть раскрывающееся меню на экранах мобильных устройств
- Воспроизводить видео и аудио на веб-странице
- Создавать и отправлять формы
- Управлять сообщениями пользователей
- Реализовать аутентификацию и добавить аккаунты пользователям
- Обмениваться информацией с серверами и базами данных
- И многое, многое другое!
Мобильные приложения
В прошлом программисты разрабатывали мобильное приложение, используя язык программирования для конкретной платформы. Например, Java используется для создания приложений для Android, а Swift — для создания приложений для iOS.
Сегодня ты также можешь создавать мобильные приложения на JavaScript с помощью инструмента React Native. React Native — это платформа мобильных приложений. С помощью React Native ты можешь создать мобильное приложение как для Android, так и для iOS. Код нужно написать только один раз, а работать он будет на обеих платформах, как iOS, так и Android.
Некоторые примеры: Facebook, Instagram, Uber Eats, Discord, Pinterest и Skype. Эти мобильные приложения созданы с использованием React Native и ведут себя точно так же, как нативные.
Настольные приложения
В настоящее время можно создавать настольные приложения на JavaScript с помощью инструмента под названием Electron. Electron — это бесплатный инструмент с открытым исходным кодом, который позволяет программистам создавать настольные приложения с помощью инструментов веб-разработки.
Другими словами, если ты знаеш HTML, CSS и JavaScript, то ты можешь использовать Electron для создания настольных приложений, как если бы это был веб-сайт!
Хорошо известными примерами настольных приложений, созданных с помощью Electron, являются Visual Studio Code, Facebook Messenger, Twitch и Microsoft Teams.
Почему стоит изучать JavaScript?
Есть три основные причины учить JavaScript:
- JS относительно просто изучить по сравнению с другими языками программирования.
- JavaScript настолько универсален, что с его помощью можно создавать веб-сайты, мобильные приложения и настольные приложения.
- В индустрии разработки программного обеспечения существует большой спрос на язык программирования JavaScript.
Поэтому, JavaScript в качестве первого языка программирования для изучения — отличный выбор. Если это звучит для тебя захватывающе или, по крайней мере, вызывает у вас достаточно любопытства, ты можешь начать учить JavaScript прямо сейчас!!
Общие сведения о поисковой оптимизации сайтов, использующих JavaScript
Если вам кажется, что из-за каких-либо неполадок кода JavaScript ваша страница или отдельные материалы на ней могут не показываться в результатах поиска Google, изучите это руководство.
JavaScript играет важную роль в интернете, поскольку позволяет расширять возможности сайтов и превращать их в веб-приложения. Если у вас есть такие приложения, вы можете помочь поисковым роботам индексировать их, чтобы ваш контент появлялся в Google Поиске и помогал привлекать и удерживать пользователей. Google Поиск обрабатывает код JavaScript с помощью последней версии Chromium. В связи с этим мы рекомендуем вам оптимизировать свои приложения, чтобы повысить эффективность сканирования.
В этом руководстве приводится информация о том, как мы сканируем и индексируем веб-приложения на основе JavaScript, а также советы по оптимизации таких приложений для Google Поиска.
Как робот Googlebot обрабатывает JavaScript
Обработка веб-приложений на основе JavaScript с помощью робота Googlebot предполагает три основных этапа:
- Сканирование.
- Отрисовка.
- Индексирование.
Робот Googlebot ставит страницу в отдельные очереди на сканирование и отрисовку. Нельзя точно установить, в какой из них находится страница в каждый отдельный момент.
Получив URL из очереди сканирования при помощи HTTP-запроса, робот Googlebot в первую очередь проверяет, разрешена ли обработка страницы. Для этого он считывает файл robots.txt. Если доступ к URL запрещен, Googlebot не отправляет соответствующий HTTP-запрос и пропускает этот URL.
Затем Googlebot находит в полученном ответе другие URL, задаваемые через атрибут href HTML-ссылок, и добавляет их в очередь сканирования. Если вы не хотите, чтобы робот Googlebot переходил по ссылкам, задайте для них атрибут nofollow .
Вы можете добавлять ссылки в DOM с помощью JavaScript при условии, что эти ссылки соответствуют рекомендациям для ссылок, которые может обрабатывать наш робот.
Сканирование URL и анализ HTML-ответа эффективны в случае обычных сайтов и страниц, которые отрисовываются на стороне сервера, когда весь контент содержится в коде HTML из HTTP-ответа. Однако на некоторых сайтах применяется модель оболочки, при которой контент не содержится в исходном коде HTML – чтобы получить его, роботу Googlebot необходимо выполнить код JavaScript.
Если в заголовке или теге meta robots нет запрета на индексирование страницы, Googlebot ставит все URL в очередь на отрисовку. Страница может задержаться в очереди на несколько секунд (в некоторых случаях на более длительное время). Когда у робота Googlebot достаточно ресурсов для обработки, он получает от консольного браузера Chromium отрисованную страницу с выполненным кодом JavaScript. Googlebot анализирует полученный HTML-код, индексирует его контент и ставит все обнаруженные в нем URL в очередь на сканирование.
Мы рекомендуем по возможности использовать отрисовку на стороне сервера или предварительную отрисовку, поскольку в этом случае сайт будет загружаться быстрее. Кроме того, не все роботы могут выполнять код JavaScript.
Используйте уникальные заголовки и краткие описания в информации о странице
Уникальные информативные элементы и метаописания помогают пользователям быстрее находить нужные результаты. В наших руководствах рассказывается, как создавать элементы и метаописания.
Задавать и изменять элементы и метаописания можно с помощью JavaScript.
В зависимости от запроса ваша страница может показываться в результатах поиска с разными заголовками и описаниями. В частности, это может произойти, если заголовок или описание слабо связаны с контентом страницы или если на ней есть другие варианты, которые в большей степени соответствуют поисковому запросу. Подробнее о том, почему вид заголовка в результатах поиска может отличаться от заданного элемента …
Используйте языки и функции, которые поддерживаются роботом Googlebot
Современные браузеры поддерживают различные API, а язык JavaScript быстро развивается. Робот Googlebot может не поддерживать некоторые API и функции JavaScript. Чтобы ваш код был совместим с роботом Googlebot, следуйте нашим рекомендациям.
Для браузеров, которые не поддерживают нужные вам API, рекомендуем использовать дифференциальный показ и полифилы. Поскольку полифилы доступны не для всех функций браузеров, рекомендуем изучить сведения об ограничениях в документации по полифилам.
Используйте понятные коды статусов HTTP
Робот Googlebot получает информацию о проблемах, возникших при сканировании страницы, исходя из кодов статусов HTTP.
Чтобы робот Googlebot мог определить, разрешено ли ему сканировать или индексировать страницу, рекомендуется использовать понятные коды статусов. Например, если страница не найдена, возвращайте код 404 , а если для доступа к странице нужно войти в учетную запись – код 401 . Также с помощью кодов статусов HTTP можно сообщить роботу Googlebot о переносе страницы на новый URL, чтобы мы обновили индекс.
Ознакомьтесь с кодами статусов HTTP и узнайте, в каких случаях их нужно использовать.
Старайтесь не допускать ошибок soft 404 в одностраничных приложениях
В клиентских приложениях, состоящих из одной страницы, маршрутизация зачастую выполняется на стороне клиента. В этом случае использовать коды статусов HTTP может быть невозможно или неудобно. Чтобы при отрисовке и маршрутизации на стороне клиента не возникала ошибка soft 404 , воспользуйтесь одним из следующих способов:
- Настройте переадресацию JavaScript на URL, для которого сервер возвращает код статуса HTTP 404 . Пример: /not-found .
- Добавьте на страницы с ошибками тег , используя JavaScript.
Образец кода с переадресацией
fetch(`/api/products/$`) .then(response => response.json()) .then(product => < if(product.exists) < showProductDetails(product); // shows the product information on the page >else < // this product does not exist, so this is an error page. window.location.href = '/not-found'; // redirect to 404 page on the server. >>)
Образец кода с тегом noindex
fetch(`/api/products/$`) .then(response => response.json()) .then(product => < if(product.exists) < showProductDetails(product); // shows the product information on the page >else < // this product does not exist, so this is an error page. // Note: This example assumes there is no other robots meta tag present in the HTML. const metaRobots = document.createElement('meta'); metaRobots.name = 'robots'; metaRobots.content = 'noindex'; document.head.appendChild(metaRobots); >>)
Применяйте History API вместо фрагментов
Роботы Google могут сканировать только ссылки, которые представляют собой HTML-элемент с атрибутом href .
Если у вас одностраничное приложение с клиентской маршрутизацией, реализовать переходы между разными видами приложения рекомендуется с помощью History API. Чтобы робот Googlebot мог находить обрабатывать и извлекать URL, старайтесь не использовать фрагменты для загрузки разного контента страницы. Ниже приведен пример кода, нарушающего наши рекомендации, так как при его использовании робот Googlebot не сможет корректно распознать URL:
Чтобы у робота Googlebot был доступ к URL, рекомендуем реализовать URL с помощью History API:
Правильно внедряйте теги link с атрибутом rel=»canonical»
Тег link с атрибутом rel=»canonical» можно внедрить с помощью кода JavaScript, хотя мы не рекомендуем этого делать. Google Поиск обработает внедренный канонический URL при отрисовке страницы. Пример внедрения тега link с атрибутом rel=»canonical» с помощью кода JavaScript приведен ниже:
fetch('/api/cats/' + id) .then(function (response) < return response.json(); >) .then(function (cat) < // creates a canonical link tag and dynamically builds the URL // e.g. https://example.com/cats/simba const linkTag = document.createElement('link'); linkTag.setAttribute('rel', 'canonical'); linkTag.href = 'https://example.com/cats/' + cat.urlFriendlyName; document.head.appendChild(linkTag); >);
Если вы используете JavaScript для внедрения тега link с атрибутом rel=»canonical» , помните, что на странице не должно быть других тегов link с атрибутом rel=»canonical» . Если выполнить внедрение неправильно, это может привести к появлению нескольких тегов link с атрибутом rel=»canonical» или изменению имеющегося тега link с атрибутом rel=»canonical» . Возникновение конфликтов или наличие нескольких тегов link с атрибутом rel=»canonical» может привести к непредвиденным последствиям.
Соблюдайте осторожность при работе с тегами meta robots
С помощью тега meta robots вы можете запретить Google индексировать определенную страницу или переходить по ссылкам. Например, Googlebot не будет обрабатывать страницу, если в ее верхней части находится следующий тег meta :
Чтобы добавить на страницу тег meta robots или изменить его, можно использовать JavaScript. В примере ниже показано, как изменить тег meta robots в коде JavaScript, чтобы запретить индексирование страницы в случаях, когда запрос API не возвращает контент.
fetch('/api/products/' + productId) .then(function (response) < return response.json(); >) .then(function (apiResponse) < if (apiResponse.isError) < // get the robots meta tag var metaRobots = document.querySelector('meta[name="robots"]'); // if there was no robots meta tag, add one if (!metaRobots) < metaRobots = document.createElement('meta'); metaRobots.setAttribute('name', 'robots'); document.head.appendChild(metaRobots); >// tell Google to exclude this page from the index metaRobots.setAttribute('content', 'noindex'); // display an error message to the user errorMsg.textContent = 'This product is no longer available'; return; > // display product information // . >);
Если робот Googlebot обнаруживает атрибут noindex в теге meta robots до обработки кода JavaScript, отрисовка и сканирование страницы не выполняются.
Если робот Googlebot обнаруживает тег с атрибутом noindex , он пропускает отрисовку страницы и выполнение кода JavaScript. Из-за этого удалить тег со страницы не получится.
Попытка изменить или удалить тег meta robots с помощью JavaScript может не привести к желаемым результатам. Если тег meta robots изначально содержит атрибут noindex , Googlebot пропустит страницу. Если вы все же хотите, чтобы страница индексировалась, не используйте noindex в ее исходном коде.
Применяйте длительное кеширование
Чтобы сократить число сетевых запросов и потребление ресурсов, робот Googlebot активно использует кешированный контент. Поскольку WRS может не обрабатывать заголовки кеширования, это иногда приводит к использованию устаревших ресурсов JavaScript или CSS. Чтобы избежать этой проблемы, можно включать в название файла цифровой отпечаток контента, например так: main.2bb85551.js . Цифровой отпечаток определяется контентом файла, поэтому при каждом обновлении создается новое название файла. Подробнее о стратегиях долгосрочного кеширования…
Используйте структурированные данные
Если на вашем сайте размещены структурированные данные, вы можете создавать код JSON-LD и внедрять его на страницы ресурса с помощью JavaScript. Обязательно проверяйте результаты своей работы на наличие ошибок.
Следуйте рекомендациям по работе с веб-компонентами
Робот Googlebot поддерживает веб-компоненты. Когда он выполняет отрисовку страницы, то не учитывает содержимое Shadow DOM и Light DOM, т. е. ему доступен только контент, который становится видимым после отрисовки HTML. Узнать о том, как робот Googlebot интерпретирует контент после его отрисовки, можно с помощью проверки оптимизации для мобильных или инструмента проверки URL в сервисе Search Console.
Если контент не виден после того, как выполнена отрисовка HTML-кода, Googlebot не сможет включить его в индекс.
В примере ниже создается веб-компонент, который отрисовывает свой контент Light DOM внутри контента Shadow DOM. Проверить, виден ли контент обоих этих типов после процедуры отрисовки HTML, можно с помощью элемента Slot.
This is light DOM content. It's projected into the shadow DOM.
WRS renders this content as well as the shadow DOM content.
Googlebot проиндексирует этот контент после его отрисовки:
Hello World, this is shadow DOM content. Here comes the light DOM: This is light DOM content. It's projected into the shadow DOM
WRS renders this content as well as the shadow DOM content.
Применяйте отложенную загрузку для изображений
Изображения могут требовать высокой пропускной способности и снижать скорость загрузки ресурсов. Мы рекомендуем применять отложенную загрузку, чтобы графические файлы скачивались только в тот момент, когда их вот-вот увидит пользователь. Чтобы оптимизировать отложенную загрузку для поисковых систем, следуйте специальным рекомендациям.
Обеспечьте доступность ресурса для всех
Создавайте страницы для пользователей, а не только для поисковых систем. При разработке сайта учитывайте потребности посетителей. В частности, подумайте о тех, чьи браузеры не поддерживают JavaScript (например, людях, использующих программы чтения с экрана или старые телефоны). Один из самых простых способов проверить доступность сайта – предварительный просмотр в обычном браузере с отключенной поддержкой JavaScript или в текстовом браузере (например, Lynx). Просмотр сайта в текстовом режиме также позволяет выявить другой контент, который сложно обнаружить роботу Googlebot, например текст на изображениях.
Отправить отзыв
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2023-11-17 UTC.
