Главная / Блог / Поэтапная загрузка

Поэтапная загрузка

Бесконечная прокрутка и SEO в 2026 году: как не спрятать каталог от поиска

Бесконечная лента удобна, пока пользователь листает товары или публикации. Для поискового робота один длинный экран не существует: он загружает URL и не обязан прокручивать страницу или нажимать «Показать еще». Поэтому интерфейс нужно построить поверх доступной последовательности адресов. Эта статья только о infinite scroll и load more; оптимизация изображений через lazy loading рассматривается отдельно.

Продуктовая команда проектирует бесконечную ленту с отдельными URL и доступной пагинацией

Краткий вывод

Что важно понять до чтения деталей

  • Прокрутка не заменяет ссылки
  • Каждой части нужен постоянный URL
  • History API отражает видимую часть
  • Fallback работает без JavaScript

01

Почему робот может увидеть только первый экран

Классическая реализация ждет, пока пользователь приблизится к нижней границе, затем отправляет JavaScript-запрос и добавляет карточки в DOM. Поисковый робот может отрендерить скрипты, но не воспроизводит все жесты и не гарантирует многократную прокрутку. В результате первая порция получает ссылки и контекст, а последующие товары существуют только внутри интерактивной сессии. Для большого каталога это означает слабое обнаружение и редкий обход глубоких карточек.

Проблема не решается увеличением первой порции до сотен объектов: страница становится тяжелой, LCP и INP ухудшаются, мобильный пользователь расходует трафик. Нужен прогрессивный подход: базовая структура работает как пагинация, а бесконечная прокрутка улучшает интерфейс. Тогда и робот, и человек получают подходящий способ навигации, не создавая две разные версии содержания.

02

Разбейте ленту на самостоятельные части

Каждый фрагмент должен иметь постоянный URL, который можно открыть напрямую и получить тот же набор объектов. Например, `?page=3` возвращает третью часть даже без истории предыдущих действий. Между частями существуют обычные ссылки вперед и назад. Они могут быть визуально заменены кнопкой «Показать еще» при работающем JavaScript, но остаются в HTML как надежный резерв и путь для обхода.

Границы частей должны быть стабильными. Если алгоритм случайно меняет сортировку, пользователь после возврата увидит другой набор, а робот обнаружит дубли и пропуски. Для новостной ленты полезна курсорная модель, однако курсор тоже должен давать воспроизводимый адрес и не содержать короткоживущий токен сессии. Для коммерческого каталога чаще понятнее номер страницы и фиксированная сортировка.

03

Как использовать History API без путаницы

Когда пользователь доходит до новой части, интерфейс может обновлять адрес через `history.pushState` или `replaceState`. URL в строке браузера должен соответствовать видимому фрагменту, чтобы его можно было сохранить и открыть повторно. Не создавайте запись истории на каждый пиксель прокрутки: кнопка «Назад» превратится в десятки шагов. Обычно адрес меняют при пересечении четкой границы страницы.

При загрузке URL `page=4` пользователь должен сразу попасть к началу четвертого набора, а не ждать автоматической прокрутки через три предыдущих. Состояние фильтров и сортировки сохраняют в адресе предсказуемо. После возврата из карточки желательно восстановить позицию. Это улучшает не только SEO, но и конверсию: покупатель не теряет место сравнения и продолжает выбор.

04

Кнопка «Показать еще» или автоматическая прокрутка

Кнопка дает пользователю контроль и обычно проще для доступности и производительности. Она ясно показывает, что список продолжится, и не сдвигает футер бесконечно. Автоматическая подгрузка подходит контентным лентам, но в каталоге может мешать добраться до контактов, фильтров и юридических ссылок. Выбор интерфейса не меняет технического требования: следующая часть доступна по ссылке и отдельному URL.

Хороший компромисс — несколько автоматических порций, затем явная кнопка, либо закрепленная навигация к футеру. Показывайте индикатор загрузки и обрабатывайте ошибку сети: карточки не должны исчезать молча. Если запрос не выполнился, пользователь видит повторную попытку, а базовая ссылка остается рабочей. Такой fallback особенно важен на мобильном интернете.

05

Canonical, метаданные и дубли

Части ленты, содержащие разные объекты, используют self-canonical. Не канонизируйте все на первый экран только потому, что пользователь визуально видит единую ленту. Серверная версия каждого URL должна иметь корректный title, доступный список и ссылки. При этом длинные SEO-тексты и оффер категории обычно остаются на первой части, чтобы не повторяться после каждого продолжения.

Следите за комбинациями фильтров и сортировок. Infinite scroll может незаметно генерировать адреса с разным порядком параметров, курсорами и временными ключами. Внутренние ссылки должны использовать одну каноническую форму, а служебные токены не попадать в индексируемый URL. Иначе удобная лента превращается в бесконечное пространство дублей.

06

Как протестировать реализацию

Откройте первую часть с отключенным JavaScript и убедитесь, что ссылка на следующую доступна. Затем напрямую загрузите средний URL и сравните набор карточек с тем, что появляется при прокрутке. Проверьте коды ответа, canonical, заголовки, сохранение фильтров, переход назад и поведение при ошибке API. Отдельно посмотрите отрендеренный HTML в инструментах поисковых систем.

Краулер должен находить конечные карточки без симуляции прокрутки. В аналитике отслеживайте глубину просмотра, клики по «Показать еще», переходы в карточки и покупки. Если пользователи листают много частей, но редко открывают товар, проблема уже не в индексации, а в сортировке, фильтрах или качестве карточек. SEO-настройка обеспечивает доступ; бизнес-метрики показывают, насколько этот доступ полезен.

Практика

Что проверить на своем сайте

  1. Разбить список на части
  2. Добавить HTML-ссылки
  3. Проверить прямую загрузку
  4. Настроить историю браузера
  5. Убрать временные токены
  6. Протестировать ошибки API

Применить к проекту

Что можно сделать после статьи

Если тема похожа на вашу ситуацию, следующий шаг простой: проверить сайт на спрос, структуру, технические ограничения и точки, где пользователь не доходит до заявки.

Источники

Какие источники использовали

Команда

Материалы пишет проектная команда

В статьях мы соединяем стратегию, техническое SEO, контент, аналитику и опыт внедрений. Поэтому материал можно читать не как теорию, а как рабочую основу для улучшения сайта.

Андрей: SEO-стратег в проектной команде Индекс Спроса

Андрей

SEO-стратег

Отвечает за гипотезы роста, приоритеты страниц и связь SEO с заявками.

Мария: SEO-специалист в проектной команде Индекс Спроса

Мария

SEO-специалист

Собирает спрос, проектирует посадочные и ведет внутреннюю оптимизацию.

Павел: Технический SEO в проектной команде Индекс Спроса

Павел

Технический SEO

Проверяет индексацию, скорость, дубли, микроразметку и задачи для разработки.

Екатерина: Контент-лид в проектной команде Индекс Спроса

Екатерина

Контент-лид

Готовит структуру страниц, задания редакторам, FAQ и блоки экспертности.

Дмитрий: Веб-аналитик в проектной команде Индекс Спроса

Дмитрий

Веб-аналитик

Настраивает цели, формы, отчеты и контроль вклада посадочных страниц.

Анна: Project / account в проектной команде Индекс Спроса

Анна

Project / account

Держит сроки, согласования, статусы задач и понятную связь с клиентом.

FAQ

Вопросы по теме

Google прокручивает бесконечную ленту?

Нельзя на это рассчитывать. Контент должен быть доступен по отдельным URL и обычным ссылкам.

Нужна ли пагинация при infinite scroll?

Да, как техническая основа и fallback, даже если пользователь видит кнопку или автоматическую подгрузку.

Можно ли использовать History API?

Да, если каждый адрес воспроизводит соответствующий набор и история браузера остается удобной.

Это то же самое, что lazy loading?

Нет. Infinite scroll загружает новые части списка, а lazy loading откладывает ресурсы уже существующего документа.

Следующий шаг

Проверьте, как эта логика работает на вашем сайте

Мы посмотрим спрос, структуру, технику, контент и заявки. После короткого разбора будет понятно, где теряется рост.