La paginazione nella SEO

Come la paginazione incide su crawl budget e indicizzazione, quando usare noindex o canonical, con esempi di codice per HTML, PHP e sitemap.

La paginazione divide gli elenchi di contenuti grandi in pagine separate con URL unici: /catalog/page/2, /catalog/page/3. Semplice in teoria, ma la paginazione è uno dei principali divoratori di crawl budget sui siti grandi. Googlebot scansiona centinaia di pagine da template invece delle schede prodotto — e una parte del catalogo non arriva mai nell'indice.

Cos’è la paginazione

La paginazione divide un grande insieme di contenuti — prodotti, articoli, recensioni — in pagine sequenziali con URL unici. Pattern comuni: /catalog/?page=2, /catalog/page/2/, /catalog/2/. I motori di ricerca trattano ogni URL come un documento separato.

Googlebot scansiona le pagine di paginazione in sequenza. Nei cataloghi grandi le pagine profonde ricevono meno scansioni — i nuovi prodotti vengono indicizzati con forti ritardi.

Tre formati di paginazione si comportano in modo fondamentalmente diverso dal punto di vista SEO:

Formato 1Pagine numerate

Pulsanti «1 2 3 ... 100», ogni pagina ha un URL unico. Controllo SEO flessibile: noindex, canonical o indicizzazione completa.

Formato 2Infinite scroll

Il contenuto si carica allo scroll senza cambiare URL. Senza rendering JavaScript, Googlebot vede solo la prima schermata. Richiede un fallback HTML.

Formato 3Pulsante «Carica altro»

L’URL non cambia, il contenuto si aggiunge al clic. Stesso problema di scansione — senza rendering JS Googlebot vede solo il contenuto iniziale.

Crawl budget e contenuto duplicato

Un negozio con 500 prodotti e 20 per pagina genera 25 URL di paginazione per categoria. Con 50 categorie sono 1.250 URL che Googlebot deve scansionare prima di arrivare alle schede prodotto.

Caso reale. E-commerce di elettronica, 8.000 SKU. Paginazione senza noindex — oltre 400 URL di categoria. I nuovi prodotti impiegavano 3–4 settimane a essere indicizzati. Dopo l'aggiunta di noindex, follow alle pagine 2+, i tempi di indicizzazione sono scesi a 3–5 giorni.

Tre problemi specifici che la paginazione crea alla SEO:

  • Contenuto duplicato. Title e Description della stessa categoria sono identici su /page/1 e /page/15. L'intestazione di sezione si ripete. Google vede pagine simili e non sa quale posizionare.
  • Diluizione del PageRank. I link interni si distribuiscono su decine di URL di paginazione. I prodotti a pagina 10+ ricevono un’autorevolezza interna minima.
  • Spreco di crawl budget. Sui siti piccoli e medi Googlebot brucia crawl budget su pagine di elenco da template invece che sui contenuti prioritari.

Confronto tra i formati di paginazione

FormatoScansionabilitàDuplicatiSoluzione SEO
Pagine numerateScansione completa di tutti gli URLSì (Title/Description)noindex / canonical / indicizzazione completa
Infinite scrollSolo la prima schermata (senza JS)No (URL unico)Fallback HTML + rendering
«Carica altro»Solo il contenuto visibileNo (URL unico)SSR o rendering JS

Strategie di configurazione SEO

La scelta della strategia si riduce a una domanda: le pagine 2+ hanno valore di ricerca autonomo? Se gli utenti non arrivano mai su /catalog/page/7 dalla ricerca organica — non ha senso spenderci crawl budget.

Scelta della strategia: i blog chiudono la paginazione con noindex; i grandi e-commerce indicizzano tutto con meta tag unici; i cataloghi medi usano il canonical verso la pagina 1.

Strategia 1 — noindex sulle pagine 2+. La migliore per blog, notizie e siti di contenuti. Le pagine di paginazione non hanno valore di ricerca autonomo — noindex, follow le toglie dall'indice mantenendo la scansione dei link. Il crawl budget va ai contenuti veri.

Strategia 2 — rel=canonical alla pagina 1. Più morbida del noindex: le pagine 2+ restano accessibili (per link diretti, pubblicità) ma il canonical punta a /page/1. Google tratta la serie come un'unica sezione con la pagina 1 come versione canonical.

Strategia 3 — indicizzazione completa. Per i grandi e-commerce in cui ogni pagina di paginazione contiene prodotti unici da indicizzare. Richiede Title e Description unici per pagina — es. «Compra laptop — Pagina 3» — più un canonical autoreferenziale su ogni pagina.

Test rapido: apri GSC → Prestazioni e filtra gli URL per /page/. Se le pagine di paginazione portano anche solo un po’ di traffico organico — pensaci due volte prima di applicare noindex.

Implementazioni tecniche

La maggior parte dei compiti richiede solo tre costrutti nella <head>: <meta name="robots">, <link rel="canonical"> e le voci della sitemap. Ecco gli esempi di codice per ciascuno.

rel=next/prev: attributo deprecato

Prima del 2019 Google supportava rel="next" e rel="prev" per identificare le serie di paginazione. A marzo 2019 Google ha annunciato di aver smesso di usare questi attributi. Aggiungerli per Google è inutile. Bing li supporta formalmente, ma la quota di Bing nella maggior parte dei mercati è marginale.

Fonte: Google Search Central Blog, marzo 2019 — «An update on rel-prev-next». Google ha dichiarato: «li abbiamo usati come hint, ma eliminarli non incide sull’indicizzazione».

noindex per le pagine di paginazione

Aggiungi nella <head> delle pagine 2+. Dettaglio chiave: usa noindex, follow — non noindex, nofollow. Con nofollow, Googlebot non seguirà i link dalle pagine di paginazione e non indicizzerà i prodotti o gli articoli che linkano.

html
<!-- Page /catalog/page/2/ and above -->
<head>
  <meta name="robots" content="noindex, follow">
</head>

<!-- Page /catalog/ (first page) — no noindex -->
<head>
  <meta name="robots" content="index, follow">
</head>

In WordPress implementalo con un hook wp_head che controlla is_paged():

php
// functions.php
add_action('wp_head', function() {
    if (is_paged()) {
        echo '<meta name="robots" content="noindex, follow">' . "\n";
    }
});

rel=canonical alla pagina 1

Quando le pagine 2+ devono restare accessibili ma non devono duplicare la sezione, il canonical punta alla prima pagina. La pagina 1 riceve un canonical autoreferenziale.

html
<!-- /catalog/page/3/ -->
<head>
  <link rel="canonical" href="https://example.com/catalog/">
</head>

<!-- /catalog/ — self-canonical (required) -->
<head>
  <link rel="canonical" href="https://example.com/catalog/">
</head>
Canonical e noindex comunicano scopi diversi. Usali solo quando corrispondono alla politica di paginazione vista dall'utente, poi verifica che Google riesca comunque a scoprire i contenuti che intendi esporre. Nessuno dei due sostituisce una strategia pensata di URL e link.

Paginazione in sitemap.xml

Regola: includi nella sitemap.xml solo le pagine che vuoi indicizzare. Le pagine con noindex nella sitemap creano segnali in conflitto e sprecano crawl budget.

xml
<!-- sitemap.xml — indexable pages only -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Page 1 — always include -->
  <url>
    <loc>https://example.com/catalog/</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Pages 2+ — only with full indexing strategy -->
  <url>
    <loc>https://example.com/catalog/page/2/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>

</urlset>

Errori comuni di paginazione

La maggior parte degli errori nasce da un'implementazione disattenta più che da un fraintendimento concettuale. I generatori di sitemap dei CMS e i template dei meta tag spesso non considerano la paginazione:

noindex finisce sulla pagina 1

La condizione if page > 1 è scritta male — anche la pagina principale della categoria riceve noindex. Il traffico della sezione crolla a zero in poche settimane.

Errore 1
Pagine noindex incluse nella sitemap

Il generatore della sitemap aggiunge automaticamente tutti gli URL. Google riceve segnali in conflitto: la sitemap dice «indicizzalo», il meta robots dice «no». Il crawl budget si spreca a risolvere il conflitto.

Errore 2
Canonical verso un URL inesistente

La pagina 1 è su /catalog/ ma i canonical delle pagine 2+ puntano a /catalog/page/1/ (che restituisce 404). Google si ritrova una catena di canonical rotta.

Errore 3
Infinite scroll senza fallback HTML

Tutta la paginazione è solo JavaScript, nessun URL statico. Googlebot vede solo i primi N elementi — il resto del catalogo non viene mai indicizzato.

Errore 4
Title identico su tutte le pagine

Con la strategia di indicizzazione completa, tutte le pagine condividono lo stesso Title. Google vede contenuto duplicato e riduce la pertinenza della sezione. Ogni pagina ha bisogno di un meta tag unico con il numero di pagina.

Errore 5

La maggior parte di questi errori emerge in Google Search Console → Copertura: pagine marcate noindex, URL esclusi e conflitti di canonical sono subito visibili nel report.

Le pagine di paginazione vanno bloccate dall’indicizzazione?
Dipende dal tipo di sito. Per blog e siti di contenuti — sì: le pagine 2+ non hanno valore di ricerca autonomo e consumano crawl budget. Per i grandi e-commerce — no: ogni pagina contiene prodotti unici che vanno indicizzati.
Google supporta rel=next/prev?
No. Da marzo 2019 Google ha ufficialmente smesso di processare rel=next e rel=prev. Bing li supporta formalmente, ma per Google questi attributi non hanno effetto sull’indicizzazione.
Canonical o noindex: quale è più affidabile per la paginazione?
Scegli la direttiva in base allo scopo della pagina, non a una garanzia. Le pagine paginate con prodotti o elementi utili e distinti potrebbero richiedere link sequenziali scansionabili; le varianti filtrate o duplicate spesso richiedono una policy di canonical o indicizzazione separata.
Come incide l’infinite scroll sulla SEO?
Negativamente, senza fallback HTML. Senza rendering JavaScript, Googlebot vede solo il contenuto della prima schermata. Soluzione: implementa URL statici per ogni blocco di contenuti, oppure usa il rendering lato server (SSR).
Le pagine di paginazione vanno incluse nella sitemap?
Solo se sono aperte all’indicizzazione. Le pagine con noindex nella sitemap creano segnali in conflitto e sprecano crawl budget. Includi nella sitemap solo gli URL che vuoi che Google indicizzi.

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it