Оптимізація Pagination SEO (rel=prev/next, Load More, Infinite Scroll)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Оптимізація Pagination SEO (rel=prev/next, Load More, Infinite Scroll)
Середня
~2-3 робочих дні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Оптимізація Pagination SEO (rel=prev/next, Load More, Infinite Scroll)

Пагінація — один з найбільш недооцінених джерел SEO-проблем. На каталозі з 50 сторінками пагінації поисковик витрачає crawl budget на сотні сторінок з дублюючимся контентом, при тому ні одна не отримує достатньо ссилочного ваги для потрапляння в топ. Правильна пагінація — це вибір моделі (нумерована, Load More, Infinite Scroll), коректна сигналізація поисковику та збереження UX для користувача.

Після скасування rel=prev/next (2019)

Google перестав використовувати rel="prev" та rel="next" як сигнал для групування сторінок. Вони не завдають шкоди, але покладатися на них як на рішення проблеми пагінації більше неможна.

Актуальні методи:

  • Canonical на першу сторінку (якщо сторінки пагінації не мають унікального контенту)
  • Самоссилочний canonical на кожній сторінці пагінації (якщо контент унікальний)
  • Параметр у robots.txt / GSC для виключення сторінок пагінації з індексу
  • View-all сторінка як canonical source

Нумерована пагінація

Варіант A: Індексовані сторінки пагінації

Коли сторінки пагінації можуть ранжируватися самі по собі:

<!-- На /products/?page=2 -->
<link rel="canonical" href="https://example.com/products/?page=2" />

Кожна сторінка має унікальний <title> та <h1>:

<title>Каталог смартфонів — сторінка 2 | Магазин</title>

Варіант B: Все сторінки пагінації → canonical на першу

Для інформаційних розділів, блогів, архівів — де сторінка 2 не має окремої цінності:

<!-- На /blog/?page=3 -->
<link rel="canonical" href="https://example.com/blog/" />

Або noindex:

<meta name="robots" content="noindex, follow" />

follow важливий: роботу потрібно перейти по посиланням щоб знайти товари/статті.

URL-структура:

Path-based (/products/page/2/) краще ніж query-string (/products/?page=2) — краще сприймається краулерами.

Нормалізація в nginx:

if ($arg_page = "1") {
    return 301 $uri;
}

Load More: SEO без змін URL

Кнопка "Загрузити ще" підгружає контент через AJAX без зміни URL.

Проблема: Google рендерить JS але не натискає кнопки — контент за "Load More" невидимий.

Рішення 1: History API + pushState

При клику змінити URL:

function loadMore(page) {
    fetch(`/api/products?page=${page}`)
        .then(r => r.json())
        .then(data => {
            appendProducts(data.items);
            history.pushState(
                { page },
                '',
                `/products/?page=${page}`
            );
        });
}

Рішення 2: SSR першої порції + динамічна подгрузка

Перші N товарів рендеряться на сервері:

<div id="product-grid">
  <!-- перші 24 товари статично -->
</div>
<button id="load-more" data-page="2">Загрузити ще</button>

Infinite Scroll

Найгірший варіант для SEO за замовчуванням. Контент нижче fold не гарантовано проіндексується.

Правильна реалізація: Infinite Scroll + фрагментні URL

При пересіченні порога прокрутки (Intersection Observer) змінити URL:

const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            const page = entry.target.dataset.page;
            history.replaceState(null, '', `/products/?page=${page}`);
        }
    });
}, { rootMargin: '0px 0px -50% 0px' });

SEO-компроміс:

Додати стандартну нумерану пагінацію в footer, приховану CSS але видиму поисковикам:

<nav aria-label="Pagination" class="sr-only">
  <a href="/products/?page=1">1</a>
  <a href="/products/?page=2">2</a>
</nav>

View-All сторінка

Для невеликих каталогів (до 200–300 товарів) оптимальна єдина сторінка /products/all/ зі всіма товарами. На неї ставиться canonical зі всіх сторінок пагінації, вона отримує весь ссилочний вага.

<!-- На /products/?page=2, /products/?page=3 -->
<link rel="canonical" href="https://example.com/products/all/" />

Перевірка результату

# Перевірити що сторінки пагінації не індексуються (якщо noindex вибраний)
curl -s "https://example.com/products/?page=5" | grep -i 'canonical\|noindex'

# Рендеринг JS через Googlebot-емулятор
npx puppeteer-core --url "https://example.com/products/" --js-enabled true

Використовувати GSC URL Inspection для сторінок пагінації. Переивірити що canonical визначен коректно та noindex застосований.

Тривалість

Аудит пагінації + рекомендації — 1–2 дні. Технічна реалізація — 3–6 днів.