Индексирование (индексация) сайта — это процесс получения информации о страницах сайта с последующим добавлением данных в поисковую базу и результаты поиска.
В поисковых базах индексирующих роботов содержатся триллионы адресов различных сайтов. Ежедневно из этих триллионов робот скачивает миллиарды документов. И во всем этом большом и постоянном процессе очень важно то, как робот проиндексирует именно ваш сайт и как он включит их в результаты поиска.
Как поиск находит страницу
Процесс индексации происходит в 5 этапов:
- Создание сайта.
- Робот узнает о существовании сайта.
- Планирование.
- Запрос контента, добавление в базу.
- Добавление информации в поиск.
А теперь по порядку пояснение каждого этапа.
Вы создали сайт, разместили его на сервере, наполнили контентом и сделали его доступным для посетителя и индексирующего робота (этап 1). Далее, для того, чтобы сайт начал индексироваться, робот должен узнать о его существовании (этап 2). После того как появилась информация, что в интернете разместили новый сайт робот планирует посещение Вашего сайта (этап 3). Далее он отправляет определенные запросы к Вашему серверу, получая при этом контент от него (этап 4). И полученный контент добавляет в будущем в поисковую базу (этап 5).
Откуда индексирующий робот Яндекса или Google узнает о страницах (пояснения к этапам 1, 2 и 3):
- ссылки на других страницах в интернете;
- Я.Вебмастер или Google Webmaster;
- внутренние ссылки;
- XML карта сайта;
- другие источники, например, Яндекс Метрика.
От чего зависит скорость индексирования:
- загруженность сервера, на котором находится сайт;
- частота обновления страниц;
- интерес посетителей к сайту.
Здесь все просто. Если сервер не справляется с запросами робота, то он начинает посещать сайт реже, следовательно, страницы будут заходить в индекс медленнее. И в тоже время, если робот видит, что на вашем сайте часто добавляется какой-либо новый контент, то он начинает посещать такие страницы чаще, потому что считает, что придя на сайт через какое-то время контент будет снова обновлен.
Также робот смотрит на интерес посетителей сайта к материалу, который Вы размещаете на нем. Другими словами, если новости, информационные статьи или другой контент интересны посетителям, то робот также обращает на это внимание и может пересмотреть свои политики планирования, которые использует при посещении Вашего ресурса.
Запрос и получение контента (пояснение к этапу 4):
- Запрос файла robots.txt (1-2 раза в сутки).
- Запрос конкретной страницы.
Перед началом каждого индексирования робот запрашивает файл robots.txt. Обычно это происходит 1-2 раза в сутки. Робот это делает так относительно редко по той причине, что данный файл редко обновляется. После этого происходит уже запрос конкретной страницы. Робот при этом отсылает на сервер определенные заголовки :
GET /URL HTTP/1.1
Host: HOST
Connection: Keep-Alive
Accept: */*
Accept-Language: ru, uk:q=0,8, be:q=0,8, en:q=0,7, *:q=0,01
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible: YandexBot/3.0; +yandex.com/bots)
From: support@search.yandex.ru
Accept-Language — указывает на то, какие языки поддерживает индексирующий робот. Accept-Encoding — указывает на поддерживаемые форматы сжатия. User-Agent — это заголовок, который показывает, какой именно индексирующий робот к Вам пришел.
После того как робот отправил запрос на сервер, сервер возвращает ответ. Приведу пример :
HTTP/1.1 200 Ok
Date: Mon, 20 oct 2015 19:45:13 GMT
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Mon, 20 oct 2015 19:45:12 GMT
Last-Modified: Mon, 20 oct 2015 19:45:12 GMT
Set-Cookie: yp=; Expires=Fri, 20-oct-2015 19:45:13 GMT; Path=/
X-Frame-Options: DENY
Contet-Encoding: gzip
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Transfer-Encoding: chunked
HTTP/1.1 — обязательный ответ сервера, который показывает в каком статусе находишься запрашиваемая страница. Content-Type — также обязательный ответ, который показывает какой тип документа будет передаваться роботу и его кодировку. Contet-Encoding — показывает тип сжатия, который используется на сервере.
Распространённые HTTP/1.1 коды ответа сервера:
- HTTP-200 — страница доступна, её необходимо индексировать и включать в результаты поиска;
- HTTP-301 — страница перенесена, необходимо включать в результаты поиска новую страницу (цель перенаправления);
- HTTP-302 — страница перенесена, необходимо включать в результаты поиска наиболее короткий адрес;
- HTTP-304 — страница не менялась с момента последнего обращения и контент передаваться не будет;
- HTTP-404 — страница удалена;
- HTTP-503 — страница временно недоступна (рекомендуется включать данный код ответа при проведении каких-либо работ на сервере).
Добавление контента в поисковую базу (пояснение к этапу 5).
Помимо HTTP ответа возвращаемого вашим сервером еще должно передаваться и само содержимое страницы. Итак робот получает:
- HTTP код ответа;
- Текстовое содержимое, мета-теги;
- Исходящие ссылки на внутренние и внешние страницы.
Виды индексирующего робота
После того, как контент получен его нужно включить в результаты поиска. В зависимости от того какой индексирующий робот посещает сайт, ваши страницы могут появиться в результатах поиска в разное время. Это зависит от типа робота, который бывает быстрым или основным .
Быстрый робот посещает, как правило, страницы новостных ресурсов и сайтов у которых информация быстро теряет свою актуальность. То есть те страницы, которые нужно проиндексировать именно сейчас и включить их в результаты поиска. Основной индексирующий робот посещает все страницы, которые ему известны, запрашивает весь контент и включает документы в результаты поисковой выдачи. Единственное, что это происходит медленно в момент обновления поисковой базы (1-2 недели).
Проверка индексации
Проверка индексации каждой страницы сайта — это важный этап работ, который должен, в идеальном случае, проводится автоматически. Если маленький проект ещё можно вручную проверить, то уже большие проекты будет трудозатратно. Конечно, в таком случае нужны специализированные программы или собственная разработка.
Важно понимать, что когда в индекс попадают различные мусорные страницы, например, различные дубли, страницы без содержания, или с ошибками, то это приводит к расползанию статического веса, как на полезные, так одновременно и на мусорные страницы. Также это приводит в непопаданию или выпадению важных продвигаемых страниц в индекс, что в итоге скажется на трафике.
Как узнать, что страница в поиске Яндекса:
- Яндекс.Вебмастер, инструмент — «проверить URL»;
- Результаты поиска с оператором url: , например, url:www.seowind.ru/baza-znanij-seo/indeksaciya-sajta/
- Поиск всех страниц сайта, которые находятся в поиске — оператор site: , например, site:www.seowind.ru
Как управлять индексирующим роботом
Теперь нужно понять, как можно влиять на краулера, чтобы он индексировал только то, что нужно нам. Управлять индексацией можно через:
- файл robots.txt — набор строгих инструкций для робота, которые показывают, что можно индексировать, а что нельзя;
- xml карта сайта — список адресов страниц сайта, которые нужно индексировать;
- настройка зеркал сайта.
Про зеркала: бывает порой так, что один сайт доступен по нескольким адресам (например с www и без www). Чтобы избежать такого дублирования эти зеркала нужно склеить, то есть настроить 301 редирект со второстепенных зеркал на основное. Также для Яндекса можно прописать главное зеркало директивой host в robots.txt или указать в Яндекс.Вебмастере.
Важно помнить ! Чтобы сайты для робота были зеркалами на них должен находиться одинаковый контент.
Особенности для AJAX и локализованных версий сайтов
Осталось рассказать о индексации некоторых видов сайтов.
В первую очередь с динамическим контентом или сайты которые работают на AJAX. Здесь можно выделить 2 частных случая, но они сводятся к одному и тому же. Вебмастерам необходимо создать для индексирующего робота HTML копии, то есть статические копии, где весь контент уже есть и сообщить о их существовании.
В таком случае краулер будет посещать эти HTML копии, которые вы для него создали и в результаты поиска будут включаться динамические страницы предназначенные для посетителей.
Случай 1:
- site.ru/#blog -> site.ru/#blog
- site.ru/#!blog -> site.ru/?_escaped_fragment_=blog
Здесь страница нашего сайта содержит хеш. Мы добавляем знак ! после этого хеша и размещаем страницу по соответствующему адресу.
Случай 2:
- site.ru/blog -> <meta name=»fragment» content=»!»>
- site.ru/blog -> site.ru/blog?_escaped_fragment_=
Во 2 случае мы размещаем мета тег в исходном коде страницы и также добавляем HTML копию для страницы сайта.
Некоторые особенности существуют и в индексации локализованных версий сайтов на других языках . Например, если у вас огромный форум или интернет-магазин с различными языковыми версиями. Чтобы эти языковые версии индексировались и находились в поисковой выдаче необходимо:
- открыть локализованную версию для краулера;
- использовать атрибут hreflang, который размещается в исходном коде всех страниц сайта у которых есть переведенные на другие языки версии.
Пример:
- <link rel=»alternate» hreflang=»ru-ru» href=»https://www.seowind.ru/ru-ru/» />
- <link rel=»alternate» hreflang=»en-us» href=»https://www.seowind.ru/en-us/» />
В таком случае робот принимает решение, что, в поисковую выдачу, например, в США нужно включить соответствующую (английскую) языковую версию сайта.
Также если у Вас есть страница, где язык выбирается автоматически, например, на основании IP адреса посетителя, то роботу тоже можно об этом сказать следующим образом:
<link rel=»alternate» hreflang=»x-default» href=»https://www.seowind.ru/» />
Как ускорить индексацию
Ускорение индексирования страниц сайта — это серьезная задача для seo-специалиста, которая требует решения. Для того чтобы улучшить индексацию сайта необходимо проделать определенный комплекс работ:
- Избавиться от дублей страниц (то есть с абсолютно идентичным контентом, но доступным по разным адреса). Нужно избавить робота от посещения ненужных мусорных страниц.
- Настроить правильную отдачу HTTP кодов ответа сервера. Например, частая ошибка, когда используют код 200 OK вместо 404 на несуществующих страницах сайта.
- Проверить логи вашего сервера и закрыть служебные страницы от индексирования в robots.txt.
- Перенести сайт на более мощный хостинг с хорошим up-time (желательно не менее 99.5%). Убедиться в отсутствии ошибок в отчете Яндекс.Вебмастера «История HTTP кодов ответа».