Буквально несколько часов назад на своей странице в Google+ представитель поиска Джон Мюллер (John Mueller) опубликовал подробнейшее описание того, как алгоритмы Google обрабатывают сайты на javascript (включая AJAX) и, так называемые, Progressive Web Apps — веб-приложения, созданные с применением новейших технологий и стандартов.
Ниже я приведу подробный перевод публикации, который, возможно, поможет вам в дальнейшей работе над сайтами:
- Не занимайтесь клоакингом, пытаясь обмануть поискового робота. Используйте технологии feature detection и progressive enhancement для того, чтобы контент ваших сайтов был доступен всем пользователям. Избегайте редиректов на страницы, которые больше не поддерживаются браузером. Там, где это необходимо, применяйте полизаполнение (так называемые, polyfill) — специальные библиотеки, которые добавляют в устаревшие версии браузеров поддержку самых современных возможностей. Не стоит забывать о том, что на текущий момент Googlebot не поддерживает такие функции и сценарии, как: Service Workers, Fetch API, Promises (специальные объекты, которые используется для отложенных и асинхронных вычислений), и requestAnimationFrame (код для выполнения анимации в браузере).
- Используйте атрибут rel="canonical" для указания канонических URL, если контент размещается на нескольких URL-ах.
- Избегайте использования AJAX-подобных механизмов сканирования. Это — самая распространенная ошибка, которую допускают специалисты при смене подходов к программированию сайтов. Не забудьте удалять тег "meta fragment" из копии HTML AJAX страниц. Никогда не используйте данный тип тегов, если на странице применяется тег "escaped fragment".
- Не используйте в URL-ах символ "#", Google очень редко индексирует такие адреса. Структура «стандартного» адреса страницы должна строиться по принципу: путь/имя файла/параметры запроса, за исключением тех случаев, когда для расширения возможностей навигации используется объект History API.
- Чаще применяйте инструмент «Сканер Google для сайтов», доступный в Search Console. Он позволит вам лучше понять, какими видят страницы сайта алгоритмы поискового робота Googlebot. Имейте в виду инструмент не поддерживает URL-ы, содержащие символы "#!" или "#".
- Убедитесь в том, что все запрашиваемые ресурсы, включая файлы javascript, фреймворки, ответы сервера, сторонние API и т.д., не закрыты в файле robots.txt. «Сканер Google для сайтов» покажет вам список ресурсов, закрытых от индексации. Если они были закрыты в файле robots.txt (это часто происходит со сторонними API) или временно недоступны по другим причинам, важно дополнительно убедиться в том, что код работает страницы исполняется корректно.
- Google поддерживает использование javascript для создания тайтлов, метаописаний и мета-тегов robots, структурированных данных, и других видов мета-данных. Во всех случаях использования формата AMP страница AMP HTML должна быть статической. В то же время, при создании веб-страниц допустимо использовать элементы JS/PWA. Не забывайте создавать файлы sitemap с применением тега тег <lastmod> — это укажет поисковому роботу, что на сайте производились изменения.
- Ну, и напоследок, не стоит упускать из виду то, что другие поисковые системы и онлайн-сервисы также должны получать беспрепятственный доступ к содержимому страниц ваших сайтов. При этом они могут не поддерживать javascript целиком или делать это при помощи других наборов инструментов и подходов.
Завершая этот подробный перечень, Джон Мюллер отмечает, что ни одна из рекомендаций не является чем-то неожиданным и радикально новым для специалистов. При этом они будут актуальны на протяжение всего обозримого будущего. Оптимизация страниц и веб-приложений на javascript под поисковые системы может показаться пугающе сложной по началу. Однако, постигнув эту практику, можно добиться невероятных успехов не только с точки зрения SEO, но и в плане создания современных, быстрых и технически совершенных сайтов.