Date post: | 07-Jan-2017 |
Category: |
Marketing |
Upload: | martech-conference |
View: | 1,928 times |
Download: | 1 times |
THE EXPANDING NATURE OF SEO
3/21/2016
MICAH FISHER-‐KIRSHNER
WHO AM I?
SEO Advisorships SEO Experience
+MicahFisher-‐Kirshner / @micahE
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 opNmizing tribes
SPHERICAL EARTH AT CENTER OF EVERYTHING
We saw the need for tesNng 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 aRacked
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 opNmizaNon encompasses so much more
AMP
<!doctype html>
<!doctype html>
<html ⚡> or
<html amp>
<!doctype html>
<html ⚡>
<head>
<!doctype html>
<html ⚡>
<head>
<meta charset=“u8-‐8”>
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hAps://
www.example.com/regular-‐HTML-‐version/">
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐
scale=1,iniNal-‐scale-‐1">
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<script async src="hAps://cdn.ampproject.org/v0.js"></
script>
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<script async src="hRps://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<script async src="hRps://cdn.ampproject.org/v0.js"></script>
</head>
<body>Hello World!</body>
</html>
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<style amp-‐custom>
body {
background-‐color: white;
}
amp-‐img {
background-‐color: gray;
}
</style>
<script async src="hRps://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=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<script async src="hRps://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=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<style amp-‐boilerplate>body{-‐webkit-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐
animaNon:none;animaNon:none}</style></noscript>
<script async src="hRps://cdn.ampproject.org/v0.js"></script>
</head>
<body>Hello World!</body>
</html>
Prohibited Tags applet base embed form frame
frameset hRp-‐equiv object param script*
[input elements*]
<!doctype html>
<html ⚡>
<head>
<meta charset=“u]-‐8”>
<link rel="canonical" href=“hRps://www.example.com/regular-‐HTML-‐version/">
<meta name="viewport" content="width=device-‐width,minimum-‐scale=1,iniNal-‐scale-‐1">
<script id="amp-‐access" type="applicaNon/json">
{
"authorizaNon": "<% host %>/amp-‐access/api/amp-‐authorizaNon.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-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;-‐moz-‐animaNon:-‐amp-‐start 8s
steps(1,end) 0s 1 normal both;-‐ms-‐animaNon:-‐amp-‐start 8s steps(1,end) 0s 1 normal both;animaNon:-‐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-‐animaNon:none;-‐moz-‐animaNon:none;-‐ms-‐animaNon:none;animaNon:none}</
style></noscript>
<script async custom-‐element="amp-‐access" src="hAps://cdn.ampproject.org/v0/amp-‐access-‐0.1.js"></script>
<script async src="hRps://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<secNon AMP Access="access AND subscriber" amp-‐access-‐hide>
Thanks for being a subscriber!
</secNon>
</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 IntroducNon
Github Code
AMP Blog
AMP Videos
Answers
Large variety, generally follows a theme
Already rank on the first page (generally posiNon 5 or higher)
Clear and concise answer to the quesNon
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
IntersNNals
Low raNngs & reviews
Poor reviews
With Recovery Search provide accurate locaNon 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 TwiRer
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/hAp/example.com/
gizmo” />
<script type="applicaNon/ld+json">
{
"@context": "hRp://schema.org",
"@type": "WebPage", "@id": "hRp://
example.com/gizmos",
"potenNalAcNon":
{
}
}
</script>
Add code to your corresponding web pages referencing the deep links: ViewAcNon
"@type": "ViewAcNon",
"target": "android-‐ app://com.example.android/hAp/example.com/
gizmos" } } </script>
<?xml version="1.0" encoding="UTF-‐8" ?>
<urlset xmlns="hRp://www.sitemaps.org/schemas/sitem ap/0.9"
xmlns:xhtml="hRp://www.w3.org/1999/xhtml">
<url>
<loc>hRp://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 implementaNon
Title and descripNon
Content mismatch
IntersNNals
Title
DescripNons
App Indexing
ASO
RaNng volume
Star raNngs
Review text
Links
More on App Packs hRp://searchengineland.com/app-‐indexing-‐new-‐fronNer-‐seo-‐app-‐packs-‐app-‐store-‐search-‐242319
Knowledge Graph
ConnecNng the world’s knowledge
2 graph styles
4 data citaNons
No Wiki page? Stop now
Verify your Google Plus page
hAps://support.google.com/business/answer/2911778
<script type="applicaNon/ld+json">
{
"@context" : "hRp://schema.org",
"@type" : "OrganizaNon",
"name" : "Your OrganizaNon Name",
"url" : "hRp://www.your-‐site.com",
}
</script>
"sameAs" : [ "hAp://www.facebook.com/your-‐profile", "hAp://www.twiAer.com/yourProfile", "hAp://plus.google.com/your_profile" ]
Add code to connect your social properNes via sameAs: JSON-‐LD
<span itemscope itemtype="hRp://schema.org/OrganizaNon">
<link itemprop="url" href="hRp://www.your-‐company-‐site.com">
</span>
<a itemprop="sameAs" href="hAp://www.facebook.com/your-‐company">FB</a> <a itemprop="sameAs" href="hAp://www.twiAer.com/YourCompany">TwiAer</a>
Add code to connect your social properNes via sameAs: Microdata
Consider NoNng
Event lisNngs
Store hours
LocaNon and contact info
hRps://developers.google.com/structured-‐data/customize/overview
Follow other Wikidata entry formats
Use notable citaNons for references
Other ProperNes
Headquarters locaNon
Official website
Image / Logo
Social media sites
Industry
Founders / Start Date
Subsidiaries / Employees
Double-‐check your compeNtors
Edit directly as an official representaNve
HTTPS
Tiny call-‐out and a Nny ranking boost
Get a robust security cerNficate via a cerNficate 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 supporNng web server
Learn More
DocumentaNon
URL informaNon
AddiNonal Nps
No excepNons: Everything must be HTTPS
hAps://www.example.com/old-‐original-‐url/ hAp://www.example.com/redirect-‐URL/
hAp://www.example.com/final-‐URL/
hAps://www.example.com/final-‐URL/
Each hop is a 15% link value loss
301
canonical
A B
XML Sitemaps need non-‐redirecNng URLs
Prepare for data problems
hAps://www.example.com/
MORE ON THE HORIZON
• Graphic summary of the How Tos, with something to represent “on the horizon”
SEO’s value conNnues to be uncovered
THE MULTIVERSE
Prepare for the next fundamental change in the SEO universe
100 Minutes Driving a Day
END POINT: SEO AS A FOUNDATION
Build the SEO foundaNon for each observed new trend
@micahE ; +MicahFisher-‐Kirshner