  {"id":3840,"date":"2026-06-22T09:51:35","date_gmt":"2026-06-22T08:51:35","guid":{"rendered":"https:\/\/www.gironi.it\/blog\/?p=3840"},"modified":"2026-06-22T09:51:35","modified_gmt":"2026-06-22T08:51:35","slug":"regressione-verso-la-media","status":"publish","type":"post","link":"https:\/\/www.gironi.it\/blog\/regressione-verso-la-media\/","title":{"rendered":"Regressione verso la media: l&#8217;ottimizzazione SEO che ha funzionato\u2026 per caso"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Nell&#8217;aeronautica militare israeliana, <strong>racconta Daniel Kahneman<\/strong>, gli istruttori erano convinti di una cosa: lodare un allievo dopo una manovra eccellente lo peggiorava, sgridarlo dopo una pessima lo migliorava. <br>L&#8217;avevano osservato mille volte sul campo, quindi doveva essere vero: con i piloti la severit\u00e0 funziona, i complimenti rovinano. <br>Solo che non era vero. Una manovra eccezionale \u2014 in un senso o nell&#8217;altro \u2014 \u00e8 in parte bravura e in parte fortuna; e la fortuna, alla prova successiva, non si ripete. Dopo un volo splendido si tende a tornare verso la propria media (e sembra che la lode abbia nuociuto), dopo un volo disastroso si torna verso la media (e sembra che la sgridata abbia giovato). Gli istruttori stavano attribuendo a s\u00e9 stessi un effetto che era solo <strong>regressione verso la media<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo stesso identico inganno ci aspetta ogni volta che guardiamo i dati di un sito e decidiamo se un nostro intervento &#8220;ha funzionato&#8221;.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Vale la pena chiarire subito una cosa sul nome, perch\u00e9 trae in inganno: la regressione verso la media <strong>non ha niente a che vedere con la <a href=\"https:\/\/www.gironi.it\/blog\/regressione-lineare-semplice\/\">regressione lineare<\/a><\/strong>, il modello che traccia una retta tra due variabili. Qui &#8220;regressione&#8221; va inteso nel senso comune di <em>ritorno<\/em>, <em>rientro<\/em>: i valori estremi che tornano indietro verso la loro media. Sono due cose diverse che condividono solo una parola.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cos&#8217;\u00e8 la regressione verso la media<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il meccanismo \u00e8 semplice, e una volta visto non si riesce pi\u00f9 a non vederlo. <br>Quasi ogni numero che misuriamo \u00e8 la somma di due parti: un valore &#8220;vero&#8221;, stabile, e una dose di <strong>rumore<\/strong> \u2014 fluttuazione casuale del momento. La posizione media in SERP di una pagina in un certo mese dipende dalla sua reale rilevanza, ma anche dal caso: l&#8217;algoritmo che oscilla, un competitor che quel mese ha spinto, la stagionalit\u00e0 della query, un pugno di clic in pi\u00f9 o in meno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ora, quando isoliamo i casi <strong>estremi<\/strong> \u2014 le pagine messe peggio, il mese andato peggio \u2014 stiamo quasi sempre selezionando situazioni in cui il rumore ha spinto <em>tutto nella stessa direzione sfavorevole<\/em>. <br><strong>Alla misura successiva quel rumore non si ripeter\u00e0 identico, e il valore tender\u00e0 a risalire verso la sua media vera \u2014 senza che nessuno abbia fatto nulla.<\/strong> \u00c8 un fatto puramente statistico, non un fenomeno SEO: pi\u00f9 una misura \u00e8 estrema, pi\u00f9 \u00e8 probabile che la prossima sia meno estrema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&#8217;ottimizzazione che ha funzionato per caso<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vediamo cosa combina questo meccanismo nel lavoro di tutti i giorni. Immaginiamo di tenere d&#8217;occhio la posizione media in SERP di 300 pagine per due mesi consecutivi. Simulo in R lo scenario, dando a ogni pagina una posizione &#8220;vera&#8221; stabile e aggiungendo a ciascun mese una fluttuazione casuale:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set.seed(48)\n\n# 300 pagine, ognuna con la sua posizione \"vera\" in SERP (stabile nel tempo)\npos_vera &lt;- runif(300, 3, 40)\n\n# due mesi consecutivi: stessa posizione vera, rumore casuale diverso\nmese1 &lt;- pos_vera + rnorm(300, 0, 8)\nmese2 &lt;- pos_vera + rnorm(300, 0, 8)\n\n# le 60 pagine messe peggio nel mese 1 (in SERP \"peggio\" = numero pi\u00f9 alto)\npeggiori &lt;- order(mese1, decreasing = TRUE)[1:60]\n\nround(mean(mese1[peggiori]), 1)   # posizione media di partenza\n# [1] 39.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le nostre 60 pagine peggiori partono da una posizione media di <strong>39,1<\/strong>: roba da fondo della terza pagina. Decidiamo di intervenire \u2014 riscriviamo i title, aggiorniamo i contenuti, sistemiamo i link interni \u2014 e il mese dopo ricontrolliamo. <br>Ecco il risultato, <strong>senza che nel frattempo l&#8217;algoritmo sia cambiato e, soprattutto, senza che nella simulazione io abbia toccato davvero nulla<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>round(mean(mese2[peggiori]), 1)   # un mese dopo\n# [1] 33<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Da <strong>39,1<\/strong> a <strong>33<\/strong>: circa <strong>sei posizioni guadagnate<\/strong>. Un balzo che in un report farebbe un figurone, e che chiunque sarebbe tentato di attribuire all&#8217;ottimizzazione appena fatta. <br>Peccato che nel codice non ci sia <em>nessuna<\/em> ottimizzazione: le pagine sono migliorate da sole, perch\u00e9 erano state scelte proprio in quanto estreme e il rumore che le aveva affossate nel mese 1 non si \u00e8 ripetuto. Per dare la misura: la posizione media di <em>tutte<\/em> le 300 pagine \u00e8 circa 22, ed \u00e8 verso quel valore che le peggiori stanno rientrando.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come non farsi ingannare: il gruppo di controllo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se il miglioramento arriva comunque, come facciamo a sapere se la nostra ottimizzazione ha avuto un qualche effetto <em>reale<\/em>? <br>La risposta \u00e8 la stessa che useremmo per un farmaco: serve un <strong>gruppo di controllo<\/strong>. Dividiamo le 60 pagine peggiori in due met\u00e0 a caso: una la &#8220;ottimizziamo&#8221;, l&#8217;altra la lasciamo deliberatamente in pace. Poi confrontiamo quanto migliorano:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># divido le 60 peggiori in due gruppi casuali\ngruppo &lt;- sample(rep(c(\"ottimizzate\", \"controllo\"), each = 30))\n\n# miglioramento medio (mese1 - mese2) nei due gruppi\nround(tapply(mese1[peggiori] - mese2[peggiori], gruppo, mean), 1)\n# controllo ottimizzate\n#       6.0         6.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il gruppo &#8220;ottimizzato&#8221; guadagna <strong>6,1<\/strong> posizioni, quello di controllo \u2014 lasciato intatto \u2014 ne guadagna <strong>6,0<\/strong>. <br>Praticamente lo stesso identico miglioramento. La nostra ottimizzazione, nella simulazione, non ha aggiunto nulla: tutto il guadagno era regressione verso la media, e il controllo lo smaschera mostrando che sarebbe successo comunque.<\/p>\n\n\n\n<p class=\"has-light-gray-background-color has-background wp-block-paragraph\">La lezione \u00e8 questa: <strong>un miglioramento, da solo, non prova niente.<\/strong> <br>Quando intervieni proprio sulle pagine (o sulle campagne) che andavano peggio, una parte della loro ripresa \u00e8 garantita a prescindere da te. Senza un confronto con ci\u00f2 che <em>non<\/em> hai toccato, non puoi sapere quanto del risultato \u00e8 merito tuo e quanto \u00e8 solo rientro verso la media.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 lo stesso ragionamento, va detto, che sta dietro a un <a href=\"https:\/\/www.gironi.it\/blog\/ab-testing\/\">A\/B test<\/a> fatto come si deve: confrontare la variante con un controllo concorrente, non con il &#8220;prima&#8221;. Ed \u00e8 cugino stretto della trappola che abbiamo visto parlando di <a href=\"https:\/\/www.gironi.it\/blog\/correlazione\/\">correlazione e causazione<\/a>: anche qui scambiamo una sequenza temporale (&#8220;ho agito, poi \u00e8 migliorato&#8221;) per un nesso causale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prova tu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per fissare il meccanismo, prova a ricostruire lo scenario cambiando un solo dettaglio: invece delle 60 pagine <em>peggiori<\/em>, seleziona le 60 <em>migliori<\/em> del mese 1 (<code>order(mese1)[1:60]<\/code>, senza <code>decreasing<\/code>) e guarda come si comportano nel mese 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cosa aspettarti: anche le campionesse rientrano verso la media, ma <em>peggiorando<\/em> \u2014 le posizioni di vertice contengono fortuna che non si ripete. \u00c8 la faccia speculare dello stesso fenomeno, e spiega perch\u00e9 &#8220;quel mese d&#8217;oro&#8221; o &#8220;quella pagina che volava&#8221; cos\u00ec spesso non si riescono a replicare: non avevi perso il tocco magico, stavi solo tornando verso la tua media.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;\u00e8 una variante ancora pi\u00f9 insidiosa di questa trappola, perch\u00e9 si nasconde dentro gli strumenti che usiamo proprio <em>per<\/em> decidere con rigore. Se guardiamo un test mentre \u00e8 ancora in corso e ci fermiamo appena i numeri ci piacciono, stiamo selezionando un istante estremo esattamente come abbiamo selezionato le pagine peggiori \u2014 e ci faremo ingannare allo stesso modo. \u00c8 il <em>peeking problem<\/em>, ed \u00e8 il prossimo passo del nostro viaggio tra i tranelli dei dati di marketing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Per approfondire<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Il racconto degli istruttori di volo con cui abbiamo aperto viene da <a href=\"https:\/\/www.amazon.it\/dp\/8804736127?tag=consulenzeinf-21\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><em>Pensieri lenti e veloci<\/em><\/a> di Daniel Kahneman, premio Nobel per l&#8217;economia: \u00e8 il libro che ha reso popolari la regressione verso la media e decine di altri bias del nostro ragionamento, raccontati con esempi che restano addosso. Se di questo articolo vuoi tenere una cosa sola, tienilo: \u00e8 una vaccinazione contro l&#8217;illusione di aver capito perch\u00e9 i numeri si muovono.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;aeronautica militare israeliana, racconta Daniel Kahneman, gli istruttori erano convinti di una cosa: lodare un allievo dopo una manovra eccellente lo peggiorava, sgridarlo dopo una pessima lo migliorava. L&#8217;avevano osservato mille volte sul campo, quindi doveva essere vero: con i piloti la severit\u00e0 funziona, i complimenti rovinano. Solo che non era vero. Una manovra eccezionale &hellip; <a href=\"https:\/\/www.gironi.it\/blog\/regressione-verso-la-media\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Regressione verso la media: l&#8217;ottimizzazione SEO che ha funzionato\u2026 per caso&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[629],"tags":[],"class_list":["post-3840","post","type-post","status-publish","format-standard","hentry","category-statistica-it"],"lang":"it","translations":{"it":3840,"en":3841},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Paolo Gironi","author_link":"https:\/\/www.gironi.it\/blog\/author\/autore-articoli\/"},"uagb_comment_info":0,"uagb_excerpt":"Nell&#8217;aeronautica militare israeliana, racconta Daniel Kahneman, gli istruttori erano convinti di una cosa: lodare un allievo dopo una manovra eccellente lo peggiorava, sgridarlo dopo una pessima lo migliorava. L&#8217;avevano osservato mille volte sul campo, quindi doveva essere vero: con i piloti la severit\u00e0 funziona, i complimenti rovinano. Solo che non era vero. Una manovra eccezionale&hellip;","_links":{"self":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/comments?post=3840"}],"version-history":[{"count":1,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3840\/revisions"}],"predecessor-version":[{"id":3844,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3840\/revisions\/3844"}],"wp:attachment":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/media?parent=3840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/categories?post=3840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/tags?post=3840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}