Paginacja: jak ją wdrożyć na stronie

·

Paginacja: jak ją wdrożyć na stronie

W tym poradniku dowiesz się, jak wdrożyć paginację w 7 krokach tak, żeby Google i boty AI dotarły do każdej strony listy. Paginacja to podział długiej listy (produktów, wpisów, wyników) na numerowane podstrony z osobnymi adresami URL. Kroki: osobny URL, linki <a href>, canonical na siebie, bez noindex, filtry, title i sitemapa, kontrola w crawlerze.

Poradnik jest dla właściciela sklepu lub bloga i dla początkującego SEO-wca. Zalecenia opieram na dokumentacji Google Search Central w wersji z grudnia 2025 roku. Dane i nazwy raportów są aktualne na październik 2026.

Paginacja w skrócie: definicja i zastosowania

Paginacja (stronicowanie) to podział zbioru treści na kolejne strony: /kategoria/, /kategoria/page/2/, /kategoria/page/3/ albo /kategoria?page=2. Paginacja występuje w kategoriach sklepów internetowych, archiwach blogów, na forach, w wynikach wyszukiwarki wewnętrznej i w długich artykułach podzielonych na części.

Paginacja ma dwa zadania. Dla użytkownika skraca czas ładowania i daje orientację, gdzie jest na liście. Dla Googlebota jest ścieżką linków do produktów i wpisów, które nie mieszczą się na pierwszej stronie kategorii. Druga funkcja decyduje o SEO: produkt dostępny tylko z 12. strony listingu Google znajdzie wyłącznie wtedy, gdy wszystkie strony od 2 do 12 da się przeskanować.

Google opisuje stronicowanie w dokumencie „Pagination and incremental page loading” w Google Search Central (ostatnia aktualizacja 10.12.2025). Ten sam dokument obejmuje dwie alternatywy paginacji: przycisk „Załaduj więcej” (Load more) i przewijanie nieskończone (infinite scroll).

Paginacja, „Załaduj więcej” i infinite scroll: porównanie

Wybór sposobu ładowania listy wpływa na to, ile treści zobaczy Googlebot i ile zobaczą boty AI. Tabela porównuje trzy warianty według dokumentacji Google i badania Vercel o crawlerach AI.

KryteriumPaginacja (numerowane strony)Przycisk „Załaduj więcej”Infinite scroll
Osobne URL-e dla części listytak, z definicjitylko jeśli dodasz strony składowetylko jeśli dodasz strony składowe
Czy Googlebot dotrze do dalszych pozycjitak, przez linki <a href>nie, jeśli przycisk działa tylko w JavaScripcie (Googlebot nie klika przycisków)nie, jeśli treść doładowuje się tylko w JavaScripcie
Boty AI bez renderowania JSwidzą każdą stronę osobnowidzą pierwszą porcjęwidzą pierwszą porcję
Wygoda użytkownikałatwy powrót do miejsca na liście, widoczna stopkakontrola nad doładowaniem, stopka dostępnapłynne przeglądanie, stopka trudno dostępna
Typowe zastosowaniekategorie sklepów, archiwa blogówsklepy mobilne, galeriemedia społecznościowe, serwisy z feedem

Moim zdaniem przy sklepie lub blogu najbezpieczniejsza jest klasyczna paginacja albo przycisk „Załaduj więcej”, który jest zwykłym linkiem <a href="?page=2"> wzbogaconym JavaScriptem. Przycisk zbudowany w ten sposób działa dla użytkownika jak doładowanie, a dla crawlera jak paginacja.

Jak wdrożyć paginację: 7 kroków

  1. Daj każdej stronie listy osobny URL, bez fragmentu #.
  2. Połącz strony linkami <a href>: następna, poprzednia, pierwsza i numery stron.
  3. Ustaw na każdej stronie canonical wskazujący ją samą.
  4. Zostaw strony 2+ indeksowalne: bez noindex i bez blokady w robots.txt.
  5. Oddziel paginację od filtrów i sortowania.
  6. Ustaw title, opis kategorii i sitemapę.
  7. Sprawdź paginację w Screaming Frog i w Google Search Console.

Krok 1. Daj każdej stronie osobny URL

Każda strona paginacji potrzebuje własnego adresu, który zwraca kod 200. Według dokumentacji Google Search Central format może mieć postać parametru ?page=n, a Google traktuje każdy taki URL jako osobną stronę. WordPress domyślnie tworzy adresy /page/2/, a sklepy często używają ?page=2 albo ?p=2. Oba formaty działają, ważne jest, żeby format był jeden w całym serwisie.

Numeru strony nie umieszczaj we fragmencie URL-a. Dokumentacja Google mówi wprost: „Don’t use URL fragment identifiers (the text after a # in a URL) for page numbers in a collection”. Google ignoruje część po znaku #, więc adresy /kategoria#page=2 i /kategoria#page=3 są dla Googlebota tą samą stroną /kategoria.

Strona 1 powinna mieć jeden adres. Jeśli /kategoria/ i /kategoria/page/1/ pokazują tę samą treść, ustaw przekierowanie 301 z /page/1/ na adres bez numeru i usuń /page/1/ z linków w paginacji.

Krok 2. Połącz strony linkami <a href>

Googlebot przechodzi między stronami paginacji tylko po linkach, które potrafi odczytać. Według dokumentacji Google o linkach możliwych do skanowania Google zwykle skanuje link tylko wtedy, gdy jest elementem <a> z atrybutem href. Elementy <span href="…">, <a onclick="goto(…)"> i <a routerLink="…"> Google uznaje za niezalecane.

Blok paginacji powinien zawierać link do następnej strony, do poprzedniej i do pierwszej. Dokumentacja Google o paginacji radzi, żeby każda strona kolekcji linkowała do strony pierwszej, bo strona pierwsza jest punktem startowym serii. Przy długich listach dodaj numery kilku sąsiednich stron i link do ostatniej, żeby skrócić drogę do najstarszych pozycji.

Głębokość kliknięć rośnie z każdą stroną paginacji. W crawlu bynajmniej.pl z 14.10.2026 (Screaming Frog, 441 wewnętrznych URL-i) 45 stron leży na głębokości 4 lub więcej kliknięć od strony głównej. Na starym blogu archiwum z paginacją jest jedną z dróg do takich wpisów, dlatego linkowanie wewnętrzne z nowych tekstów do starych skraca tę ścieżkę skuteczniej niż sama paginacja. Więcej o tym w poradniku o crawl budgecie.

Krok 3. Ustaw canonical na tę samą stronę

Strona 2 paginacji ma canonical wskazujący stronę 2, a strona 3 wskazujący stronę 3. Dokumentacja Google Search Central mówi: „Don’t use the first page of a paginated sequence as the canonical page”, czyli strona pierwsza nie może być kanoniczna dla całej serii. Każda strona listy zawiera inne produkty lub wpisy, więc nie jest duplikatem strony pierwszej.

Canonical stron 2+ ustawiony na stronę 1 to według przewodnika Screaming Frog po paginacji jeden z najczęstszych błędów. Google może wtedy zignorować dalsze strony listy, a razem z nimi linki do produktów, które są tylko na tych stronach. Sygnały kanoniczności opisuję szerzej we wpisie o adresie kanonicznym.

Na stronie 2 kategorii fragment <head> wygląda tak: <link rel="canonical" href="https://example.pl/kategoria/page/2/">. Wtyczka Yoast SEO ustawia taki canonical sama. Joost de Valk napisał w artykule Yoast o paginacji (15.03.2018): „each page within a paginated series should canonicalize to itself”.

Krok 4. Zostaw strony 2+ bez noindex i bez blokady w robots.txt

Strony paginacji powinny być dostępne dla Googlebota i indeksowalne. Blokada Disallow: /page/ w robots.txt odcina Googlebota od linków do produktów i wpisów na dalszych stronach listy. Reguła noindex na stronach 2+ działa wolniej, ale w podobnym kierunku.

Noindex na paginacji ma skutek uboczny opisany przez Johna Muellera z Google: strona długo trzymana z noindex jest z czasem traktowana jak noindex, nofollow, a Google przestaje podążać za jej linkami. Tę wypowiedź znamy z relacji, m.in. opisu w Sitebulb, a Google nie podał, po jakim czasie to następuje. Yoast SEO z tego powodu usunął w wersji 6.3 opcję noindex dla podstron archiwów.

Część polskich poradników z lat 2020–2022 nadal zaleca noindex albo robots.txt dla stron 2+. Te zalecenia są sprzeczne z obecną dokumentacją Google, a na październik 2026 Google ich nie przywrócił.

Krok 5. Oddziel paginację od filtrów i sortowania

Filtry i sortowanie tworzą warianty tej samej listy: ?sort=cena, ?kolor=czarny&page=3. Dokumentacja Google o paginacji zaleca, żeby takie warianty oznaczyć noindex albo zablokować ich wzorce URL w robots.txt, jeśli nie chcesz indeksować kopii listy. Paginacja podstawowej kategorii zostaje przy tym indeksowalna.

W praktyce reguła w robots.txt wygląda tak: Disallow: /*?*sort=. Linki w bloku paginacji nie powinny przenosić parametrów sortowania z innych widoków. Strona 2 kategorii ma mieć jeden adres, a nie pięć wersji zależnych od tego, skąd przyszedł użytkownik. Rozbudowaną nawigację fasetową Google opisuje osobno, a jej koszt dla crawla rośnie z każdą kombinacją filtrów.

Krok 6. Ustaw title, opis kategorii i sitemapę

Title stron paginacji mogą się powtarzać. Dokumentacja Google mówi: „You can use the same titles and descriptions for all pages in the sequence”. Polecam mimo to dopisać do title numer strony, np. „Buty do biegania – strona 2”, bo numer odróżnia strony w raportach Screaming Frog i w karcie przeglądarki. Yoast SEO robi to zmienną %%page%%, a ostrzeżenia o zduplikowanych title na archiwach paginowanych według Yoast można zignorować.

Opis kategorii (tekst SEO nad lub pod listą) zostaw na stronie 1. Ten sam blok tekstu powtórzony na stronach 2–40 robi z nich bliskie duplikaty strony pierwszej i rozmywa sygnał, która strona odpowiada na frazę kategorii.

Sitemapa XML nie musi zawierać stron paginacji. Według dokumentacji Google sitemapa albo feed Merchant Center pomagają Google znaleźć wszystkie produkty, więc w sitemapie umieszczasz produkty i wpisy, a nie strony 2+ listingów. W crawlu bynajmniej.pl z 14.10.2026 23 indeksowalne URL-e są poza sitemapą, głównie paginacja: /page/2/, /k/seo/page/2/ i /author/…/page/2/. Yoast SEO nie dodaje tych adresów do sitemapy i uważam to za poprawne ustawienie.

Krok 7. Sprawdź paginację w Screaming Frog i Google Search Console

Screaming Frog SEO Spider ma zakładkę Pagination z filtrami, które pokrywają kroki 1–4. Według przewodnika Screaming Frog zakładka zawiera filtry: Contains Pagination, First Page, Paginated 2+ Pages, Pagination URL Not In Anchor Tag, Non-200 Pagination URL, Unlinked Pagination URL, Non-Indexable, Multiple Pagination URLs, Pagination Loop i Sequence Error. Raport zbiorczy eksportujesz z menu Reports > Pagination.

Filtry Screaming Frog opierają się na atrybutach rel=”next” i rel=”prev”, więc zakładka Pagination działa na stronach, które te atrybuty mają (np. WordPress z Yoast SEO). Na stronie bez rel next/prev sprawdzasz paginację w zakładce Canonicals (canonical stron 2+) i Directives (noindex), filtrując adresy po wzorcu page.

W Google Search Console raport Indeksowanie stron pokazuje, czy strony paginacji trafiają do statusów „Wykluczone za pomocą tagu noindex” lub „Duplikat, wyszukiwarka Google wybrała inną stronę kanoniczną niż użytkownik”. Narzędzie do sprawdzania adresów URL pokazuje dla wybranej strony 2 canonical wybrany przez Google. Obsługę obu raportów opisuję w poradniku jak korzystać z Google Search Console.

Archiwa z paginacją bywają wolniejsze od wpisów, bo każde wywołanie liczy listę od nowa. W crawlu bynajmniej.pl 10 URL-i odpowiadało dłużej niż 1000 ms, a wszystkie to archiwa tagów i kategorii. Dokumentacja Google o paginacji wymienia wskazówki zasobów (preload, preconnect, prefetch) jako sposób na szybsze ładowanie kolejnej strony, a cache po stronie serwera skraca czas odpowiedzi samego archiwum.

rel=”next” i rel=”prev” w 2026 roku

Google nie używa atrybutów rel=”next” i rel=”prev”. Dokumentacja Google Search Central mówi: „Google no longer uses these tags, although these links may still be used by other search engines”. Google ogłosił to 21.03.2019 przez Johna Muellera i konto Google Webmasters, przyznając, że nie korzystał z tych znaczników w indeksowaniu od kilku lat (relacja Search Engine Land).

Istniejących znaczników rel next/prev nie usuwam. Atrybuty nie szkodzą, Screaming Frog i Yoast twierdzą, że Bing nadal używa ich jako wskazówki, a crawlery wykorzystują je do raportów paginacji. Nowego wdrożenia nie zaczynałbym jednak od rel next/prev, tylko od linków <a href> i canonicali z kroków 2 i 3.

Czego nie robić z paginacją

  • Canonical stron 2+ na stronę 1: Google odradza wprost.
  • Blokada /page/ w robots.txt: Googlebot traci drogę do produktów z dalszych stron.
  • Noindex na stronach 2+ „na wszelki wypadek”: przy długim noindex Google przestaje podążać za linkami.
  • Numer strony we fragmencie #page=2: Google ignoruje fragmenty.
  • Przycisk „Załaduj więcej” bez href: Googlebot nie klika przycisków.
  • Ten sam opis kategorii na każdej stronie paginacji.

Najtrwalszy mit o paginacji to „kara za duplikację treści” na stronach 2+. Strony listy różnią się produktami i Google nie widzi w nich kopii strony pierwszej, ale mit przeżył już wycofanie rel next/prev i pewnie przeżyje kolejną aktualizację dokumentacji. Duplikaty title na paginacji Google dopuszcza wprost, więc ostrzeżenia z crawlerów o tych duplikatach traktuję jako informację, nie błąd. Więcej o realnych przypadkach duplikacji piszę w poradniku o audycie SEO.

Paginacja a AI search

Boty narzędzi AI czytają paginację inaczej niż Googlebot, bo nie wykonują JavaScriptu. Badanie Vercel i MERJ z 17.12.2024 mówi: „none of the major AI crawlers currently render JavaScript”. Crawlery ChatGPT i Claude pobierały pliki JS (11,50% i 23,84% pobrań w badanej witrynie nextjs.org), ale ich nie uruchamiały.

Lista doładowywana wyłącznie JavaScriptem jest dla GPTBot, ClaudeBot czy PerplexityBot listą jednej porcji. Produkty i wpisy z dalszych porcji bot AI znajdzie tylko przez sitemapę albo linki z innych stron. Paginacja na zwykłych linkach <a href> w HTML-u daje botom AI tę samą ścieżkę co Googlebotowi. Na bynajmniej.pl cała treść jest w HTML-u bez JavaScriptu, a robots.txt nie blokuje botów AI.

FAQ: paginacja

Czy strony paginacji powinny być indeksowane?

Strony paginacji powinny być indeksowalne, czyli bez noindex i bez blokady w robots.txt. Google sam decyduje, czy pokaże stronę 2 w wynikach, ale potrzebuje dostępu do strony 2, żeby przejść po jej linkach do produktów i wpisów.

Na co ma wskazywać canonical na stronie 2 paginacji?

Canonical na stronie 2 paginacji wskazuje stronę 2. Dokumentacja Google Search Central odradza ustawianie strony pierwszej jako kanonicznej dla całej serii.

Czy rel=”next” i rel=”prev” są jeszcze potrzebne?

Google nie używa rel=”next” i rel=”prev” od co najmniej 2019 roku. Atrybuty mogą zostać w kodzie dla innych wyszukiwarek i crawlerów SEO, ale nie zastępują linków <a href> między stronami.

Paginacja czy infinite scroll: co jest lepsze dla SEO?

Paginacja jest bezpieczniejsza dla SEO, bo każda część listy ma osobny URL i link <a href>. Infinite scroll działa w SEO tylko wtedy, gdy obok przewijania istnieją strony składowe z własnymi adresami, zgodnie z zaleceniem Google z 2014 roku.

Czy strony paginacji dodawać do sitemapy XML?

Strony paginacji nie muszą być w sitemapie XML. W sitemapie umieszcza się produkty, wpisy i pierwsze strony kategorii, a strony 2+ Google znajduje przez linki w bloku paginacji.

Ile produktów lub wpisów pokazywać na jednej stronie paginacji?

Google nie podaje limitu pozycji na stronie paginacji. W WordPressie liczbę wpisów ustawiasz w Ustawienia → Czytanie → „Strony bloga wyświetlają maksymalnie”, a w sklepie dobierasz ją tak, żeby strona ładowała się szybko i miała sensowną liczbę stron w serii.

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.