Deep linking delle app per la ricerca (App Indexing)

Che cos’era App Indexing di Google, perché è deprecato e che cosa lo ha sostituito: App Links Android (assetlinks.json) e Universal Links iOS (apple-app-site-association). Storia, mito del ranking e implementazione e misurazione dei deep link delle app oggi.

Prima pubblicazione: 3 lug 2026 · Ultimo aggiornamento: 11 ago 2026 · Advanced
Lingue

App Indexing era il sistema di Google (2013–~2021) per sottoporre a crawl i contenuti delle app native e portare app non installate nei risultati di ricerca. È deprecato: AppIndexApi è contrassegnato come deprecato nella documentazione Google e Firebase App Indexing non è più usato dall’app Google Search. Lo hanno sostituito i deep link: App Links Android (verificati tramite assetlinks.json) e Universal Links iOS (verificati tramite apple-app-site-association). Il fatto più importante oggi è che i deep link non cambiano indicizzazione o ranking: Google continua a posizionare la pagina web e li usa solo per indirizzare nell’app, dopo il clic, chi l’ha già installata. L’unico requisito reale è la parità dei contenuti tra schermata app e pagina web. Misura il comportamento con il filtro Android app di Search Console.

Evidence for this claim Android App Links use verified website associations to open matching web URLs in an installed Android app. Scope: Android deep linking; it does not establish a Google Search ranking benefit. Confidence: high · Verified: Android Developers: App Links Evidence for this claim Apple Universal Links associate HTTPS URLs with installed apps through an apple-app-site-association file and app entitlement. Scope: Apple platform deep linking; separate from historical Google App Indexing. Confidence: high · Verified: Apple Developer: Universal Links

TL;DR — Google App Indexing (2013) → Firebase App Indexing (2016, oltre a un breve esperimento di «app streaming») → deprecato verso il 2021. Il successore sono i deep link: Android App Links (verificati con un file Digital Asset Links in /.well-known/assetlinks.json e filtri intent android:autoVerify) e iOS Universal Links (verificati con un file apple-app-site-association e l’entitlement Associated Domains). Secondo le indicazioni di Google di maggio 2025, i deep link non cambiano indicizzazione o ranking: la Ricerca continua a posizionare la pagina web e la destinazione del deep link dovrebbe corrispondere al contenuto dell’URL web. Misura il comportamento dei link con le analisi della piattaforma e dell’app, senza presumere che esista un rapporto dedicato in Search Console.

Tre epoche, un nome che confonde

Il motivo per cui «App Indexing» crea tanta confusione è che la stessa idea ha avuto tre nomi diversi in un decennio e l’ultima transizione è stata una deprecazione a cui molti contenuti vecchi non si sono mai adeguati.

2013–2016 — Google App Indexing. Nell’ottobre 2013 Google annunciò: “Googlebot can now index content in your Android app,” (traduzione) «Googlebot ora può indicizzare i contenuti della tua app Android», mostrando deep link all’app “straight in our search results when we think they’re relevant… and if the user has the app installed.” (traduzione) «direttamente nei risultati di ricerca quando riteniamo che siano pertinenti e se l’utente ha installato l’app». Dichiaravi i contenuti dell’app tramite la sitemap esistente e Webmaster Tools. Era Google che eseguiva il crawl dentro le app, come fa con le pagine web.

2016–~2021 — Firebase App Indexing. Dopo l’acquisizione di Firebase da parte di Google nel 2014, App Indexing è stato rinominato Firebase App Indexing intorno a Google I/O 2016. Ha aggiunto il supporto a iOS e, per un periodo, un esperimento chiamato app streaming: un pulsante «Prova ora» che permetteva di usare nel browser un’app non installata per alcuni minuti, direttamente da un risultato di ricerca. App streaming era un esperimento limitato del 2015–2016 ed è scomparso da tempo; non progettare nulla intorno a esso.

~2021–oggi — deprecato. L’interfaccia AppIndexApi è contrassegnata come deprecata nella documentazione di riferimento Android di Google. La documentazione live di Firebase ora afferma che Firebase App Indexing “is no longer the recommended way of indexing content for display as suggested results in Google Search App,” (traduzione) «non è più il metodo consigliato per indicizzare contenuti da mostrare come risultati suggeriti nell’app Google Search», con l’avvertenza esplicita che “the Google Search App for Android no longer uses local content indexed via Firebase App Indexing to provide results to users.” (traduzione) «l’app Google Search per Android non usa più i contenuti locali indicizzati tramite Firebase App Indexing per fornire risultati agli utenti». Firebase indirizza ora verso App Links e Universal Links. Il passaggio è avvenuto nel 2021: l’avviso di deprecazione è presente in un archivio dell’ottobre 2022 ma assente in quello dell’ottobre 2020.

I deep link sono, nelle parole di Google, “special URIs that take users beyond your mobile app’s homepage, leading them directly to specific in-app content.” (traduzione) «URI speciali che portano gli utenti oltre la pagina iniziale dell’app mobile, direttamente a specifici contenuti interni». Il cambio di prospettiva rispetto al vecchio modello è fondamentale: si tratta di verifica e routing, gestiti dal sistema operativo e dal browser, non da una pipeline di indicizzazione gestita da Google. Nulla di tutto questo viene «inviato a un indice».

Android App Links sono, secondo Google, “an enhanced deep linking capability that verifies deep links to your own website by establishing a trusted association between your app and your website. After they are verified, deep links to your website can immediately open corresponding content in your app, without requiring the user to select your app from a disambiguation dialog.” (traduzione) «una funzionalità avanzata di deep linking che verifica i link al tuo sito stabilendo un’associazione attendibile tra app e sito; dopo la verifica, i link possono aprire subito il contenuto corrispondente nell’app senza chiedere all’utente di scegliere un’app». App Links è supportato da Android 6 in poi e Google lo definisce “a recommended approach” (traduzione) «un approccio consigliato» per i deep link verso il proprio sito.

Il collegamento di verifica è un file Digital Asset Links. Quando inserisci android:autoVerify="true" in un filtro intent e l’app è installata, “Android queries the corresponding websites for the Digital Asset Links file at https://hostname/.well-known/assetlinks.json.” (traduzione) «Android interroga i siti corrispondenti per trovare il file Digital Asset Links all’indirizzo indicato». Quel file JSON elenca quale pacchetto app (e quale impronta del certificato di firma) può gestire i link del dominio. Android 15 aggiunge Dynamic App Links, che permettono di affinare il comportamento di corrispondenza degli URL senza pubblicare una nuova versione dell’app.

Qui contano due confini di versione e firma. Primo: Dynamic App Links estende l’associazione sottostante del manifest, non la sostituisce; sulle versioni Android precedenti alla 15, la verifica continua a basarsi solo sulla corrispondenza standard tra manifest e assetlinks.json. Secondo: la verifica fallisce del tutto, non parzialmente, se l’impronta del certificato di firma in assetlinks.json non corrisponde esattamente all’identità di firma effettiva della build installata. Una build di debug firmata con una chiave diversa da quella dell’elemento assetlinks.json non verrà mai verificata, anche se ogni altro campo è corretto.

La distinzione da tenere a mente è questa: un deep link Android di base usa i filtri intent ma può mostrare la finestra di disambiguazione «con quale app vuoi aprire questo link?». App Links aggiunge la verifica Digital Asset Links, così un dominio verificato si apre direttamente nell’app, senza finestra.

L’equivalente Apple sono i Universal Links. Apple spiega: “When users tap or click a universal link, the system redirects the link directly to your app without routing through the person’s default web browser or your website… because universal links are standard HTTP or HTTPS links, one URL works for both your website and your app. If the person hasn’t installed your app, the system opens the URL in their default web browser.” (traduzione) «Quando una persona tocca un Universal Link, il sistema apre direttamente l’app senza passare dal browser; poiché si tratta di normali link HTTP o HTTPS, lo stesso URL funziona per sito e app, mentre in assenza dell’app si apre nel browser predefinito».

Il file di verifica è apple-app-site-association, ospitato sul server web: “When someone installs your app, the system checks a file stored on your web server to verify that your website allows your app to open URLs on its behalf.” (traduzione) «Quando qualcuno installa l’app, il sistema controlla un file sul server web per verificare che il sito autorizzi l’app ad aprire URL per suo conto». Sul lato app serve l’entitlement Associated Domains, che deve corrispondere ai domini del file. È lo stesso principio di Android: un handshake di fiducia tra sito e app, verificato dal dispositivo, non un segnale di ranking nella ricerca.

Un file apple-app-site-association valido e un entitlement corrispondente correttamente non garantiscono però che ogni tap apra l’app. Apple documenta casi reali in cui un Universal Link apre comunque Safari nonostante l’associazione funzionante: per esempio quando il link viene toccato dentro Safari mentre si sta già visitando lo stesso dominio o quando la persona ha scelto in precedenza di continuare ad aprire nel browser i link di quel dominio. Quando l’app non è installata o l’associazione non corrisponde, un link HTTP(S) standard deve ricadere nel browser invece di terminare su uno schema personalizzato rotto: è il sistema che funziona come progettato, non un bug da inseguire.

Entrambe le piattaforme sono supportate da Google Search come destinazioni di deep link.

Questa è la correzione più importante dell’intero argomento, perché ancora oggi pagine dedicate al ranking lo spiegano male. Troverai articoli che sostengono erroneamente che App Indexing influenzi il ranking anche senza l’app installata o che Google usi i contenuti dell’app come segnale di ranking. Sono affermazioni false e il post di Google di maggio 2025 lo dice direttamente:

“Adding deep links to your website connects the website’s URLs with the relevant app pages. It doesn’t change how Google Search shows your content; Search continues to use the content of your web pages for indexing and ranking. App deep links enable users to go from Search results directly to the corresponding app page (if installed), resulting in a better user experience.” (traduzione) «Aggiungere deep link collega gli URL del sito alle pagine pertinenti dell’app. Non cambia il modo in cui la Ricerca Google mostra i contenuti: per indicizzazione e ranking continua a usare le pagine web. I deep link portano gli utenti dai risultati alla pagina corrispondente nell’app installata, migliorando l’esperienza.»

Evidence for this claim Google says adding app deep links does not change how Search indexes or ranks content; the corresponding web page remains the indexing and ranking source. Scope: public web Confidence: high · Verified: App deep links: connecting your website and app

Leggilo con attenzione: è la pagina web a essere indicizzata e posizionata. Il deep link è un livello di routing post-clic che si attiva solo per utenti che hanno già l’app. È un miglioramento UX, non una leva di visibilità. Se qualcuno ti dice che configurare assetlinks.json farà salire il ranking, si sbaglia.

L’unico requisito reale: la parità dei contenuti

C’è una sola regola sostanziale, e riguarda l’onestà verso l’utente. Google dice:

“Because Search uses your web page content for indexing and ranking, you should only add deep links in cases where the app page contains the same content as the corresponding web page. Otherwise, the title and snippet shown for the page in Google Search could mislead users about the content they will see after they click. Layout or other UX differences between app pages and the corresponding web pages are OK, as long as the content matches.” (traduzione) «Poiché la Ricerca usa i contenuti della pagina web per indicizzazione e ranking, aggiungi deep link solo quando la pagina dell’app contiene gli stessi contenuti della pagina web corrispondente. Altrimenti titolo e snippet possono fuorviare chi fa clic. Differenze di layout o esperienza utente vanno bene, purché i contenuti coincidano.»

Quindi: una schermata nativa, più bella e con un layout diverso va bene. Non va bene una schermata che mostra contenuti diversi dalla pagina web, perché lo snippet toccato dall’utente è stato costruito dalla pagina web e ora l’utente è atterrato in un posto che non corrisponde. La parità riguarda il contenuto, non l’aspetto.

Come implementarlo oggi

Android: usa App Links. Associa l’app al sito nel manifest (filtri intent con android:autoVerify="true"), poi pubblica /.well-known/assetlinks.json sul sito con il nome del pacchetto e l’impronta del certificato di firma. Android verifica l’associazione durante l’installazione. App Links Assistant di Android Studio e la pagina Deep Links di Play Console aiutano a generare e convalidare la configurazione.

iOS: implementa Universal Links. Pubblica un file apple-app-site-association sul server web indicando quali percorsi corrispondono all’app e aggiungi l’entitlement Associated Domains per i domini corretti. La guida Apple al debugging dei Universal Links descrive i problemi comuni (tipo di contenuto errato del file, entitlement mancante, associazione in cache).

Nessuno dei due file viene sottoposto a crawl in un «indice di ricerca» come lasciava intendere App Indexing: sono handshake di fiducia verificati dal dispositivo. Se li sbagli, i link ricadono semplicemente nel browser; se li configuri bene, gli utenti con l’app installata vengono indirizzati nell’app.

Controllo minimo dei file di associazione

curl -sI https://example.com/.well-known/assetlinks.json
curl -sI https://example.com/.well-known/apple-app-site-association

Entrambi gli endpoint dovrebbero restituire 200 senza redirect e fornire la risposta JSON prevista. La lente Scripts contiene i controlli estesi su tipo di contenuto, redirect, PowerShell, DevTools e bookmarklet.

Come misurarlo: il filtro Android app di Search Console

Google espone nativamente le prestazioni dei deep link delle app: “Search Console includes performance of your site’s app deep links for Android. In the Performance report, you can use the Android App Search appearance filter to see when your Android app deep links are found and shown to users.” (traduzione) «Search Console include il rendimento dei deep link Android del sito; nel rapporto Rendimento puoi usare il filtro di aspetto nella ricerca Android App per vedere quando vengono trovati e mostrati agli utenti». Questo fornisce clic, impressioni, CTR e posizione per i risultati in cui è comparso il deep link Android: il modo concreto e attuale per capire se sta producendo qualcosa. Il filtro è stato aggiunto nel 2019 ed è ancora lo strumento corrente secondo il post di Google del 2025.

Tieni però separati i due lavori. Il filtro Search Console è un rapporto sul traffico e sulla visualizzazione, solo per Android, dipendente dal fatto che Google mostri davvero il trattamento da deep link per una determinata query; non dimostra da solo che qualcosa sia indicizzato o posizionato. Verificare tecnicamente un deep link è un esercizio diverso: recupera i file di associazione e prova il tap-through su dispositivi reali (vedi le schede Scripts e Validation Tests). Non interpretare un rapporto Search Console vuoto come prova che la configurazione sia rotta e non interpretare i clic come un segnale SEO: misurano il volume del routing, non il ranking.

Non presumere la parità tra Google e Bing. Bing aveva un programma di «app linking» incentrato su Windows a partire dall’aprile 2014, rivolto a Windows 8,1 e Windows Phone, ma quelle pagine non esistono più (l’URL dev restituisce 404 e i post del blog reindirizzano alla home generica) e Windows Phone è stato dismesso. Non esiste oggi un equivalente pubblicato da Bing della guida di Google del 2025 sui deep link delle app. In pratica, App Links e Universal Links funzionano ancora su Bing/Edge mobile perché sono standard a livello di sistema operativo e browser, non qualcosa a cui un motore di ricerca debba aderire: li implementi allo stesso modo comunque. Semplicemente non esiste una documentazione Bing da citare.

Tecniche legacy che troverai ancora in giro

Alcune tecniche vicine generano confusione: chiamale per nome e vai oltre:

  • Il markup schema.org potentialAction / ViewAction con una destinazione deep link android-app://. È una tecnica legacy legata alla vecchia epoca di App Indexing. Puoi ancora trovarla nei codebase e nel vocabolario delle action di schema.org, ma la raccomandazione attuale di Google è configurare App Links / Universal Links, non usare questo markup. Trattalo come qualcosa che «potresti ancora vedere», non come una raccomandazione.
  • Firebase Dynamic Links è un prodotto Firebase diverso e deprecato separatamente: un servizio di abbreviazione URL e deferred deep linking per l’attribuzione marketing, non il sistema di contenuti App Indexing. Anche questo servizio è in fase di ritiro e la sua guida di migrazione rimanda ad App Links e Universal Links. Non confondere le due deprecazioni.

Il modello da ricordare è questo: (1) il vecchio sistema di crawl e streaming Google App Indexing / Firebase App Indexing = morto; (2) deep linking App Links / Universal Links = attuale, solo routing/UX, nessun effetto sul ranking; (3) l’app linking di Bing dell’epoca Windows = anch’esso morto, senza sostituto documentato.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.