App Indexing (App Deep Linking for Search)

What Google App Indexing was, why it's deprecated, and what actually replaced it — Android App Links (assetlinks.json) and iOS Universal Links (apple-app-site-association). The history, the myth that deep links help ranking, and how to implement and measure app deep links today.

First published: Jul 3, 2026 · Last updated: Jul 18, 2026 · Advanced

App Indexing was Google's system (2013–~2021) for crawling native app content and streaming uninstalled apps into search results. It's deprecated — the AppIndexApi is marked deprecated in Google's own docs, and Firebase App Indexing is no longer used by the Google Search app. What replaced it is app deep links: Android App Links (verified via assetlinks.json) and iOS Universal Links (verified via apple-app-site-association). The single most important current fact: deep links don't change indexing or ranking — Google still ranks the web page — they only route a user who already has the app installed into the app after a search click. The one real requirement is content parity between the app screen and the web page. Measure it with Search Console's Android app appearance filter.

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 IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (2013) → Firebase App IndexingApp Indexing was Google's now-deprecated system (2013–~2021) for indexing native app content and streaming uninstalled apps into search results. It's been replaced by app deep links — Android App Links and iOS Universal Links — which route users who have the app installed from a search result into the matching in-app screen. Deep links don't change indexing or ranking; Google still ranks the web page. (2016, plus a short-lived “app streaming” experiment) → deprecated by ~2021. The successor is app deep links: Android App Links (verified with a Digital Asset Links file at /.well-known/assetlinks.json plus android:autoVerify intent filters) and iOS Universal Links (verified with an apple-app-site-association file plus the Associated Domains entitlement). Per Google’s May 2025 guidance, deep links don’t change indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. or ranking — Search still ranks the web page — and the deep-link destination should correspond to the web URL’s content. Measure app-link behavior with platform and app analytics rather than assuming a dedicated Search Console report is available.

Three eras, one confusing name

The reason “App Indexing” causes so much confusion is that the same idea wore three different names over a decade, and the last transition was a deprecation that a lot of older content never caught up to.

2013–2016 — Google App Indexing. In October 2013 Google announced that “GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. can now index content in your Android app,” surfacing deep links to the app “straight in our search results when we think they’re relevant… and if the user has the app installed.” You declared app content through your existing sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. and Webmaster ToolsThe free, first-party consoles search engines give site owners — Google Search Console and Bing Webmaster Tools — to see how their pages are crawled, indexed, and ranked, and to fix problems. The legacy name is 'webmaster tools.'. This was Google crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. inside apps, the way it crawls web pages.

2016–~2021 — Firebase App Indexing. After Google’s 2014 Firebase acquisition, App Indexing was rebranded Firebase App Indexing around Google I/O 2016. It added iOS support and, for a while, an experiment called app streaming — a “Try Now” button that let users run an uninstalled app in-browser for a few minutes, straight from a search result. App streaming was a limited 2015–2016-era experiment and is long gone; don’t plan around it.

~2021–present — deprecated. The AppIndexApi interface is marked deprecated in Google’s own Android reference docs. Firebase’s live documentation now states that Firebase App Indexing “is no longer the recommended way of indexing content for display as suggested results in Google Search App,” with an explicit caution that “the Google Search App for Android no longer uses local content indexed via Firebase App Indexing to provide results to users.” Firebase now points you to App Links and Universal Links as the recommended path. (The cutover landed in 2021 — the deprecation notice is present in an October 2022 archive snapshot but absent from October 2020.)

Deep links are, in Google’s words, “special URIs that take users beyond your mobile app’s homepage, leading them directly to specific in-app content.” The key mental shift from the old model: this is verification and routing, handled at the OS and browser level — not a Google-run indexing pipeline. Nothing here is “submitted to an index.”

Android App Links are, per 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.” App Links is supported on Android 6 and later, and Google calls it “a recommended approach” for deep links to your own site.

The verification handshake is a Digital Asset Links file. When you put android:autoVerify="true" on an intent filter and the app is installed, “Android queries the corresponding websites for the Digital Asset Links file at https://hostname/.well-known/assetlinks.json.” That JSON file lists which app package (and signing-cert fingerprint) is allowed to handle your domain’s links. Android 15 adds Dynamic App Links, letting you refine URL-matching behavior without shipping a new app version.

Two version/signing boundaries matter here. First, Dynamic App Links extend the underlying manifest association rather than replace it — on Android versions before 15, verification still runs on the standard manifest/assetlinks.json match alone. Second, verification fails outright, not partially, if the signing-certificate fingerprint listed in assetlinks.json doesn’t exactly match the installed build’s actual signing identity — a debug build signed with a different key than the assetlinks.json entry will never verify, even if every other field is correct.

The distinction worth keeping straight: a basic Android deep link uses intent filters but can trigger the “which app do you want to open this with?” disambiguation dialog. App Links add the Digital Asset Links verification so a verified domain opens directly in your app, no dialog.

Apple’s equivalent is Universal Links. Apple: “When users tap or click a universal link, the system redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. 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 HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' 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.”

The verification file here is apple-app-site-association, hosted on your web server: “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.” On the app side you need the Associated Domains entitlement matching the domains in that file. Same principle as Android — a trust handshake between the site and the app, checked by the device, not a search-ranking signal.

A valid apple-app-site-association file and a correctly matching entitlement don’t guarantee every tap opens the app, though. Apple documents real cases where a Universal Link still opens in Safari despite a working association — for example when the link is tapped from within Safari itself while already browsing the same domain, or when the person has previously chosen to keep opening that domain’s links in the browser. And when the app genuinely isn’t installed, or the association doesn’t match, a standard HTTP(S) link is supposed to fall back to opening in the browser rather than dead-ending on a broken custom scheme — that fallback is the system working as designed, not a bug to chase.

Both platforms are supported by Google Search as deep-link targets.

This is the single most important correction in this whole topic, because ranking pages still get it wrong. You’ll find articles claiming things like “App Indexing will influence ranking… whether or not the user has your app installed” or “Google will use the content within your app as a signal in ranking.” Those claims are false, and Google’s own May 2025 post says so directly:

“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.”

Read that carefully: the web page is what’s indexed and ranked. The deep link is a post-click routing layer that only kicks in for users who already have the app. It’s a UX improvement, not a visibility lever. If someone tells you configuring assetlinks.json will lift your rankings, they’re wrong.

The one real requirement: content parity

There is exactly one substantive rule, and it’s about honesty to the user. Google:

“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.

So: a native, prettier, differently-laid-out app screen is fine. A screen showing different content than the web page is not — because the snippet the user tapped was built from the web page, and now they’ve landed somewhere that doesn’t match. Parity is about content, not appearance.

How to implement it today

Android: Use App Links. Associate your app with your website in the app manifest (intent filters with android:autoVerify="true"), then publish /.well-known/assetlinks.json on your site listing your app’s package name and signing-certificate fingerprint. Android verifies the association on install. The Android Studio App Links Assistant and the Play Console’s Deep Links page help you generate and validate the setup.

iOS: Implement Universal Links. Publish an apple-app-site-association file on your web server describing which paths map to your app, and add the Associated Domains entitlement in your app for the matching domains. Apple’s Universal Links debugging guidance walks through common failures (wrong content-type on the file, missing entitlement, cached association).

Neither file is crawled into a “search index” the way App Indexing implied — they’re trust handshakes the device checks. Get them wrong and links simply fall back to the browser; get them right and installed users route into the app.

How to measure it: Search Console’s Android app filter

Google exposes app-deep-link performance natively: “Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. includes performance of your site’s app deep links for Android. In the Performance reportThe Google Search Console report that shows how your site actually performed in Google Search, built from real impressions and clicks. It reports four metrics — clicks, impressions, average CTR, and average position — and keeps the most recent 16 months of data., you can use the Android App Search appearance filter to see when your Android app deep links are found and shown to users.” That gives you clicks, impressions, CTR, and position for results where the Android app deep link appeared — the concrete, current way to see whether any of this is doing anything. (This filter was added back in 2019; it’s still the current tool per Google’s 2025 post.)

Keep the two jobs separate, though. The Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. filter is a traffic/appearance report — Android-only, dependent on Google actually surfacing the app-deep-link treatment for a given query, and not itself proof that anything is indexed or ranking. Confirming a deep link technically works is a different exercise: fetch the association files and test tap-through on real devices (see the Scripts and Validation Tests tabs). Don’t treat a quiet Search Console report as evidence your setup is broken, and don’t treat clicks in the report as an SEO signal — it’s telling you about routing volume, not ranking.

Don’t assume Google/Bing parity here. Bing ran a Windows-centric “app linking” program starting in April 2014, aimed at Windows 8.1 and Windows Phone — but those pages are now dead (the dev URL returns a 404, the blog posts redirect to the generic blog homepage), and Windows Phone itself was discontinued. There is no current, Bing-published equivalent of Google’s 2025 app-deep-links guidance. The practical upshot: App Links and Universal Links still function in Bing/Edge on mobile because they’re OS- and browser-level standards, not something a search engine has to opt into — so you implement them the same way regardless. There’s just no Bing doc to point at.

Legacy things you’ll still see in the wild

A couple of adjacent techniques cause confusion, so name them and move on:

  • potentialAction / ViewAction schema.org markup with an android-app:// deep-link target. This is a legacy technique tied to the old App Indexing era. You may still find it in codebases and schema.org’s action vocabulary, but Google’s current recommendation is App Links / Universal Links configuration, not this markup. Treat it as “you may still see this,” not as a recommendation.
  • Firebase Dynamic Links is a different, separately-deprecated Firebase product — a URL-shortening / deferred-deep-linking service for marketing attribution, not the App Indexing content system. It’s being sunset too, and its own migration guidance also points to App Links and Universal Links. Don’t conflate the two deprecations.

The clean model to walk away with: (1) old Google App Indexing / Firebase App Indexing crawl-and-stream system = dead; (2) App Links / Universal Links deep linking = current, routing/UX only, no ranking effect; (3) Bing’s old Windows-era app-linking = also dead, no documented replacement.

Add an expert note

Pin an expert quote

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