  {"id":3569,"date":"2026-05-27T13:38:52","date_gmt":"2026-05-27T12:38:52","guid":{"rendered":"https:\/\/www.gironi.it\/blog\/?p=3569"},"modified":"2026-05-27T13:47:04","modified_gmt":"2026-05-27T12:47:04","slug":"il-paradosso-di-simpson-nella-seo-quando-i-dati-aggregati-possono-mentire","status":"publish","type":"post","link":"https:\/\/www.gironi.it\/blog\/il-paradosso-di-simpson-nella-seo-quando-i-dati-aggregati-possono-mentire\/","title":{"rendered":"Il Paradosso di Simpson nella SEO: quando i dati aggregati possono mentire"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u00c8 l&#8217;ultimo giorno del mese. Stiamo preparando il report SEO per il cliente principale. Apriamo Google Search Console, impostiamo il confronto mese su mese e un brivido ci corre lungo la schiena: <strong>il CTR organico globale del sito \u00e8 crollato dal 4,5% al 3,5%<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di scrivere l&#8217;email con le cattive notizie e prepararci a giustificare il calo, facciamo la cosa giusta: disaggreghiamo i dati per capire <strong>dove<\/strong> stiamo perdendo colpi. Guardiamo le performance per dispositivo e scopriamo una cosa apparentemente impossibile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Il CTR su <strong>Desktop<\/strong> \u00e8 salito dal 5,0% al 5,5%.<\/li>\n\n\n\n<li>Il CTR su <strong>Mobile<\/strong> \u00e8 salito dal 2,0% al 2,5%.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Fissiamo lo schermo. Com&#8217;\u00e8 matematicamente possibile che le performance siano migliorate ovunque, ma il totale generale sia crollato di un punto percentuale netto?<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Non abbiamo rotto Google Search Console e non abbiamo dimenticato la matematica delle elementari. Siamo semplicemente appena diventati vittime del <strong>Paradosso di Simpson<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cos&#8217;\u00e8 il Paradosso di Simpson<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il Paradosso di Simpson \u00e8 un fenomeno statistico in cui un trend che appare evidente all&#8217;interno di diversi gruppi di dati scompare \u2014 o addirittura si inverte \u2014 quando i gruppi vengono combinati in un unico totale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella pratica quotidiana della SEO e del marketing questo accade quasi sempre per colpa di una <strong>variabile confondente<\/strong> nascosta (come dicono gli anglosassoni, una <em>confounding variable<\/em>): nel nostro caso, <strong>il peso relativo dei segmenti che stiamo analizzando<\/strong>. \u00c8 lo stesso ragionamento che incontriamo parlando di <a href=\"https:\/\/www.gironi.it\/blog\/tabelle-di-contingenza-e-probabilita-condizionata\/\">probabilit\u00e0 condizionata<\/a>, dove ci\u00f2 che conta non \u00e8 il dato marginale ma quello condizionato a un sottogruppo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando lavoriamo con tassi e percentuali (il CTR, il Conversion Rate, il Bounce Rate), guardare il dato aggregato senza considerare i volumi sottostanti \u00e8 una delle trappole pi\u00f9 insidiose per chi analizza i dati.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La dimostrazione: anatomia di un finto crollo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Torniamo al nostro report mensile e mettiamo i numeri assoluti dietro a quelle percentuali. Solo cos\u00ec capiamo cosa \u00e8 successo davvero tra il Mese 1 e il Mese 2.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Segmento<\/th><th>Mese 1 (impr. \u00b7 clic \u00b7 CTR)<\/th><th>Mese 2 (impr. \u00b7 clic \u00b7 CTR)<\/th><th>Andamento<\/th><\/tr><\/thead><tbody><tr><td><strong>Desktop<\/strong><\/td><td>10.000 \u00b7 500 \u00b7 5,0%<\/td><td>10.000 \u00b7 550 \u00b7 5,5%<\/td><td>in crescita<\/td><\/tr><tr><td><strong>Mobile<\/strong><\/td><td>2.000 \u00b7 40 \u00b7 2,0%<\/td><td>20.000 \u00b7 500 \u00b7 2,5%<\/td><td>in crescita<\/td><\/tr><tr><td><em>Totale aggregato<\/em><\/td><td>12.000 \u00b7 540 \u00b7 4,5%<\/td><td>30.000 \u00b7 1.050 \u00b7 3,5%<\/td><td>in calo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco il punto: non abbiamo un problema di SEO, al contrario abbiamo avuto un successo notevole. I posizionamenti su Mobile sono esplosi, portando 18.000 impression in pi\u00f9 rispetto al mese precedente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il traffico Mobile, per\u00f2, ha storicamente un CTR strutturalmente pi\u00f9 basso del Desktop (pi\u00f9 rumore in SERP, scrolling veloce, distrazioni). Quell&#8217;enorme afflusso di impression a basso CTR ha &#8220;annacquato&#8221; la media globale, trascinandola verso il basso. Il dato aggregato ci diceva <em>&#8220;stiamo peggiorando&#8221;<\/em>; il dato disaggregato ci dice <em>&#8220;stiamo migliorando su tutta la linea, ma \u00e8 cambiato il mix di traffico&#8221;<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ragione matematica \u00e8 semplice e va sempre tenuta bene a mente: <strong>il CTR aggregato non \u00e8 la media dei CTR dei segmenti, ma una loro media <em>pesata<\/em><\/strong>, dove i pesi sono le quote di impression di ciascun segmento. In formula:<\/p>\n\n\n\n\\(\n\\text{CTR}_{\\text{agg}} = \\frac{\\sum_i \\text{clic}_i}{\\sum_i \\text{impression}_i} = \\sum_i w_i \\cdot \\text{CTR}_i, \\qquad w_i = \\frac{\\text{impression}_i}{\\sum_j \\text{impression}_j} \\\\\n\\)\n\n\n\n<p class=\"wp-block-paragraph\">dove \\(\\text{CTR}_i\\) \u00e8 il CTR del segmento <em>i<\/em> e \\(w_i\\) \u00e8 il suo peso, cio\u00e8 la frazione di impression che gli appartiene. Nel Mese 2 il peso del Mobile \u00e8 passato da 1\/6 a 2\/3 del totale: anche se ogni singolo CTR \u00e8 salito, la media si \u00e8 spostata verso il valore (basso) del segmento diventato dominante. Non \u00e8 la matematica a essere impazzita: \u00e8 il <em>mix<\/em> a essere cambiato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ricostruiamo il tutto in R, cos\u00ec vediamo il meccanismo all&#8217;opera invece di prenderlo sulla fiducia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Ricostruisco i dati dei due mesi\ndati &lt;- data.frame(\n  segmento   = c(\"Desktop\", \"Mobile\", \"Desktop\", \"Mobile\"),\n  mese       = c(\"Mese 1\",  \"Mese 1\", \"Mese 2\",  \"Mese 2\"),\n  impression = c(10000,     2000,     10000,     20000),\n  clic       = c(500,       40,       550,       500)\n)\n\n# CTR di ciascun segmento\ndati$ctr &lt;- dati$clic \/ dati$impression\n\n# CTR aggregato per mese: media PESATA sulle impression,\n# NON la media aritmetica dei CTR\nagg &lt;- aggregate(cbind(clic, impression) ~ mese, data = dati, FUN = sum)\nagg$ctr_aggregato &lt;- agg$clic \/ agg$impression\nprint(agg)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Come si vede dall&#8217;output, l&#8217;aggregato scende da 4,5% a 3,5% mentre entrambi i segmenti salgono. n.b.: la media aritmetica dei due CTR del Mese 2 sarebbe il 4% (la semplice media tra 5,5% e 2,5%), ben diversa dal 3,5% reale. Tutta la differenza \u00e8 nei pesi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Altri due scenari SEO dove il paradosso colpisce<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il CTR per dispositivo \u00e8 l&#8217;esempio da manuale, ma il Paradosso di Simpson si annida un po&#8217; ovunque nelle nostre dashboard.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Il crollo del Conversion Rate (intento informazionale vs transazionale)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lavoriamo su un e-commerce e il Conversion Rate organico passa dal 3% all&#8217;1,5%. Un disastro? Non necessariamente. Se abbiamo appena lanciato un blog aziendale che ha iniziato a posizionarsi bene per centinaia di keyword informazionali top-of-the-funnel, abbiamo portato sul sito migliaia di utenti lontani dall&#8217;acquisto (con un CR fisiologico vicino allo 0,1%). Il CR delle pagine prodotto pu\u00f2 essere stabile o in crescita, ma la mole di traffico del blog ha distorto la media aggregata.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Cannibalizzazione o espansione del ranking?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una nostra pagina prodotto storica rankava solo per 5 keyword transazionali esatte: 100 impression, 10 clic, CTR 10%. Decidiamo di ottimizzarne i contenuti e il mese dopo Google ne premia la semantica, posizionandola per 80 nuove keyword long-tail e correlate. Ora la pagina fa 5.000 impression e 100 clic: CTR 2%. Se guardiamo solo il CTR medio su Search Console sembra che l&#8217;ottimizzazione l&#8217;abbia distrutta; se guardiamo i clic assoluti, li abbiamo decuplicati.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come difendersi (i takeaway per chi analizza)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Come sopravviviamo al Paradosso di Simpson quando presentiamo i dati a un cliente o a uno stakeholder? Quattro accortezze.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Non fidiamoci mai del solo dato aggregato.<\/strong> Quando analizziamo metriche relative (tassi di conversione, di clic, medie), il totale globale \u00e8 spesso il numero meno utile di tutti.<\/li>\n\n\n<li><strong>Segmentiamo fino a trovare l&#8217;omogeneit\u00e0.<\/strong> Dividiamo i dati per dimensioni logiche prima di trarre conclusioni: per dispositivo (Desktop\/Mobile), per tipo di query (brand\/non-brand), per tipo di pagina (blog\/prodotto).<\/li>\n\n\n<li><strong>Cerchiamo il cambiamento dei pesi.<\/strong> Se un tasso globale crolla ma i sottogruppi tengono, chiediamoci: <em>&#8220;\u00e8 cambiato il mix del traffico?&#8221;<\/em>. Quasi sempre un segmento a bassa performance ha aumentato di colpo i propri volumi.<\/li>\n\n\n<li><strong>Educhiamo il cliente.<\/strong> In un report non limitiamoci a mostrare il calo del CTR: mostriamo la tabella disaggregata. Spiegare il meccanismo non salva soltanto il report del mese, ci posiziona come analisti che ragionano sui dati invece di subirli.<\/li>\n\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">I dati non mentono, ma i dati aggregati sono ottimi prestigiatori. La difesa pi\u00f9 solida, per\u00f2, non \u00e8 statistica ma sperimentale: quando possiamo decidere noi <em>come<\/em> assegnare il traffico \u2014 randomizzando gli utenti tra due versioni di una pagina \u2014 il mix smette di essere una variabile fuori controllo. \u00c8 esattamente ci\u00f2 che facciamo con un <a href=\"https:\/\/www.gironi.it\/blog\/ab-testing\/\">A\/B test condotto in modo rigoroso<\/a>, il prossimo passo del nostro percorso: vedere come un esperimento controllato neutralizza alla radice le variabili confondenti che qui ci siamo limitati a smascherare.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"per-approfondire\">Per approfondire<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se vogliamo approfondire il Paradosso di Simpson e l&#8217;arte di leggere i dati senza farci ingannare, <a href=\"https:\/\/www.amazon.it\/dp\/8806246623?tag=consulenzeinf-21\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><em>L&#8217;arte della statistica<\/em><\/a> di David Spiegelhalter \u00e8 la lettura giusta: dedica pagine limpide proprio a questo paradosso \u2014 incluso il celebre caso delle ammissioni a Berkeley \u2014 mostrando come un numero aggregato possa raccontare l&#8217;esatto contrario di ci\u00f2 che \u00e8 successo nei dati.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c8 l&#8217;ultimo giorno del mese. Stiamo preparando il report SEO per il cliente principale. Apriamo Google Search Console, impostiamo il confronto mese su mese e un brivido ci corre lungo la schiena: il CTR organico globale del sito \u00e8 crollato dal 4,5% al 3,5%. Prima di scrivere l&#8217;email con le cattive notizie e prepararci a &hellip; <a href=\"https:\/\/www.gironi.it\/blog\/il-paradosso-di-simpson-nella-seo-quando-i-dati-aggregati-possono-mentire\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Il Paradosso di Simpson nella SEO: quando i dati aggregati possono mentire&#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":[626],"tags":[],"class_list":["post-3569","post","type-post","status-publish","format-standard","hentry","category-senza-categoria-it"],"lang":"it","translations":{"it":3569,"en":3579},"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":"autore-articoli","author_link":"https:\/\/www.gironi.it\/blog\/author\/autore-articoli\/"},"uagb_comment_info":0,"uagb_excerpt":"\u00c8 l&#8217;ultimo giorno del mese. Stiamo preparando il report SEO per il cliente principale. Apriamo Google Search Console, impostiamo il confronto mese su mese e un brivido ci corre lungo la schiena: il CTR organico globale del sito \u00e8 crollato dal 4,5% al 3,5%. Prima di scrivere l&#8217;email con le cattive notizie e prepararci a&hellip;","_links":{"self":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3569","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=3569"}],"version-history":[{"count":5,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3569\/revisions"}],"predecessor-version":[{"id":3578,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3569\/revisions\/3578"}],"wp:attachment":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/media?parent=3569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/categories?post=3569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/tags?post=3569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}