Большинство из нас пользуется поиском Google каждый день, ни разу не задумываясь, что происходит за строкой поиска. Вы вводите несколько слов, и за долю секунды появляется список страниц, взятых из индекса, содержащего больше текста, чем все библиотеки мира вместе взятые. Напрашивающийся вопрос, на который отвечает эта статья, как весь этот контент туда попал: как Google индексирует сайты?
Краткий ответ: конвейер. Google запускает автоматизированную программу под названием Googlebot, которая обнаруживает страницы, загружает их, рендерит те, что требуют JavaScript, разбирает результат и сохраняет в индекс, из которого поисковая система читает по вашему запросу. В этой статье разбирается каждый из этих этапов, объясняются части, которыми вы можете управлять как владелец сайта (карты сайта и robots.txt), и проводится чёткая граница между тем, что Google делает для построения поиска, и тем, что делает разработчик при парсинге данных из интернета.
Что такое Googlebot?
Googlebot, это веб-краулер Google, иногда называемый пауком или ботом. Это программа, которая автоматически просматривает интернет, переходя по ссылкам со страницы на страницу, как человек кликает по сайту, но делает это непрерывно и в огромном масштабе. Когда люди спрашивают, как Google индексирует сайты, Googlebot, это то, что выполняет работу: он скачивает текст, изображения и другой контент посещаемых страниц, чтобы Google мог их проанализировать и сохранить.
Полезно разделить две идеи, которые часто смешивают. Краулинг, это акт загрузки страницы и чтения её содержимого. Индексирование, это акт анализа этого содержимого и его хранения для последующего поиска. Googlebot выполняет краулинг; системы индексирования Google занимаются индексированием. Оба процесса должны произойти, прежде чем страница появится в результатах, а третий шаг, обслуживание, выполняется каждый раз при вашем поиске. Более широкий обзор того, как работают поисковые пауки в целом, см. в нашем введении что такое веб-краулер.
Как работает поиск Google: три шага
Google описывает собственный процесс в трёх этапах, и это правильная ментальная модель для начала:
- Краулинг. С помощью автоматизированных программ Google непрерывно скачивает текст, изображения и видео со страниц, найденных в интернете. Он не может проиндексировать страницу, которую никогда не загружал.
- Индексирование. При обработке страницы Google анализирует её текст и медиафайлы и сохраняет изученное в индекс, огромную базу данных страниц и их содержимого.
- Обслуживание. Когда вы выполняете поиск, Google возвращает наиболее релевантные результаты из этого индекса, ранжируя их по сотням сигналов.
За этим кратким описанием скрывается много механики, и парсинг находится прямо в её середине. До того как какая-либо страница появится на странице результатов поиска (SERP), Googlebot должен её найти, загрузить и передать на индексирование. Остальная часть этой статьи открывает эту середину.
Как Google индексирует сайты: этап за этапом
Путь от неизвестного URL до результата, по которому можно кликнуть, распадается на пять этапов. Каждый может успешно завершиться, застопориться или не удастся самостоятельно, поэтому страница может быть обходена, но никогда не проиндексирована, или проиндексирована, но редко отображаться.
1. Обнаружение: как Google находит ваши страницы
Google не может обойти страницу, о существовании которой не знает, поэтому всё начинается с обнаружения. Есть два основных пути. Первый, ссылки: когда Googlebot обходит уже известную страницу, он читает каждый якорь на ней и добавляет пункты назначения в очередь URL для посещения, часто называемую фронтиром краулинга. Ссылка со страницы, уже находящейся в индексе, самый распространённый способ обнаружения новой страницы. Второй путь, карты сайта: владелец сайта может предоставить Google явный список URL, что рассмотрено ниже.
Здесь впервые в картину входит вебмастер. Публикуя сайт, вы можете сообщить о нём Google, отправив его через Google Search Console и разрешив Googlebot доступ к вашим страницам. По сути, вы говорите: вот мой адрес, пожалуйста, загляните. Google реагирует отправкой краулера для подтверждения существования сайта, определения доступных страниц и понимания типа их контента.
2. Краулинг: загрузка страницы
Когда URL попадает во фронтир, Googlebot загружает его так же, как браузер: он делает HTTP-запрос и скачивает ответ. Google не обходит каждый известный URL при каждом проходе и не нагружает ни один сайт настолько быстро, насколько это технически возможно. Он работает в рамках бюджета краулинга, практического ограничения на количество страниц, которые он загрузит с данного сайта за определённый период. Этот бюджет определяется двумя факторами: насколько сервер может справляться с краулингом без замедления (скорость краулинга) и насколько Google хочет эти страницы, исходя из их популярности и частоты изменений (спрос на краулинг). Небольшой стабильный сайт обычно укладывается в бюджет; огромный сайт, где новые страницы похоронены глубоко, может обнаружить, что некоторые из них обходятся редко или с задержкой.
3. Рендеринг: выполнение JavaScript
Многие современные страницы не включают реальный контент в начальный HTML. Они отправляют тонкую оболочку и затем строят видимую страницу с помощью JavaScript в браузере. Если бы Google читал только сырой HTML, он полностью пропустил бы этот контент. Поэтому для страниц, которым это нужно, Googlebot рендерит страницу подобно Chrome: он выполняет JavaScript, даёт скриптам внедрить контент, а затем работает с полностью построенной страницей. Рендеринг дороже простой загрузки, поэтому он может происходить в позднем проходе, а не мгновенно. Практический урок для владельцев сайтов: контент, появляющийся только после выполнения JavaScript, может дольше индексироваться, а контент, зависящий от клика пользователя, может вообще не быть увиден. Если вы сами строите или парсите такие страницы, наш гайд по краулингу JavaScript-сайтов охватывает механику.
4. Разбор и индексирование: осмысление страницы
После загрузки и рендеринга страницы Google разбирает HTML, чтобы извлечь важные части: текстовый контент, заголовки, ссылки, изображения и их alt-текст, структурированные данные и метаданные. Это тот же шаг разбора, что выполняет любой краулер, читая разметку для извлечения смысла из неё. Извлечённая информация затем анализируется и записывается в индекс Google, огромную базу данных, сопоставляющую слова и темы со страницами, которые их охватывают. Индексирование также включает оценку, стоит ли хранить страницу вообще; тонкие, дублированные или заблокированные страницы могут быть обходены и всё равно исключены из индекса.
5. Обслуживание и ранжирование: ответ на запрос
Индексирование наполняет библиотеку; обслуживание, то, что происходит, когда кто-то приходит с вопросом. Когда вы выполняете поиск, Google просматривает индекс в поисках совпадающих страниц и ранжирует их по множеству сигналов: насколько релевантен и качественен контент, насколько авторитетен и надёжен сайт, а также контекстуальные факторы вроде вашего языка и местоположения. Ранжирование, отдельная проблема, отличная от парсинга, но именно ради него существует парсинг: Google загружает и индексирует интернет, чтобы в момент запроса иметь что-то хорошее для ранжирования и возврата.
Googlebot умеет загружать, рендерить JavaScript и игнорировать блокировки, потому что Google располагает инфраструктурой для этого. Если вам нужна та же возможность для собственного краулинга, без построения рендер-фермы и пула прокси, Crawling API обрабатывает это одним запросом: рендерит страницы, ротирует реальные пользовательские IP и поглощает CAPTCHA, так что вы указываете URL и получаете чистый HTML вместо страницы блокировки. Начните на бесплатном тарифе с лимитом до 20 000 запросов, без кредитной карты.
Карты сайта и robots.txt: два файла, направляющих Googlebot
Большая часть краулинга автоматична, но владельцы сайтов получают два стандартных файла для его направления. Они действуют в противоположных направлениях, и грамотное использование обоих, основа технической SEO-оптимизации.
Карта сайта: вот что нужно обойти
Карта сайта, это XML-файл со списком URL, о которых вы хотите, чтобы Google знал, опционально с подсказками о том, когда каждая страница последний раз менялась. Она не вынуждает Google обходить что-либо, но является самым чётким способом указать на страницы, которые ссылки сами по себе могут не раскрыть: новый контент, глубокие страницы или разделы с небольшим количеством внутренних ссылок. Вы отправляете карту сайта через Google Search Console, то же место, где подтверждаете владение сайтом. Думайте об этом как о передаче краулеру оглавления, а не о том, чтобы он искал каждую главу вслепую.
robots.txt: вот что оставить в покое
Файл robots.txt находится в корне вашего домена и сообщает послушным краулерам, какие пути они могут и не могут загружать. Googlebot читает его перед краулингом и соблюдает правила Disallow. Он полезен для ограничения доступа краулера к областям, которые тратят бюджет краулинга впустую или не должны появляться в поиске, например внутренние результаты поиска или промежуточные пути. Стоит отметить распространённое заблуждение: robots.txt контролирует краулинг, а не индексирование. Заблокированная в robots.txt страница всё равно может быть проиндексирована без её содержимого, если Google найдёт ссылки на неё в другом месте; чтобы исключить страницу из индекса, используйте директиву noindex, что означает: страница должна быть доступна для краулинга, чтобы Google увидел эту инструкцию.
Чем это отличается от парсинга данных разработчиком
Люди часто называют то, что делает Google, парсингом, и на уровне загрузки и разбора страниц это так. Но между построением поискового индекса Googlebot и парсингом конкретного сайта разработчиком ради данных есть реальные различия, которые имеют значение.
Задача Googlebot, широта охвата: обнаружить как можно больше открытого веба, сохранить универсальную копию и ранжировать её по произвольным запросам позже. Парсер разработчика обычно прямо противоположный, узкий и целенаправленный: он посещает известный набор страниц и извлекает конкретные поля, например цены, отзывы или объявления, в структурированный формат вроде JSON или CSV. Googlebot следует ссылкам наружу для обнаружения новых страниц; типичный парсер следует известному паттерну URL для сбора известных данных.
Другое важное различие, разрешение и приглашённость. Владельцы сайтов, как правило, хотят, чтобы Googlebot их обходил, потому что попадание в индекс, это источник трафика, поэтому они публикуют карты сайта и открывают нужные пути в robots.txt, специально приглашая его. Сторонний парсер не имеет такого формального приглашения, поэтому должен соблюдать те же правила robots.txt, честно идентифицировать себя и держать темп запросов вежливым. Поисковые системы сами применяют зрелые средства защиты от нежелательного автоматического сбора данных из своих результатов, это отдельная тема; мы рассматриваем её в статье как поисковые системы обнаруживают парсеров. Если вас интересует SERP разных провайдеров, а не один сайт, в статье парсинг Google, Yahoo и Bing сравнивается то, что каждый движок предоставляет.
Зачем вообще парсить Google?
Google доминирует в поиске, занимая большую часть всех мировых поисковых запросов, поэтому данные на его страницах результатов действительно ценны для любого, кто занимается маркетингом, исследованиями или конкурентным анализом. Google не предлагает простого встроенного способа экспортировать данные SERP в масштабе, что и является причиной их парсинга разработчиками. Распространённые законные причины включают:
- Отслеживание SEO. Мониторинг того, как ваши страницы ранжируются по конкретным запросам с течением времени для измерения поисковой производительности.
- Конкурентный и рыночный анализ. Наблюдение за тем, кто ранжируется выше вас, и отслеживание цен или позиционирования в своей нише.
- Исследование ключевых слов и контента. Определение релевантных ключевых слов и составление списков URL страниц, соответствующих теме.
- Разведка рекламы. Наблюдение за тем, какие платные результаты появляются по каким запросам, наряду с органическими листингами.
- Анализ трендов. Выявление изменений в том, что ранжируется, что может намекать на то, как алгоритм взвешивает результаты.
Ответственный парсинг
Если вы сами парсите интернет, ответственная позиция, та же, что и технически правильная. Уважайте условия обслуживания каждого сайта и директивы robots.txt, и имейте в виду, что условия поисковой системы, как правило, ограничивают парсинг самого SERP. Отдавайте предпочтение общедоступным данным перед чем-либо, требующим логина или оплаты, и не собирайте персональные данные, для обработки которых у вас нет оснований. Держите темп запросов разумным, чтобы не конкурировать с реальными пользователями за мощности сайта, честно идентифицируйте свой трафик там, где это ожидается, и кэшируйте результаты, чтобы не перезагружать одни и те же страницы. Вежливый, публичный и ограниченный по частоте сбор, это одновременно и этичный выбор, и наименее вероятный для блокировки.
Ключевые выводы
- Googlebot, это движок. Краулер Google обнаруживает, загружает и скачивает страницы для их анализа и хранения; краулинг и индексирование, отдельные шаги.
- Конвейер состоит из пяти этапов. Обнаружение, краулинг, рендеринг, разбор и индексирование, затем обслуживание. Страница может застрять на любом из них, поэтому «обходенная» никогда не означает автоматически «проиндексированная» или «ранжированная».
- JavaScript требует рендеринга. Контент, построенный клиентскими скриптами, виден только после рендеринга страницы Google, дополнительного и более медленного шага, который может задержать или пропустить поздно загружаемый контент.
-
Два файла направляют краулинг. Карты сайта говорят Google, что нужно обойти;
robots.txtговорит, что пропустить, и управляет краулингом, а не индексированием. - Краулинг Google, не ваш парсер. Googlebot широко обходит открытый веб по приглашению, чтобы построить индекс; разработчик парсит узко ради конкретных полей и должен соблюдать правила, установленные сайтом.
Часто задаваемые вопросы
Как Google индексирует сайты?
Google использует автоматизированный краулер под названием Googlebot. Он обнаруживает URL через ссылки и карты сайта, загружает каждую страницу HTTP-запросом, рендерит страницу (выполняя JavaScript) при необходимости, затем разбирает результат для извлечения текста, ссылок и метаданных. Эта информация записывается в индекс Google, из которого поисковая система читает, отвечая на запросы.
В чём разница между краулингом и индексированием?
Краулинг, это загрузка страницы и чтение её содержимого; индексирование, анализ этого содержимого и его хранение для последующего поиска. Googlebot выполняет краулинг, а системы индексирования Google занимаются индексированием. Страница должна быть обходена до того, как будет проиндексирована, но факт обхода не гарантирует индексирования.
Что такое бюджет краулинга?
Бюджет краулинга, это практическое ограничение на количество страниц, которые Google загрузит с данного сайта за определённый период. Он определяется тем, насколько ваш сервер может справляться с краулингом без замедления, и тем, насколько Google хочет ваши страницы, исходя из их популярности и частоты изменений. Небольшие сайты редко сталкиваются с этим ограничением; очень крупные могут.
Выполняет ли Googlebot JavaScript?
Да. Для страниц, чей контент построен клиентскими скриптами, Googlebot рендерит страницу подобно Chrome, выполняя JavaScript перед разбором результата. Рендеринг дороже простой загрузки, поэтому он может происходить в позднем проходе, что означает: зависящий от скриптов контент может дольше индексироваться.
Как карты сайта и robots.txt влияют на краулинг?
Карта сайта, это список URL, о которых вы хотите, чтобы Google знал, полезный для указания на новый или глубокий контент. Файл robots.txt сообщает краулерам, каких путей избегать. Карты сайта приглашают к краулингу, а robots.txt его ограничивает, но учтите: robots.txt контролирует краулинг, а не индексирование; чтобы исключить страницу из индекса, нужна директива noindex на странице, доступной для краулинга.
Парсинг результатов поиска Google, то же самое, что делает Googlebot?
Не совсем. Googlebot широко обходит открытый веб для построения общего индекса, обычно при поддержке владельцев сайтов. Парсинг страниц результатов Google означает сбор данных непосредственно из SERP, что условия Google, как правило, ограничивают, и против чего активно защищают его антибот-системы. Механика загрузки и разбора схожа, но цель, разрешение и правила различаются.
Обходите любой сайт в масштабе, без борьбы с инфраструктурой.
Crawlbase берёт на себя прокси, отпечатки и CAPTCHA, чтобы ваша команда выпускала конвейеры данных вместо поддержки обвязки краулинга. 1 000 запросов бесплатно, без карты.
