App Deep Linking for Beginners

Alyssa Ordu
Alyssa Ordu

On 3rd November 2015 • 15 min read

From the moment that Google mentioned the words ‘indexed apps’ and ‘ranking’ in the same sentence in February, it was clear that 2015 was going to be the year of the app (once mobilegeddon had passed, of course).

And it’s not just the traditional SEO industry that’s benefitting from the new focus on apps and content: new app deep linking methods from Facebook, Twitter and other third-party tools are making it easier to integrate your app content with your other digital marketing efforts.

Here’s how to get started.
 

Deep linking methods and tools: an intro

For the purposes of this guide we have focussed on app deep linking methods that have some sort of web element. All of these methods have their own markup and configuration, so it’s worth investigating all of the ones you require before implementing them.

We have provided links throughout the post to more information on implementation, rather than trying to cover all the different methods in one post.

 

Google App Indexing

Google’s App Indexing only works for Google mobile search. If the URL in the search results has a corresponding app version (and the user has the app installed on their device), Google will direct the user to the app page, instead of the web page.

If a deep-linked app is not installed on the user’s device, then Google will prompt them to install the app.

Google will eventually crawl app-only content independently from the web version, so at some point you won’t need to provide a corresponding page on the website to show up in Google’s search results. But at the moment you do.

Use the App Indexing API (Android apps only) to send just the page title and description and prevent Google having to crawl the whole page with web annotations.
 

App indexing as a Google ranking factor?

While no business should rush into the costly and demanding process of building an app just for a perceived SEO advantage, Google say that app indexing does affect mobile search rankings:

“For both Android and iOS users, App Indexing will influence ranking, whether or not the user has your app installed. This means that if your app is indexed, Google will use the content within your app as a signal in ranking, not just your web content.”

There is also an additional ranking boost available if you use the App Indexing API (only available for Android apps). Google’s Mariya Moeva has said this is because Google is able to collect additional engagement data (such as usage times and visited pages) to help determine how useful the app is to users.
 

Android and iOS implementation

Android apps can respond to regular HTTP requests and use them to deep link into apps. HTTP scheme is also a requirement for iOS apps, as Google’s Mariya Moeva mentioned in a recent Google Webmaster Hangout about App Indexing. Using HTTP scheme, you don’t need to markup your site — just set the app to respond to HTTP requests.

More information on setting up app deep linking for Android and iOS 9 is available at the Google Developers site:

 

Common Issues

 

Not using direct content links, or different content on app/website

Make sure your content is the same on your app and your website, and only include direct content links in your deep linking (don’t link to ads or any other page type). App content can be shorter than the web version as Google can recognize it’s the same, but the more the app content tallies with the web content, the easier it is to get the content validated.
 

First Click Free

As with website content, make sure a user lands on the content they were searching for without having to go through a paywall, pop-ups or commercials.
 

Robots.txt file

Backend APIs need to be ‘unlocked’ in your Robots.txt file so Google can crawl the content in your app and check that the content is the same on the app page and web page.
 

Using native ARM code

Keep deep links that execute native ARM code out of your annotations, otherwise app deep linking might not work on all platforms.
 

Excluding URLs with noindex.xml

Use a noindex.xml file to specify URIs that you want to exclude from app deep links, in the same way as you would noindex URLs with a robots noindex tag.

However, you can only exclude using an exact URI (example: uri=”http://recipe-app.com/recipes/hidden_uri”).

Or just a beginning phrase (example: uriPrefix=”recipe-app://hidden_prefix”).

These restrictions mean the noindex.xml file is not as powerful as robots.txt and is harder to use with complicated setups.
 

MULTI-LANGUAGE CONTENT

Google currently supports two set-ups for content served in multiple languages:

 

Side note: a reminder about app interstitials...

While it’s tempting to promote your app as hard as possible now that there are SEO benefits relating to app indexing, bear in mind that using app install interstitials that get in the way of your web content can also have a negative effect on the search performance of your site as a whole (which could outweigh the ranking benefits of using app indexing in the first place).

Sites that hide too much content with app interstitials are no longer be considered mobile-friendly, which presumably means those sites will no longer have the mobile friendly tag in search results or the mobile-friendly ranking boost.

The mobile-friendly testing tool and the Search Console Mobile Usability report were updated in September to indicate whether a site is hiding too much content with an app install interstitial on the transition from a search result, so it’s worth double-checking that there are no issues on your site as soon as possible.
 

Managing app deep linking with Search Console, Google News Publisher Center and DeepCrawl

 

Search Console:

There are two ways to use Search Console to help monitor your app’s performance:

 

Google News Publisher Center:

If your site is included in Google News, add your apps in the Google News Publisher Center in the Mobile Apps section to help Google News direct users to your app content.

1
 

DeepCrawl:

Use DeepCrawl’s Custom Extraction feature to find and analyze just the URLs that have app deep linking markup applied.

To use the feature, set up a crawl as normal and enter the relevant regexes in the Custom Extraction > Extraction Regex field under Advanced Settings:

alternate-android-app:href\s?=\s?['"](android-app://.*?)['"]
alternate-ios-app:href\s?=\s?['"](ios-app://.*?)['"]

2

You will then be able to analyze just the URLs that include the markup under the Extraction tab in your report:

3
 

More information on Google app deep linking:

 

Facebook App Links

When someone shares content from within an app that has Facebook App Links applied, anyone clicking on that link will be able to access that content through the app. This can be done using an app alternative to existing web content, or app-only content, and works either from ‘web to app’ or ‘app to app’. The feature works with Android, iOS and Windows phones.

4

If the user clicking on the link does not have the app installed, they will be directed to the app store for their device or a web version of the same page if it’s available.

 

Implementation:

 

Managing App Links with Facebook Insights and DeepCrawl

 

Facebook Insights:

Set up App Links analytics using Bolt SDK on iOS or Android. Once this is working, you’ll be able to view traffic and usage information in Facebook Insights.
 

DeepCrawl:

Use DeepCrawl’s Custom Extraction feature to find URLs that include Facebook App Links meta data and analyze how they behave.

To use the feature, set up a crawl as normal and enter the relevant regexes in the Custom Extraction > Extraction Regex field under Advanced Settings:

ANDROID URL: property="al:android:package" content="(.*?)" \/>$

ANDROID APP URL: property="al:android:url" content="(.*?)" \/>$

ANDROID APP NAME: property="al:android:app_name” content="(.*?)" \/>$

IOS URL: property="al:ios:url" content="(.*?)" \/>$

IOS APP STORE ID: property="al:ios:app_store_id" content="(.*?)" \/>$

IOS APP NAME: property="al:ios:app_name” content="(.*?)" \/>$

WINDOWS URL: property="al:windows_phone:url” content="(.*?)" \/>$

WINDOWS APP NAME: property="al:windows_phone:app_name” content="(.*?)" \/>$

WEB URL: property="al:web:url” content="(.*?)" \/>$

5

You will then be able to analyze just the URLs that include the markup under the Extraction tab in your report:

6
 

Further reading on Facebook App Links

 

Want More Like This?

We hope that you’ve found this post useful in learning more about app indexing.

You can read more about this topic in a Google Webmaster Hangout that covered app indexing.

Additionally, if you’re interested in keeping up with Google’s latest updates and best practice recommendations then why not loop yourself in to our emails?

Loop Me In!

Author

Alyssa Ordu
Alyssa Ordu

Alyssa is a keen traveller, cocktails & dad jokes enthusiast who does Marketing, in that order. A lover of outreach, connect with her for opportunities to collaborate, or exchange a pun or two.

Get the knowledge and inspiration you need to build a profitable business - straight to your inbox.

Subscribe today