Современные сайты рисуют содержимое скриптами, и поиск это умеет обрабатывать — но не сразу и не всегда так, как ожидает разработчик. Разбираем, как устроена обработка и где чаще всего ломается.
Коротко
- Обработка идёт в три этапа: обход, отрисовка, индексирование.
- Страница ждёт отрисовки в очереди.
- Навигация должна быть обычными ссылками.
- Несуществующие страницы должны отдавать ошибку, а не код 200.
Три этапа обработки
Обход
Робот получает исходный код страницы.
Отрисовка
Страница попадает в очередь и выполняется.
Индексирование
Учитывается результат отрисовки.
По документации в очередь отрисовки попадают все страницы с кодом 200, независимо от наличия скриптов, и страница может пробыть в ней от нескольких секунд до заметно большего времени. Именно поэтому содержимое, доступное только после выполнения скриптов, индексируется позже остального — а иногда не индексируется вовсе, если на этапе отрисовки что-то пошло не так.
Типичные проблемы
| Проблема | В чём она |
|---|---|
| Навигация через фрагменты адреса | Вместо History API — робот не проходит по разделам |
| Мягкие ошибки в одностраничных приложениях | Несуществующая страница отдаёт код 200 |
| Неправильная отложенная загрузка | Изображения не попадают в индекс |
| Содержимое в Shadow DOM | Может остаться невидимым |
| Конфликтующие канонические адреса | Несколько тегов на одной странице |
Первые две строки — прямые следствия клиентской маршрутизации. Приложение само решает, что показать, и по умолчанию не сообщает серверу, что страницы не существует; адреса при этом могут не быть настоящими адресами. Про мягкие ошибки — в статье про оформление страницы 404.
Ссылки и навигация
Робот проходит
- Обычная ссылка с адресом в атрибуте
- Относительный адрес
- Ссылка с дополнительными атрибутами
Не проходит
- Элемент с обработчиком нажатия вместо ссылки
- Тег не ссылки с адресом в атрибуте
- Адрес в виде вызова скрипта
- Навигация только через фрагмент адреса
Это самая дорогая из ошибок, потому что скрывает не одну страницу, а целые разделы. Каталог, по которому нельзя пройти ссылками, остаётся для робота набором недостижимых адресов — и никакая карта сайта этого полностью не компенсирует. Про обнаружение — в статье про как робот видит страницу.
Как строить такие сайты
Отдавайте главное с сервера
Текст, заголовки, ссылки.
Используйте настоящие адреса
Через History API, а не фрагменты.
Возвращайте корректные коды ответа
Особенно для несуществующих страниц.
Ставьте мета-теги в разметку
А не проставляйте скриптом.
Проверяйте инструментами панелей
До запуска, а не после.
Первый пункт снимает большую часть рисков разом. Если основное содержимое приходит с сервера, отрисовка перестаёт быть условием попадания в индекс — она лишь добавляет интерактивности. Это и есть смысл серверной отрисовки, о которой спорят при выборе технологии.
Что проверить перед запуском
| Проверка | Что должно быть |
|---|---|
| Исходный код типовых страниц | Основной текст и заголовки на месте |
| Ссылки меню и каталога | Обычные ссылки с адресами |
| Несуществующий адрес | Код ошибки, а не 200 |
| Инструмент проверки адреса | Поиск видит содержимое |
| Канонические адреса | По одному на страницу |
| Изображения с отложенной загрузкой | Попадают в отрисованную версию |
Третья строка — простая проверка, которую почти никогда не делают. Наберите заведомо несуществующий адрес и посмотрите код ответа: если приложение показывает свою страницу «не найдено» с кодом успеха, вы получите мягкие ошибки на всех опечатках и старых ссылках. Полный порядок проверки — в статье про технический аудит сайта.
Частые вопросы
Как поиск обрабатывает страницы со скриптами?
В три этапа: обход, отрисовка и индексирование. В очередь отрисовки попадают все страницы с кодом 200 независимо от наличия скриптов.
Почему содержимое индексируется с задержкой?
Потому что страница ждёт в очереди отрисовки. По документации она может пробыть там от нескольких секунд до заметно большего времени.
Какие ошибки встречаются чаще всего?
Навигация через фрагменты адреса вместо History API, мягкие ошибки в одностраничных приложениях, неправильная отложенная загрузка изображений, содержимое в Shadow DOM и конфликтующие канонические адреса.
Что проверить перед запуском такого сайта?
Исходный код типовых страниц, ссылки меню и каталога, код ответа на несуществующем адресе, результат в инструменте проверки адреса и число канонических тегов на странице.
Продвинем сайт в поиске
Соберём семантику, доведём структуру и текст до уровня топа и будем вести проект до заявок.
Обсудить SEO-продвижение