Опубликовано: 12 февраля 2025 г.
Поиск Google — один из самых популярных сайтов в интернете , а также один из самых быстрых. Команда поиска постоянно инвестирует в ускорение процесса поиска. На таком популярном ресурсе, как Google Поиск, даже миллисекунды улучшения быстро приводят к значительным результатам! Это стремление к скорости распространяется на известную главную страницу Google, страницу результатов поиска (SERP) и переходы на другие сайты из результатов поиска.
Поисковая система Google использует API Speculation Rules для повышения скорости навигации от страницы результатов поиска к ссылкам на результаты, и некоторые функции этого API могут представлять интерес для владельцев других сайтов.
Предварительно загрузить первые два результата
Одно из первых применений правил спекуляции заключалось в предварительной загрузке первых двух результатов поиска. Например, поиск по запросу "test" включает в себя следующее правило спекуляции на странице:
{
"prefetch": [{
"source": "list",
"requires": [
"anonymous-client-ip-when-cross-origin"
],
"referrer_policy": "strict-origin",
"urls": [
"https://www.merriam-webster.com/dictionary/test",
"https://dictionary.cambridge.org/dictionary/english/test"
]
}]
}
Внизу страницы находятся две первые ссылки на результаты поиска, и они загружаются автоматически. Если пользователь перейдет по ним, он получит преимущество, поскольку HTML-документ уже должен быть доступен браузеру.
Правило и попытки предварительной выборки можно увидеть в разделе «Инструменты разработчика» -> вкладка «Спекуляции» , как было описано ранее :

Префекции, обеспечивающие конфиденциальность
Поскольку эти ссылки ведут на контент других сайтов, предварительная загрузка требует соблюдения дополнительных мер конфиденциальности, так как пользователь еще не посещал эти сайты.
К счастью, API был разработан с учетом этого, и Google Search использует две функции для сохранения конфиденциальности пользователей.
Во-первых, необходимо использовать конфигурацию, requires настроек, чтобы гарантировать, что предварительная загрузка использует частный прокси-сервер предварительной загрузки в Chrome :
"requires": [
"anonymous-client-ip-when-cross-origin"
],
Для обеспечения анонимизации IP-адреса используется прокси-сервер, чтобы предотвратить утечку IP-адреса пользователя на сайт до того, как пользователь перейдет по ссылке со страницы результатов поиска.
Во-вторых, Google Поиск использует параметр referrer_policy , чтобы гарантировать, что никакие данные, закодированные в URL-адресе страницы поиска, не будут отправлены на сайт в заголовке HTTP referer :
"referrer_policy": "strict-origin",
В большинстве браузеров сейчас по умолчанию используется параметр strict-origin-when-cross-origin , но этот параметр использует более строгую настройку, чтобы применять политику strict-origin referrer даже для предварительных запросов из одного источника.
Третий уровень защиты автоматически срабатывает, если у пользователя есть файлы cookie для сайта. В этом случае он может получать разные результаты в зависимости от этих файлов cookie, и Chrome не будет использовать предварительно загруженный HTML-код:

Это означает, что пользователи с файлами cookie не смогут воспользоваться преимуществами улучшенной производительности, обеспечиваемой предварительной загрузкой при переходе на этот сайт, но при этом приоритет отдается защите конфиденциальности и точной загрузке страниц. Кроме того, если пользователь уже посещал сайт и имеет для него файлы cookie, то у него, скорее всего, будут кэшированы некоторые ресурсы этого сайта, и он, вероятно, увидит более быструю загрузку страницы даже без предварительной загрузки.
Влияние предварительной загрузки первых двух результатов на пользователей
Как и в случае с большинством изменений, Google Search внедрил предварительную загрузку данных в рамках A/B-тестирования и измерил её влияние. Были отмечены значительные улучшения в показателе Largest Contentful Paint (LCP) . В Chrome для Android время отклика LCP для кликов из Google Поиска сократилось на 67 миллисекунд. Последующий запуск для настольной версии Chrome привёл к аналогичному улучшению LCP на 58,6 миллисекунд. Эти улучшения касаются сайта, на который осуществляется переход, а не самого сайта Google Поиска, но они приносят пользу пользователям Google Поиска.
Эти улучшения в LCP могут показаться незначительными, но для такого сверхоптимизированного сайта, как Google Search, мы приветствуем даже улучшения на миллисекунды для наших пользователей, поэтому улучшения в диапазоне десятков миллисекунд — это редкость! Ваш сайт может получить значительно большую выгоду — попробуйте , чтобы убедиться!
Предварительная загрузка данных с использованием правил спекуляции включена по умолчанию в приложении «Поиск» на Android с октября 2022 года и была внедрена на настольных компьютерах к сентябрю 2024 года.
Помимо первых двух результатов
С момента первоначального запуска API правил спекуляций он был усовершенствован за счет свойства немедленного выполнения , которое позволяет осуществлять спекуляции только тогда, когда пользователь наводит курсор на ссылку или начинает щелкать по ней.
Поисковая система Google решила предварительно загружать не только первые два результата поиска, но и остальные — но только когда пользователь наводит курсор на ссылку, используя настройку moderate активности. Это предотвращает ненужную трату ресурсов на ссылки, по которым вероятность клика невелика.
Опять же, это правило можно увидеть в инструментах разработчика, если выполнить поиск в Chrome, и оно идентично предыдущему правилу, но на этот раз с параметром "eagerness": "moderate" :

Наведение курсора на эти ссылки запустит предварительную загрузку. Обратите внимание, что Google Поиск явно перечисляет URL-адреса, а не использует функцию правил документа API Speculation Rules, поскольку они не хотят предварительно загружать другие URL-адреса, например, рекламные объявления.
Влияние предварительной загрузки результатов, выходящих за рамки первых двух, на пользователей.
В настольной версии Chrome время отрисовки первого контента (FCP) для навигации из поиска Google сократилось на 7,6 миллисекунды, а время отрисовки нижнего колонтитула (LCP) — на 9,5 миллисекунды (как показали A/B-тесты). Эти результаты представляют собой меньший прирост по сравнению с улучшением на 58,6 миллисекунд, наблюдаемым в первых двух результатах , но это неудивительно, учитывая меньшее время задержки, поскольку данные не загружаются так быстро. Тем не менее, это всё ещё хороший прирост по тем же причинам, что и ранее.
Функция предварительной загрузки оставшихся результатов поиска на настольных компьютерах была внедрена по умолчанию в декабре 2024 года.
На мобильных устройствах, где эффект наведения курсора обычно недоступен, существенного улучшения не наблюдалось, и поэтому, хотя и не было отмечено регресса, эти дополнительные предварительные выборки не были включены на мобильных устройствах.
Дальнейшее использование спекуляций для поиска Google.
Google продолжает экспериментировать с этим захватывающим новым API, и мы надеемся сделать просмотр веб-страниц максимально быстрым. У нас есть еще несколько козырей в рукаве, над которыми мы работаем.
Например, Chrome внедряет предварительно отображаемые страницы результатов поиска — для пользователей с включенной функцией предварительной загрузки — когда пользователи вводят поисковые запросы в адресную строку Chrome, а также в других местах, таких как поле поиска на Android. Эта функция также доступна для внедрения другими поисковыми системами — не только Google Search, — хотя на данный момент нам неизвестно о каких-либо реализациях для других поисковых систем.
Google Search не планирует внедрять предварительную отрисовку самих ссылок в результатах поиска, поскольку эта функция недоступна для навигации между сайтами (и даже для предварительной отрисовки ссылок между сайтами с разных источников требуется отдельное включение ).
Примечание о поддержке браузеров.
В настоящее время API правил спекулятивного выполнения реализован в браузерах на основе Chromium, но Chrome публикует спецификацию API в рамках процесса стандартизации W3C и заинтересован в том, чтобы другие браузеры также реализовали этот API.
В настоящее время приватный прокси-сервер предварительной загрузки реализован только в Chrome, а не в других браузерах на основе Chromium. Однако, если другие браузеры реализуют свои собственные приватные прокси-серверы предварительной загрузки, Google Search может рассмотреть возможность внедрения этих улучшений и в них.
Из-за проблем с конфиденциальностью, связанных с предварительной загрузкой без использования частного прокси-сервера, Google Search не выполняет предварительную загрузку в браузерах, не поддерживающих эту технологию, и поэтому не реализовал резервный вариант с использованием других технологий для других браузеров. Однако, как прогрессивное улучшение, это просто означает, что пользователи этих браузеров не получают выгоды от этого небольшого увеличения скорости.
Попробуйте это на своём сайте!
API правил спекулятивной обработки доступен для использования всеми сайтами, а не только поиском Google. Помимо возможностей предварительной загрузки, описанных здесь, предварительная отрисовка предлагает дополнительные преимущества, когда и где её можно использовать. Учитывая очевидные преимущества этого API для пользовательского опыта на таких крупных сайтах, как поиск Google, мы призываем всех владельцев сайтов изучить возможности его использования и потенциально извлечь из него выгоду.
Кроме того, описанные в этом посте меры защиты конфиденциальности доступны и для других сайтов — с оговоркой, что для того, чтобы сайты, не принадлежащие Google, могли направлять трафик через частный прокси-сервер предварительной загрузки Google, пользователям необходимо включить поддержку расширенной предварительной загрузки в своих настройках . Это связано с тем, что Google выступает в качестве дополнительной стороны между пользователем и сайтом, тогда как на сайтах Google это не требуется, поскольку Google уже является одной из участвующих сторон.