Plugin Sitemap - senza URL ?page=… nella sitemap predefinita

Il plugin sitemap non include URL con ?page=… nelle sitemap predefinite, ad esempio https://meta.discourse.org/sitemap_4.xml

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810
  </loc>
  <lastmod>2022-02-25T21:55:40Z</lastmod>
</url>

Nella sitemap recente sono inclusi gli URL di paginazione, ad esempio https://meta.discourse.org/sitemap_recent.xml

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=18
  </loc>
  <lastmod>2022-03-07T12:03:50Z</lastmod>
</url>

Per progettazione non ci sono URL con ?page=… nelle sitemap predefinite?
Tutti questi URL con ?page=… sono URL canonici e pertanto dovrebbero essere aggiunti alla sitemap predefinita, ad esempio

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810
  </loc>
  <lastmod>2022-02-25T21:55:40Z</lastmod>
</url>
<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=2
  </loc>
  <lastmod>2022-03-02T19:08:07Z</lastmod>
</url>

[...]

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=18
  </loc>
  <lastmod>2022-03-07T12:03:50Z</lastmod>
</url>

fonti

2 Mi Piace

Non credo sia intenzionale, puoi fare una PR per sistemare?

Grazie @rrit, qualche mese fa l’ho notato anch’io ma ho sempre pensato fosse normale :man_facepalming:t2:

Posso implementare una soluzione semplice che non sia molto specifica sulla data dell’ultima modifica: ad esempio, tutte le pagine di un argomento utilizzeranno la stessa data dell’ultimo post modificato.
In questo modo, con un nuovo post in un argomento (con molti post e molte pagine), tutte le pagine riceveranno una nuova data di ultima modifica, anche quando solo l’ultima pagina necessita della nuova data.

Questa è una soluzione fattibile?


Altrimenti, dobbiamo raggruppare tutti i post di un argomento in pacchetti di 20 post (per pagina). E quindi calcolare la data dell’ultima modifica per ogni pacchetto.

Onestamente, ho esaminato questo e sono indeciso su qualsiasi modifica qui, il problema non è che Google abbia difficoltà a scoprire contenuti sui forum di Discourse.

È che sta scoprendo, eseguendo la scansione e quindi, a causa di “un processo decisionale arbitrario”, decide che il contenuto non appartiene all’indice.

1 Mi Piace

“Processo decisionale arbitrario” implica uno di questi punti:
(Vedi Page indexing report - Search Console Help)


Dal lato positivo dell’aggiunta di tutti questi URL canonici ?page=… alla sitemap:
Fornisce a Google un forte indizio su \u003clastmod\u003e per questi URL. Pertanto Google non ha motivo di scansionare nuovamente gli URL ?page=… invariati e potrebbe utilizzare il suo prezioso budget di scansione per URL più importanti.

Se gli URL ?page=… sono mancanti nella sitemap, Google li trova comunque ed esegue una “arbitraria” nuova scansione, anche se è totalmente non necessaria poiché non ci sono nuove modifiche al contenuto.

Vedi Build and Submit a Sitemap | Google Search Central  |  Documentation  |  Google for Developers


Google tiene davvero traccia e fa una distinzione su dove conosce gli URL da:
“Tutte le pagine inviate” (sitemap) o “Tutte le pagine conosciute” (link, ecc.)
Vedi Google Search Console –\u003e Indice –\u003e Report Copertura

  • “Una sitemap è un modo importante per Google di scoprire gli URL sul tuo sito.” vedi
  • “Google sceglie la pagina canonica in base a una serie di fattori (o segnali), come […], la presenza dell’URL in una sitemap, […].” vedi
  • “L’utilizzo di una sitemap non garantisce che tutti gli elementi nella tua sitemap verranno scansionati e indicizzati, poiché i processi di Google si basano su algoritmi complessi per pianificare la scansione.” vedi
1 Mi Piace

Spero che verrà implementato insieme a questo :slight_smile:

2 Mi Piace

Questo è sicuramente qualcosa da tenere a mente per @Roman quando integrerà questo nel core.

Preferisco di gran lunga unire prima la sitemap prima di aggiungere altre modifiche, ma una volta fatto… forse possiamo iniziare con URL basati su pagine canoniche su _recent. Abbiamo ora un URL canonico utilizzabile in posts.rss con una cache adeguata, può essere utilizzabile anche nelle sitemap.

3 Mi Piace

Ho problemi con Google Search Console che tenta di indicizzare URL come https://example.com/t/title-slug/1234?page=3, che fanno sì che Discourse restituisca un 404. La rimozione del parametro ?page=x rende l’URL valido.

Presumo che questo sia un effetto collaterale di Discourse che aggiunge la paginazione alla versione del sito che serve ai crawler:

le URL delle pagine funzionano bene, basta avere più di N post.
Hai per caso un sacco di post eliminati su detto argomento?

Ciao Sam, grazie per la risposta. Dopo aver pubblicato questo, ho trovato la tua spiegazione qui:

Ma nel mio caso, no, gli argomenti con questo problema che ho esaminato non mostrano alcuna modifica alla discussione originale. L’unica cosa è che sono stati importati da Drupal. Ma devo approfondire altri esempi per vedere se anche gli argomenti creati originariamente in Discourse sono interessati, perché purtroppo ce ne sono tonnellate, probabilmente migliaia.

1 Mi Piace

Accidenti, ne sono stati importati tonnellate da Drupal? È questo il filo conduttore qui?

Sì, quasi 100.000 argomenti e circa 2 milioni di post. Non sono sicuro se questo problema riguardi solo gli argomenti importati, ti farò sapere presto se trovo altre anomalie.

1 Mi Piace