Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
-
Upload
mobilemoxie -
Category
Mobile
-
view
1.019 -
download
1
Transcript of Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
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