Contatta l'assistenza

Rispondiamo per e-mail, di solito entro due giorni.

Per prevenire abusi, Google reCAPTCHA verifica questo invio; alcuni dati vengono trasmessi a Google. Lo script viene caricato solo quando apri questo modulo.

← Tutti gli articoli

Dodici indirizzi per un solo articolo

Ogni articolo di questo blog vive a dodici indirizzi. Undici portano un prefisso di lingua — /en/blog/…, /de/blog/… e altri nove — e il dodicesimo non ne porta nessuno. Quello legge l'intestazione Accept-Language del browser e risponde in quella, fra le undici lingue, che vi riconosce.

Il 27 e il 28 agosto i crawler hanno preso 1.609 pagine del blog da questo sito. I lettori ne hanno prese 628.

versioni di lingua prese per articolo, su undici ClaudeBot 11,0 bingbot 8,7 PetalBot 6,0 Applebot 4,3 SemrushBot 1,8 Googlebot 1,5 1.609 pagine del blog prese dai crawler in due giorni, 628 dai lettori insieme lo 0,5 per cento di tutto ciò che è stato chiesto a questo server

Quello che le pagine già si dicono

Tutte e dodici dicono la stessa cosa nella testata, tre cose, e le ho misurate tutte e tre oggi invece di fidarmi del codice.

Il canonical di ogni pagina punta a sé stessa. Undici righe hreflang nominano le sorelle, e una dodicesima nomina l'indirizzo senza prefisso come x-default, perché quello non appartiene a nessuna lingua in particolare. Quell'indirizzo risponde con Vary: Accept-Language, Accept-Encoding, così che qualsiasi cache davanti sappia che il corpo dipende da un'intestazione della richiesta.

La negoziazione funziona. Lo stesso indirizzo con Accept-Language: de restituisce una pagina marcata lang="de", con ja una giapponese, e con un codice che non usa nessuno, l'inglese. Dodici richieste alternate fra quattro lingue hanno reso tre volte di fila quattro corpi corretti: la cache delle pagine è dunque indicizzata sulla lingua e non solo sul percorso.

È esattamente quello che chiede la specifica: un gruppo completo e reciproco in cui ogni membro nomina sé stesso e tutte le sorelle. È la disposizione che permette a un motore di trattare dodici indirizzi come un articolo in dodici lingue invece che come dodici articoli in concorrenza fra loro.

Non fa prendere meno a nessuno

Non riduce nemmeno i prelievi, e il registro degli accessi lascia poco spazio all'interpretazione.

ClaudeBot ha fatto 396 richieste al blog su 36 articoli — esattamente 11,0 versioni di lingua per articolo, tutte le lingue, ogni volta. bingbot è a 8,7 su 37 articoli, PetalBot a 6,0, Applebot a 4,3. SemrushBot arriva a 1,8. Googlebot ha fatto 72 richieste su 42 articoli, in media 1,5 versioni per articolo, ed è l'unico dei sei a comportarsi come se l'annotazione gli fosse arrivata.

Nel complesso i crawler hanno toccato 73 dei 76 articoli almeno una volta, e 68 di questi in più di una lingua. La media è di 7,84 versioni di lingua per articolo su undici possibili.

Niente di tutto ciò è una violazione. hreflang è un'indicazione su come le pagine si legano fra loro, rivolta alla parte di un motore che decide quale risultato mostrare. Non è un'istruzione per la parte che decide che cosa scaricare. Un crawler che non ha mai visto /uk/blog/… non ha modo di sapere che è una traduzione prima di averla presa e averne letto la testata — l'annotazione può agire solo dopo la richiesta che avrebbe potuto risparmiare.

Quanto costa

Meno di quanto lasci intendere il paragrafo sopra. Quelle 1.689 richieste dei crawler alle pagine del blog sono lo 0,5 per cento delle 373.019 richieste che questo vhost ha servito in due giorni, e 19,9 MB dei 4.363 MB che ha spedito. Una pagina del blog torna in circa un decimo di secondo, quindi tutta la raccolta undici volte ripetuta costa un'ottantina di secondi di processore al giorno.

La sitemap costa un po' più di quanto mi aspettassi. Elenca 3.136 indirizzi con 13.248 annotazioni di lingua appese: 1,85 MB di XML, 35 KB una volta compressi. Viene ricostruita al massimo ogni sei ore, ed è per questo che un articolo pubblicato all'una e dieci vi compare completo qualche ora dopo e non subito.

Nessuno di questi numeri vale una modifica. L'unica leva che ridurrebbe la raccolta sarebbe non avere gli indirizzi, e gli indirizzi sono il punto.

Lettori e crawler vogliono cose diverse

Gli stessi due giorni, divisi per lingua, mostrano due abitudini piuttosto diverse.

I crawler si distribuiscono quasi in parti uguali: fra il 5,5 e il 10,5 per cento delle loro richieste al blog è andato a ciascuna delle undici versioni con prefisso, più il 16 per cento a quella senza. Sembra qualcuno che scorre un elenco.

I lettori non si distribuiscono in parti uguali. Il 38 per cento delle loro richieste è andato all'indirizzo senza prefisso e un altro 18 per cento a /en/: più della metà è dunque arrivata in inglese o per negoziazione. Il resto si divide fra dieci lingue, la maggiore il tedesco con il 7 per cento, la minore il francese con il 2.

Quel 44 per cento restante è l'intera ragione per cui i percorsi di lingua esistono. È anche abbastanza piccolo da potersene facilmente dissuadere — che è lo stesso errore del leggere la colonna dei crawler e concluderne che le pagine sono popolari.

Che cosa si generalizza

Un'indicazione corretta non è un'istruzione. Tutto ciò che sta nella testata di queste pagine è corretto, reciproco e verificabile, e cinque crawler su sei prendono come se non ci fosse nulla. La specifica descrive che cosa significa l'annotazione, non che cosa ne farà un programma particolare.

La domanda utile, quindi, non è mai stata se la marcatura sia corretta. Era quante volte ciascuno di quelli che prelevano viene davvero, e a questo può rispondere solo il registro — e una volta che ha risposto, la conclusione onesta è che la raccolta undici volte ripetuta costa mezzo per cento e va lasciata in pace.

Pubblicità