indexing on fire: google firebase native & web app indexing - mozcon 2016

Post on 15-Apr-2017

1.019 Views

Category:

Mobile

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MobileMoxie @Suzzicks

Indexing on Fire: Google Firebase Native and Web App Indexing

In the Beginning there Was Nothing

Google Didn’t Even Try to Crawl Apps or JavaScript

Historically, Crawlers Have Been Locked Out of Some Mobile Content

To Rank, Content Must be Crawled & Indexed

Google Got Better & Better at Crawling JS & Eventually Android Apps

Web App & Native Apps Indexing Are Similar in Nature

Web App & Native Apps Indexing Are Similar in Nature

XMLSitemap JASON-LD

Crawling Mapping Docs & Ingesting Feeds through APIs is Faster & Easier for Google than Crawling Websites

Now Google Can Index this Stuff, But Crawling is Still a Bit Primitive

Now Google Can Index this Stuff, But Crawling is Still a Bit Primitive(Especially for iOS)

Native

App

VS

WEP APP INDEXING

PWA Relationship to other Web Apps

Single PageApp (SPA)

Web App

HTML5 App

DynamicWebsite JavaScript

Web App

PWA Relationship to AJAX

PWA Relationship to AJAX

They Use LOTS of JavaScript to Pull that Off

Responsive Design Requires Even More JavaScript

1024px + 1023-768px 767-320px

JavaScript & Other Elements Increase File Size of Webpages

2010 2012 2014 2016

Mobile-Friendly is Gone but will it Soon be Replaced with ‘Slow’?

Mobile-Friendly is Gone but will it Soon be Replaced with ‘Slow’?

Google Wants to Crawl JavaScript …. A Lot Apparently!

Progressive Web Apps are Fast:

• Cached App Shell & Style Instructions• Service Workers Pre-Load & Pre-Render As Needed• New Pageloads are Never Required

Server ServiceWorker

PWA ServiceWorkers Seem Very Similar to the AMP JavaScript

Runtime

PWA ServiceWorker

AMP JS Runtime

=

PWA ServiceWorkers Seem Very Similar to the AMP JavaScript

Runtime

PWA ServiceWorker

AMP JS Runtime

=Require

sHTTPS

HTTPS Mobile

Friendly Website

Service Worker

Web App Manifest

Progressive Web App

=+

Web App Manifest

Web App ManifestApp Titles

App Icons

App Shell

Web App Manifest<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="manifest" href="/manifest.json"/><meta name="robots" content="follow, index" /><link rel="canonical" href="https://website.com/" /><meta name="description" content="This is a great website/><meta name="keywords" content=“keyword, keyword, keyword, keyword, keyword" /></head>

Web App Manifest<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="manifest" href="/manifest.json"/><meta name="robots" content="follow, index" /><link rel="canonical" href="https://website.com/" /><meta name="description" content="This is a great website/><meta name="keywords" content=“keyword, keyword, keyword, keyword, keyword" /></head>

App Shell DevelopmentBrowser Stand Alone Full Screen

HTTPS ONLY

Push Notifications

App Install Banners

Registered Service Worker on websiteWeb App Manifest Includes:

❑Home Screen App Icon - 144x144 png❑Short_Name - w/ Home Screen Icon❑Name - Shell Banner Top❑Start_Url

Visited 2x+ w/ 5min+ Between Visits

Loading the Website Twice Triggers an ‘Add to Home Screen’ Dialogue

PWA Icon is Customizable & Looks Just Like a Native App Icon

While Loading, it Shows a CustomizableSplash Screen

PWA’s Can Open Outside of a Browser Windowin it’s Own Window

Local Phone Cache = App Shell + Viewed Content

Works Offline

PWA ServiceWorker

WAPO.com/PWA/ Demo (Chris Nguyen)

`

-Alex Russell

Progressive Web Apps (PWA’s)

Is Basically Native App Online

Choices About

Address Bar

No InstallRequired

Enables Home Screen

Icon

Offline Content Works

Web Works on All Devices –

Most Browsers

Enables Push

Messaging & Deep Linking

Custom Splash Screen

Adapts to Slow Connections

Fast Because

of Service Workers

Users Apparently Love PWAs

3x More Time Spent on Site

70% Higher Conversion Rate (For those who Add to HomeScreen)

40% Higher Engagement Rate

3x Less Data Necessary to Render the Website

To Get a Progressive Web App Indexed, You Must Work Harder

Indexing Web Apps(Even Non-PWA Dynamic Sites)

HTML Snapshots XML Sitemaps Fetch & RenderHTML5 PushState

Most PWA’s Have Ignored SEO

Most PWA’s Have Ignored SEO

Most PWA’s Have Ignored SEO

Duplicate Title Tags

DuplicateDescription Tags

Un-optimized URLs

Don’t Let Fancy Dev Kill Your SEO!

Resources to Make Your Site a PWA:1. App Manifest Wizard:

https://brucelawson.github.io/manifest/2. App Manifest Validator:

https://manifest-validator.appspot.com/ 3. Service Worker Toolbox:

https://github.com/GoogleChrome/sw-toolbox 4. Service Worker Instructions:

http://deanhume.com/home/blogpost/getting-started-with-the-service-worker-toolbox/10134

Native

App

VS

NATIVE APP INDEXING

Native

App

VS

NATIVE APP INDEXING

App Screens are Indexed Like Web Pages

Indexing Entry Points in an AppNativ

e

App& =

Web Page or URLApp Screen or URI

Fast & Works Offline

Low Reach & High Commitment & Acquisition Cost

High Reach & Low Commitment & Acquisition Cost

Slow & Does Not Work Offline

Native

App

Mobile Web Reach is 2.5x App Reach (Based on Unique Visitors Per Month)

Apps Mobile Web

8.9

3.3

Mobile Web Reach is 2.5x App Reach (Based on Unique Visitors Per Month)

Apps Mobile Web

8.9

3.3$$$$

US Time Spent in App VS Web

Mobile Web14%

Apps 86%

Top 3 Apps

80%

FacebookYouTubeFacebook Messenger

US Time Spent in App VS Web

Mobile Web14%

Apps 86%

A Couple Other Apps

20%

Top 3 Apps

80%

FacebookYouTubeFacebook Messenger

US Time Spent in App VS Web

Mobile Web14%

Apps 86%

A Couple Other Apps

20%

Top 3 Apps

80%66% of All Digital

Purchases Happen Here

FacebookYouTubeFacebook Messenger

US Time Spent in App VS Web

Mobile Web14%

Apps 86%

A Couple Other Apps

20%

Top 3 Apps

80%66% of All Digital

Purchases Happen Here

FacebookYouTubeFacebook Messenger$$$

$

How Do You Index Apps?Universal Links Digital Asset Links

HTTP/HTTPS App Scheme

Apple-App-Site-Association File

HTTP/HTTPS App Scheme Asset Links

File

Association Files are Hosted on the Corresponding WebsiteiOS AppsREQUIRED/Apple-App-Site-Association/

Android AppsOPTIONAL

/AssetLinks.JSON/

Hosted at: https://website.com/.well-known ORhttps://website.com/ ORhttp://website.com/.well-know/ (Android Only) ORhttp://website.com/ (Android Only)

App Indexing Has Benefits

App Install Buttons in SERPS & Auto Complete

Association Files are Hosted on the Corresponding WebsiteiOS AppsREQUIRED/Apple-App-Site-Association/

Android AppsOPTIONAL

/AssetLinks.JSON/

Hosted at: https://website.com/.well-known ORhttps://website.com/ ORhttp://website.com/.well-known/ (Android Only) ORhttp://website.com/ (Android Only)

Must Be

Canonical

!

Apple-App-Site-Association File"applinks": { "apps": [], "details": [ { "appID": “SAMPLE-APP.com.host.location", “pathprefix”: ["/blog/*]

"paths": [ "/news/story/", "/news/video/2015/*"] }, { "appID": “DIFFERENT-APP.com.host.location", "paths": [ "*" ] } ] }}

"relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "web", "site": "https://host.sampleapp.com"},{

"relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": “com.host.sampleapp", "sha256_cert_fingerprints": ["10:39:38:EE:45:37:E5:9E:8E:E7:92:F6:54:50:4F:B8:34:6F:C6:B3:46:D0:BB:C4:41:5F:C3:39:FC:FC:8E:C1"] }

}]

Asset Links File

Apple-App-Site-Association File"applinks": { "apps": [], "details": [ { "appID": “SAMPLE-APP.com.host.location", “pathprefix”: ["/blog/*]

"paths": [ "/news/story/", "/news/video/2015/*"] }, { "appID": “DIFFERENT-APP.com.host.location", "paths": [ "*" ] } ] }}

"relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "web", "site": "https://host.sampleapp.com"},{

"relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": “com.host.sampleapp", "sha256_cert_fingerprints": ["10:39:38:EE:45:37:E5:9E:8E:E7:92:F6:54:50:4F:B8:34:6F:C6:B3:46:D0:BB:C4:41:5F:C3:39:FC:FC:8E:C1"] }

}]

Asset Links File

Must be Exactly the Same as Resolving Web URL

(Canonical – no 301 Redirects!)

Native

App

VS

CURRENT PROBLEMS WITH APP INDEXING

The ‘Three Platform’ Problem

3xTeam Politics

3xTime

3xMone

y

Silos of Communication on a Team

DEV SEO QA DBA

Team

Team

Team

Language& Vocab

Language& Vocab

Language& Vocab

Native

App

VS

FIREBASE APP INDEXING

Google Believes Firebase is the Answer

Most SEO’s Don’t Really Get It!

It Gives Entry-points & End-points in Apps

+ =

PWA Website Android InstantApps

AMP Web

Pages

Crawling is Hard!Google indexes these using lists of entry locations that are either generated from Rel=Alternate Tags + Sitemaps, Site Association Files or API Submissions.

NativeApp

Indexing

Firebase Cloud Hosting = Content API Directly in Google

Firebase Cloud Hosting = Content API Directly in Google

Firebase Generates Dynamic Links Websites that Enable Everything

Dynamic Links

Android App

iOS App

PWA Website

Centralized Capability Based on Dynamic Links Website:• Linking• Advertising• Messaging• Tracking &

Attribution• Remote Config

PS: This appears to be just an outgrowth of the old gog.le link shorter which also did Dynamic Linking

Expert Speculation

Google’s Webmaster Interaction & Potential Rankings Boosts

App Indexingw/Web Parity

MobileFriendly

Universal/DynamicApp Links

App IndexingAPI

FirebaseIntegration

HTTPS

*Expert Speculation

Android /iOS App

Progressive Web App

Firebase App + Rankings Boost

Firebase Dynamic Linking Expands the Potential Reach of Any One App iOS, Android or Web

*Expert Speculation

Google Database Hosting

Better Indexing of All

Apps

*Expert Speculation

Dynamic Linksare Key

EX:http://app_code. app.goo.gl/[google-unique-identifier]

Google Database Hosting

Better Indexing of All

Apps

iOS & Android Instant Apps

*Expert Speculation

Dynamic Linksare Key

EX:http://app_code. app.goo.gl/[google-unique-identifier]

Google Database Hosting

Better Indexing of All

Apps

iOS & Android Instant Apps

*Expert Speculation

Dynamic Linksare Key

EX:http://app_code. app.goo.gl/[google-unique-identifier]

Google Database Hosting

Better Indexing of All

Apps

iOS & Android Instant Apps

No Need

for App Stores

*Expert Speculation

Dynamic Linksare Key

EX:http://app_code. app.goo.gl/[google-unique-identifier]

HTTPS Rankings

Boost

PWA with GWS

Caching in Firebase

App Indexing & Dynamic

Links

Non-Parity App

Indexing

App Packs & No Need for App Stores

Better Monitizing of Android

& iOS

Why Google Needs You to Use Firebase

*Expert Speculation

Non-Parity App Indexing

HTTPS Rankings

Boost

AMP w/GWS & PWA w/ GWS in

Firebase

App Indexing & Dynamic

Links

Non-Parity App

Indexing

App Packs & No Need for App Stores

Better Monitizing of Android

& iOS

Why Google Needs You to Use Firebase

*Expert Speculation

Non-Parity App Indexing

HTTPS Rankings

Boost

AMP w/GWS & PWA w/ GWS in

Firebase

App Indexing & Dynamic Links

(GWS - Firebase)

Non-Parity App

Indexing

App Packs & No Need for App Stores

Better Monitizing of Android

& iOS

Why Google Needs You to Use Firebase

*Expert Speculation

Non-Parity App Indexing

HTTPS Rankings

Boost

AMP w/GWS & PWA w/ GWS in

Firebase

App Indexing & Dynamic Links

(GWS - Firebase)

Non-Parity App

Indexing

App Packs & No Need for App Stores

Better Monitizing of Android

& iOS

Why Google Needs You to Use Firebase

*Expert Speculation

Non-Parity App Indexing

(GWS – Firebase)

Why Google Needs You to Use Firebase

HTTPS Rankings

Boost

AMP w/GWS & PWA w/ GWS in

Firebase

App Indexing & Dynamic Links

(GWS - Firebase)

Non-Parity App Indexing

(GWS – Firebase)

App Packs & No Need for App Stores

Better Monitizing of Android

& iOS

*Expert Speculation

HTTPS Rankings

Boost

AMP w/GWS & PWA w/ GWS in

Firebase

App Indexing & Dynamic Links

(GWS - Firebase)

Non-Parity App Indexing

(GWS – Firebase)

App Packs & No Need for App Stores

Better Monetizing of Android

& iOS

Why Google Needs You to Use Firebase

*Expert Speculation

“Will PWA’s Get App Pack Rankings?”

Google’s Webmaster Communication

Native & Instant Apps

AMP & HTTPS

PWA & Web

*Expert Speculation

Mariya Moeva

Gary Illyes

John Mueller

Firebase is Still a bit Unknown & Scary

Native

App

VS

FIREBASE APP INDEXING

PROBLEMS

“…Google may have some work ahead of it convincing developers to depend even more on its technologies. In February, Facebook shut down its mobile back-end as a service, Parse, leaving many developers scrambling.”

Or…Could Google Just TakeYour Info and Turn it Against You?

Unclear Value Prop

Shared Cloud

Database

Shared Reporting & Mgmt

Shared Messaging

& Ads

Difficult to SetupWeb Android iOS

HTTP/HTTPS Links

HTTP/HTTPS Links(Dynamic Links)

HTTP/HTTPS Links(Universal Links)

Add App Manifest & ServiceWorker

Add Dependencies to the Build Gradel & Setup Fingerprint Certificates

Add Firebase Podfiles to the Manifest

Add to Firebase Project

Add to Firebase Project

Add to Firebase Project

Bad DocumentationWeb Android iOS

* Documentation almost always assumes that you are doing only one thing at a time.

So Should You Use it?

So Should You Use it?

…Maybe.

Firebase Makes All Indexing More Valuable

Firebase Unifies Digital Marketing & Measurement

Acquisition

Backend/Hosting

SEO/Dynamic Links

PPC/AdMob

Engagement

Messaging

Remote Config

Custom Audiences

Measurement

GA-Like Unified Analytics

Export/API to Big Data Processing

Options

2nd Biggest App Indexing Benefit = Tracking

CMS

CDN

CRMFirebaseCloudHosting

Remote-Config User-FocusedRemote Config

Benefits of Cloud Hosting

Cross-DeviceAttribution

Better AdManagement

Real-TimeDatabase

Easy LinkSharing

Unified Push Messaging

UnifiedTracking & Analytics

RemoteConfig

CINDY KRUM

MobileMoxie @Suzzicks

top related