Inizialmente, ho scritto questo per la categoria “Bug”…
… ma non lasciate che vi fermi se qualcuno ritiene che questo meriti una PR o un commit
Ho studiato a fondo la struttura canonica di Discourse negli ultimi 2 mesi e nel complesso è ottima.
URL strani con cose come no_definitions=true o /search?q= forniscono il canonico corretto.
Tutto questo funziona quando si serve la versione JS del sito sia agli utenti che ai crawler.
Ma sembra che gli URL /u/* siano stati trascurati: hanno dei canonici, ma verso URL che causano l’indicizzazione di migliaia di URL aggiuntivi da parte di Google.
Il compito:
Vorrei che tutti gli URL dopo il nome utente puntassero al canonical della pagina principale del profilo utente.
Quindi /u/FlyNumber è la pagina del profilo principale.
I seguenti avrebbero un canonical a quello sopra (invece di quello che succede ora, che è un canonical a se stesso):
È per la tua configurazione di indicizzazione personalizzata discussa qui?
Se è così, potrebbe essere utile notarlo in modo che coloro che esaminano il lavoro sappiano in cosa si stanno cacciando.
Per impostazione predefinita, gli URL /u/ non vengono indicizzati, il che è impostato sia in robots.txt sia passato nella richiesta di intestazione iniziale sulla pagina.
No, poiché ho smesso di usare prerender: non riusciva a renderizzare il menu principale, il pulsante di accesso, ecc.
Il bot di Google sta ricevendo direttamente l’“app”.
Ho impostato l’impostazione del sito nascosta di Discourse per servire ai crawler la versione JS. Google sembra gestirla bene. (Ulteriori aggiornamenti a riguardo presto.)
Buon punto, anche /badges…
Sto usando un file robots modificato personalizzato.
Vorrei anche sottolineare che la rimozione completa dei canonical per tali URL sarebbe un passo nella giusta direzione. (IMHO il mio metodo è migliore per la SEO)
Come affermato sopra, è impostato su noindex, quindi non sono sicuro del motivo per cui Discourse genera comunque il canonical.