SlideShare a Scribd company logo
THE EXPANDING
NATURE OF SEO
3/21/2016
MICAH FISHER-KIRSHNER
WHO AM I?
SEO AdvisorshipsSEO Experience
+MicahFisher-Kirshner / @micahfk
THE VILLAGE
An expanding nature of SEO requires
an understanding of the past
THE VILLAGE: BASIC WEB RESULTS
FLAT EARTH
We learned to recognize other
optimizing tribes
The Expanding Nature of SEO (MarTech 2016)
SPHERICAL EARTH AT CENTER OF EVERYTHING
We saw the need for testing and
understanding of our environment
SPHERICAL EARTH: CAFFEINE
CENTRAL SUN
Not all of us accepted the changes
Google developed
CENTRAL SUN: PANDA
LUDDITES APPEAR!
• Galileo attacked
LUDDITES: THINKING OUTSIDE THE BOX
Those that recognized the central
change saw branding’s importance
GALACTIC UNIVERSE
Nonetheless, we realized life is so
much more than the desktop screen
GALACTIC UNIVERSE: MOBILEGEDDON
Today’s universe of optimization
encompasses so much more
AMP
<!doctype html>
<!doctype html>
<html ⚡>
or
<html amp>
<!doctype html>
<html ⚡>
<head>
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical"
href=“https://www.example.com
/regular-HTML-version/">
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport"
content="width=device-width,minimum-
scale=1,initial-scale-1">
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal
both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start
8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-
webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-
boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-
animation:none;animation:none}</style></noscript>
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s
steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-
o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async
src="https://cdn.ampproject.org/
v0.js"></script>
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s
steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-
o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s
steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-
o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>Hello World!</body>
</html>
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s
steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-
o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<style amp-custom>
body {
background-color: white;
}
amp-img {
background-color: gray;
}
</style>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>Hello World!</body>
</html>
You can style with only a single
embedded stylesheet
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s
steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-
o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<amp-img src="welcome.jpg" alt="Welcome" height="400" width="800">
</amp-img>
</body>
</html>
Images, videos, audios, and iframes add
“amp-” to the tags
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s
steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-
o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>Hello World!</body>
</html>
Prohibited Tags
applet
base
embed
form
frame
frameset
http-equiv
object
param
script*
[input elements*]
<!doctype html>
<html ⚡>
<head>
<meta charset=“utf-8”>
<link rel="canonical" href=“https://www.example.com/regular-HTML-version/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1">
<script id="amp-access" type="application/json">
{
"authorization": "<% host %>/amp-access/api/amp-
authorization.json?rid=READER_ID&url=CANONICAL_URL&ref=DOCUMENT_REFERRER&_=RANDOM",
"pingback": "<% host %>/amp-access/api/amp-pingback?rid=READER_ID&ref=DOCUMENT_REFERRER&url=CANONICAL_URL",
"login": "<% host %>/amp-access/login/?rid=READER_ID&url=CANONICAL_URL"
}
</script>
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s
steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1
normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -
amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-
start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-
animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async custom-element="amp-access" src="https://cdn.ampproject.org/v0/amp-access-0.1.js"></script>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<section AMP Access="access AND subscriber" amp-access-hide>
Thanks for being a subscriber!
</section>
</body>
</html>
Paywall Setup
1. Implement AMP
Access callbacks in
publisher backend
2. Configure AMP Access
endpoints
3. Include AMP Access
component
4. Define which parts are
visible to subscribers
and non-subscribers
Be sure to validate by adding
#development=1 at the end of the URL
Learn More
The AMP Project
Technical Introduction
Github Code
AMP Blog
AMP Videos
Answers
Large variety, generally follows a theme
Already rank on the first page
(generally position 5 or higher)
Clear and concise answer to the question
Well-structured code: headers, lists
(but does NOT require Schema)
Domain relevance and authority
Always include a relevant picture!
Apple Search
Installed
Great CTR
Title and keywords
Overall engagement
Personalized app
engagement
Low engagement
Keyword spamming
Bounces
Interstitials
Low ratings & reviews
Poor reviews
With Recovery Search provide accurate
location data
Apple replaced Google as the default web
search engine
Anchor text relevance
(watch out on Google)
Great click through rates
Social signals with Facebook and Twitter
Very clean XML Sitemaps
App Indexing
Enable your app to handle deep links via
HTTP URLs (new with iOS 9)
Add the App Indexing API/SDK
<html>
<head>
…
…
</head>
<body>Hello World!</body>
</html>
Add code to your corresponding web pages
referencing the deep links: Rel Alternate
<link rel=“alternate” href=android-
app://com.example.android/http/example.com
/gizmo” />
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage", "@id":
"http://example.com/gizmos",
"potentialAction":
{
}
}
</script>
Add code to your corresponding web pages
referencing the deep links: ViewAction
"@type": "ViewAction",
"target": "android- app://com.example.android/http/example.com/
gizmos" } } </script>
<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitem ap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://example.com/gizmos</loc>
</url>
…
</urlset>
Add code to your corresponding web pages
referencing the deep links: XML Sitemap
<xhtml:link rel="alternate" href="android-
app://com.example.android/example/gizmos" />
Allow Google to crawl requested app URLs
Learn More
Android
Apple
Installed
Proper implementation
Title and description
Content mismatch
Interstitials
Title
Descriptions
App Indexing
ASO
Rating volume
Star ratings
Review text
Links
More on App Packs
http://searchengineland.com/app-indexing-new-frontier-seo-app-packs-app-store-search-242319
Knowledge Graph
Connecting the world’s knowledge
2 graph styles
4 data citations
No Wiki page? Stop now
Verify your Google Plus page
https://support.google.com/business/answer/2911778
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Organization",
"name" : "Your Organization Name",
"url" : "http://www.your-site.com",
}
</script>
"sameAs" : [
"http://www.facebook.com/your-profile",
"http://www.twitter.com/yourProfile",
"http://plus.google.com/your_profile"
]
Add code to connect your social properties via
sameAs: JSON-LD
<span itemscope itemtype="http://schema.org/Organization">
<link itemprop="url" href="http://www.your-company-site.com">
</span>
<a itemprop="sameAs" href="http://www.facebook.com/your-
company">FB</a>
<a itemprop="sameAs"
href="http://www.twitter.com/YourCompany">Twitter</a>
Add code to connect your social properties via
sameAs: Microdata
Consider Noting
Event listings
Store hours
Location and contact info
https://developers.google.com/structured-
data/customize/overview
Follow other Wikidata entry formats
Use notable citations for references
Other Properties
Headquarters location
Official website
Image / Logo
Social media sites
Industry
Founders / Start Date
Subsidiaries / Employees
Double-check your competitors
Edit directly as an official representative
HTTPS
Tiny call-out and a tiny ranking boost
Get a robust security certificate via a
certificate authority
Hilton Hotel
Choose a high security level (2048 bits)
Redirect users and search engines to
HTTPS with a 301 redirect
Enable HSTS with a supporting web server
Learn More
Documentation
URL information
Additional tips
No exceptions: Everything must be HTTPS
https://www.example.com/old-original-url/
http://www.example.com/redirect-URL/
http://www.example.com/final-URL/
https://www.example.com/final-URL/
Each hop is a 15% link value loss
301
canonical
A B
XML Sitemaps need non-redirecting URLs
Prepare for data problems
https://www.example.com/
MORE ON THE HORIZON
• Graphic summary of the How Tos, with something to represent “on the horizon”
SEO’s value continues to be uncovered
The Expanding Nature of SEO (MarTech 2016)
THE MULTIVERSE
Prepare for the next fundamental
change in the SEO universe
The Expanding Nature of SEO (MarTech 2016)
100 Minutes
Driving a Day
The Expanding Nature of SEO (MarTech 2016)
END POINT: SEO AS A FOUNDATION
Build the SEO foundation for each
observed new trend
@micahfk ; +MicahFisher-Kirshner

More Related Content

The Expanding Nature of SEO (MarTech 2016)

  • 1. THE EXPANDING NATURE OF SEO 3/21/2016 MICAH FISHER-KIRSHNER
  • 2. WHO AM I? SEO AdvisorshipsSEO Experience +MicahFisher-Kirshner / @micahfk
  • 3. THE VILLAGE An expanding nature of SEO requires an understanding of the past
  • 4. THE VILLAGE: BASIC WEB RESULTS
  • 5. FLAT EARTH We learned to recognize other optimizing tribes
  • 7. SPHERICAL EARTH AT CENTER OF EVERYTHING We saw the need for testing and understanding of our environment
  • 9. CENTRAL SUN Not all of us accepted the changes Google developed
  • 12. LUDDITES: THINKING OUTSIDE THE BOX Those that recognized the central change saw branding’s importance
  • 13. GALACTIC UNIVERSE Nonetheless, we realized life is so much more than the desktop screen
  • 15. Today’s universe of optimization encompasses so much more
  • 16. AMP
  • 21. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com /regular-HTML-version/">
  • 22. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum- scale=1,initial-scale-1">
  • 23. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@- webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp- boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms- animation:none;animation:none}</style></noscript>
  • 24. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@- o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <script async src="https://cdn.ampproject.org/ v0.js"></script>
  • 25. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@- o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body>
  • 26. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@- o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body>Hello World!</body> </html>
  • 27. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@- o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <style amp-custom> body { background-color: white; } amp-img { background-color: gray; } </style> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body>Hello World!</body> </html> You can style with only a single embedded stylesheet
  • 28. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@- o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body> <amp-img src="welcome.jpg" alt="Welcome" height="400" width="800"> </amp-img> </body> </html> Images, videos, audios, and iframes add “amp-” to the tags
  • 29. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@- o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body>Hello World!</body> </html> Prohibited Tags applet base embed form frame frameset http-equiv object param script* [input elements*]
  • 30. <!doctype html> <html ⚡> <head> <meta charset=“utf-8”> <link rel="canonical" href=“https://www.example.com/regular-HTML-version/"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale-1"> <script id="amp-access" type="application/json"> { "authorization": "<% host %>/amp-access/api/amp- authorization.json?rid=READER_ID&url=CANONICAL_URL&ref=DOCUMENT_REFERRER&_=RANDOM", "pingback": "<% host %>/amp-access/api/amp-pingback?rid=READER_ID&ref=DOCUMENT_REFERRER&url=CANONICAL_URL", "login": "<% host %>/amp-access/login/?rid=READER_ID&url=CANONICAL_URL" } </script> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes - amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp- start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz- animation:none;-ms-animation:none;animation:none}</style></noscript> <script async custom-element="amp-access" src="https://cdn.ampproject.org/v0/amp-access-0.1.js"></script> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body> <section AMP Access="access AND subscriber" amp-access-hide> Thanks for being a subscriber! </section> </body> </html> Paywall Setup 1. Implement AMP Access callbacks in publisher backend 2. Configure AMP Access endpoints 3. Include AMP Access component 4. Define which parts are visible to subscribers and non-subscribers
  • 31. Be sure to validate by adding #development=1 at the end of the URL
  • 32. Learn More The AMP Project Technical Introduction Github Code AMP Blog AMP Videos
  • 34. Large variety, generally follows a theme
  • 35. Already rank on the first page (generally position 5 or higher)
  • 36. Clear and concise answer to the question
  • 37. Well-structured code: headers, lists (but does NOT require Schema)
  • 38. Domain relevance and authority
  • 39. Always include a relevant picture!
  • 41. Installed Great CTR Title and keywords Overall engagement Personalized app engagement Low engagement Keyword spamming Bounces Interstitials Low ratings & reviews Poor reviews
  • 42. With Recovery Search provide accurate location data
  • 43. Apple replaced Google as the default web search engine
  • 46. Social signals with Facebook and Twitter
  • 47. Very clean XML Sitemaps
  • 49. Enable your app to handle deep links via HTTP URLs (new with iOS 9)
  • 50. Add the App Indexing API/SDK
  • 51. <html> <head> … … </head> <body>Hello World!</body> </html> Add code to your corresponding web pages referencing the deep links: Rel Alternate <link rel=“alternate” href=android- app://com.example.android/http/example.com /gizmo” />
  • 52. <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebPage", "@id": "http://example.com/gizmos", "potentialAction": { } } </script> Add code to your corresponding web pages referencing the deep links: ViewAction "@type": "ViewAction", "target": "android- app://com.example.android/http/example.com/ gizmos" } } </script>
  • 53. <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitem ap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url> <loc>http://example.com/gizmos</loc> </url> … </urlset> Add code to your corresponding web pages referencing the deep links: XML Sitemap <xhtml:link rel="alternate" href="android- app://com.example.android/example/gizmos" />
  • 54. Allow Google to crawl requested app URLs
  • 56. Installed Proper implementation Title and description Content mismatch Interstitials
  • 57. Title Descriptions App Indexing ASO Rating volume Star ratings Review text Links More on App Packs http://searchengineland.com/app-indexing-new-frontier-seo-app-packs-app-store-search-242319
  • 62. No Wiki page? Stop now
  • 63. Verify your Google Plus page https://support.google.com/business/answer/2911778
  • 64. <script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "Organization", "name" : "Your Organization Name", "url" : "http://www.your-site.com", } </script> "sameAs" : [ "http://www.facebook.com/your-profile", "http://www.twitter.com/yourProfile", "http://plus.google.com/your_profile" ] Add code to connect your social properties via sameAs: JSON-LD
  • 65. <span itemscope itemtype="http://schema.org/Organization"> <link itemprop="url" href="http://www.your-company-site.com"> </span> <a itemprop="sameAs" href="http://www.facebook.com/your- company">FB</a> <a itemprop="sameAs" href="http://www.twitter.com/YourCompany">Twitter</a> Add code to connect your social properties via sameAs: Microdata
  • 66. Consider Noting Event listings Store hours Location and contact info https://developers.google.com/structured- data/customize/overview
  • 67. Follow other Wikidata entry formats
  • 68. Use notable citations for references
  • 69. Other Properties Headquarters location Official website Image / Logo Social media sites Industry Founders / Start Date Subsidiaries / Employees
  • 71. Edit directly as an official representative
  • 72. HTTPS
  • 73. Tiny call-out and a tiny ranking boost
  • 74. Get a robust security certificate via a certificate authority Hilton Hotel
  • 75. Choose a high security level (2048 bits)
  • 76. Redirect users and search engines to HTTPS with a 301 redirect
  • 77. Enable HSTS with a supporting web server
  • 79. No exceptions: Everything must be HTTPS
  • 82. XML Sitemaps need non-redirecting URLs
  • 83. Prepare for data problems
  • 85. MORE ON THE HORIZON • Graphic summary of the How Tos, with something to represent “on the horizon” SEO’s value continues to be uncovered
  • 87. THE MULTIVERSE Prepare for the next fundamental change in the SEO universe
  • 91. END POINT: SEO AS A FOUNDATION Build the SEO foundation for each observed new trend @micahfk ; +MicahFisher-Kirshner

Editor's Notes

  1. Run it in Chrome
  2. For deeper dives, look to these reference points
  3. One of many variations
  4. Bulleted lists are great
  5. Remember Google’s goal: Star Trek’s answer engine
  6. For companies, there are two kinds
  7. Yes, freebase is technically a fifth, but that’s deprecating
  8. Wikipedia, .orgs, .govs, etc
  9. To make sure you haven’t missed anything
  10. Make sure you’re using your owner’s email address connected to G+
  11. Reminder
  12. HTTP to HTTPS now doesn’t lose link value says Google