supercharging your organic ctr

Post on 14-Apr-2017

1.525 Views

Category:

Data & Analytics

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Slides: bit.ly/supercharge-ctr

Supercharging your

Organic CTR

Welcome Phil Pearce SEO & GA Analyst

www.linkedin.com/in/philpearce

Web Analytics

Exchange

mentor

750 GA

questions answered

Tracking

protection

group

Agenda

1. What is the new mark-up (JSON-LD)

2. Why should I enabling this (i.e. benefits)?

– Examples

3. Which method should I use to enable?

– WP plugins vs Google Tag Manger injection

4. How do I test & validate it?

– Single page tests

– Sitewide tests

Questions

bit.ly/wawquestions

I will answer at the end

Lets talk about...

Skiing Ma

Schema.org (precursor to JSON-LD)

Lets talk about...

Microdata & RDFa (Original Rich snippets)

<div itemscope itemtype="http://schema.org/Product">

<span itemprop="name">Kenmore White 17" Microwave</span>

<img itemprop="image" src="kenmore-microwave-17in.jpg" alt='Kenmore 17" Microwave' />

<div itemprop="aggregateRating"

itemscope itemtype="http://schema.org/AggregateRating">

Rated <span itemprop="ratingValue">3.5</span>/5

based on <span itemprop="reviewCount">11</span> customer reviews

</div>

<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">

<!--price is 1000, a number, with locale-specific thousands separator

and decimal mark, and the $ character is marked up with the

machine-readable code "USD" -->

<span itemprop="priceCurrency" content="USD">$</span><span

itemprop="price" content="1000.00">1,000.00</span>

<link itemprop="availability" href="http://schema.org/InStock" />In stock

</div>

Product description:

<span itemprop="description">0.7 cubic feet countertop microwave.

Has six preset cooking categories and convenience features like

Add-A-Minute and Child Lock.</span>

Customer reviews:

<div itemprop="review" itemscope itemtype="http://schema.org/Review">

<span itemprop="name">Not a happy camper</span> -

by <span itemprop="author">Ellie</span>,

<meta itemprop="datePublished" content="2011-04-01">April 1, 2011

<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">

<meta itemprop="worstRating" content = "1">

<span itemprop="ratingValue">1</span>/

<span itemprop="bestRating">5</span>stars

</div>

<span itemprop="description">The lamp burned out and now I have to replace

it. </span>

</div>

<div itemprop="review" itemscope itemtype="http://schema.org/Review">

<span itemprop="name">Value purchase</span> -

by <span itemprop="author">Lucas</span>,

<meta itemprop="datePublished" content="2011-03-25">March 25, 2011

<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">

<meta itemprop="worstRating" content = "1"/>

<span itemprop="ratingValue">4</span>/

<span itemprop="bestRating">5</span>stars

</div>

<span itemprop="description">Great microwave for the price. It is small and

fits in my apartment.</span>

</div>

...

</div>

Pictures & Differentiation = Increased Organic CTR!

Microdata (Original Rich snippets)

<div itemscope itemtype="http://schema.org/Product">

<span itemprop="name">Kenmore White 17" Microwave</span>

<img itemprop="image" src="kenmore-microwave-17in.jpg" alt='Kenmore 17" Microwave' />

<div itemprop="aggregateRating"

itemscope itemtype="http://schema.org/AggregateRating">

Rated <span itemprop="ratingValue">3.5</span>/5

based on <span itemprop="reviewCount">11</span> customer reviews

</div>

<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">

<!--price is 1000, a number, with locale-specific thousands separator

and decimal mark, and the $ character is marked up with the

machine-readable code "USD" -->

<span itemprop="priceCurrency" content="USD">$</span><span

itemprop="price" content="1000.00">1,000.00</span>

<link itemprop="availability" href="http://schema.org/InStock" />In stock

</div>

Product description:

<span itemprop="description">0.7 cubic feet countertop microwave.

Has six preset cooking categories and convenience features like

Add-A-Minute and Child Lock.</span>

Customer reviews:

<div itemprop="review" itemscope itemtype="http://schema.org/Review">

<span itemprop="name">Not a happy camper</span> -

by <span itemprop="author">Ellie</span>,

<meta itemprop="datePublished" content="2011-04-01">April 1, 2011

<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">

<meta itemprop="worstRating" content = "1">

<span itemprop="ratingValue">1</span>/

<span itemprop="bestRating">5</span>stars

</div>

<span itemprop="description">The lamp burned out and now I have to replace

it. </span>

</div>

<div itemprop="review" itemscope itemtype="http://schema.org/Review">

<span itemprop="name">Value purchase</span> -

by <span itemprop="author">Lucas</span>,

<meta itemprop="datePublished" content="2011-03-25">March 25, 2011

<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">

<meta itemprop="worstRating" content = "1"/>

<span itemprop="ratingValue">4</span>/

<span itemprop="bestRating">5</span>stars

</div>

<span itemprop="description">Great microwave for the price. It is small and

fits in my apartment.</span>

</div>

...

</div>

Better organic CTR!

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "Product",

"aggregateRating": {

"@type": "AggregateRating",

"ratingValue": "3.5",

"reviewCount": "11"

},

"description": "0.7 cubic feet countertop microwave. Has six preset cooking categories and convenience features like

Add-A-Minute and Child Lock.",

"name": "Kenmore White 17\" Microwave",

"image": "kenmore-microwave-17in.jpg",

"offers": {

"@type": "Offer",

"availability": "http://schema.org/InStock",

"price": "55.00",

"priceCurrency": "USD"

},

"review": [

{

"@type": "Review",

"author": "Ellie",

"datePublished": "2011-04-01",

"description": "The lamp burned out and now I have to replace it.",

"name": "Not a happy camper",

"reviewRating": {

"@type": "Rating",

"bestRating": "5",

"ratingValue": "1",

"worstRating": "1"

}

},

{

"@type": "Review",

"author": "Lucas",

"datePublished": "2011-03-25",

"description": "Great microwave for the price. It is small and fits in my apartment.",

"name": "Value purchase",

"reviewRating": {

"@type": "Rating",

"bestRating": "5",

"ratingValue": "4",

"worstRating": "1"

}

}

]

}

</script>

Better organic CTR!

And action buttons!

JSON-LD (New Rich snippets)

Skiing Ma with action buttons

JSON-LD

Action buttons = even higher Organic CTR

(especially for logged-in users)

Loggedin as Skiing Ma

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "Restaurant",

"name": "Dave's Vegetarian Pizza",

"url": "http://www.example.com/restaurant-locations/manhattan",

"menu": "http://www.example.com/menu",

"potentialAction": {

"@type": "OrderAction",

"target": {

"@type": "EntryPoint",

"urlTemplate": "https://www.example.com/daves-cafe-new-york"

},

}

"telephone": "+12122459600"

}

</script>

JSON-LD action button example...

Call actions on the right hand side

Super Gran

Super Gran

Potential Action:

Call

Actions in main results

Potential Action: Watch

Monitoring Improvements

Before vs After

You can already calculate existing Organic CTR

using GA sessions / GWT impressions

SEOmoz now report on this for your site vs competitors

JSON-LD reports per vertical

are also available on BuiltWith

http://trends.builtwith.com/docinfo/JSON-LD

Implementing

Planning JSON implantation

Global vs Page specific

Global

1. Brand Logo 2. Phone Number 3. Social Profiles 4. Site Search 5. OpeningHours 6. Address

Page Specific 1. News data 2. Product data 3. Review data 4. Breadcrumbs 5. Music & TV Product data 6. Local restaurants

vs

Implementation

Method summary

GTM Wordpress

CMS agnostic Yes No

Supports server-side No (dataLayer exception)

Yes

InTool JS validation Native n/a

Speed Asynchronous JS Server-side cache

Uneffected by CSS or DOM ID changes

No, will break (dataLayer exception)

Yes

GTM JSON-LD example source code…

JSON script are

downloadable

from here:

login:coolgtmstuff

@gmail.com

pw:philrulesgtm7

Auto config import file: bit.ly/winningthewar6

WARNING: For GTM Select merge (not overwrite)

GTM ProTip: Changing from DataLayer to JSONLD piggybacking...

+

bit.ly/single-tag

GTM DataLayer JSONLD schema

JSONLD schema Mapped to GTM datalayer via JS variables

For Wordpress or Serverside implementation pls add ID to scripts to make it easier to enable GA enhanced ecommerce... <script id="JSONLD-review1">xxx</script>

https://www.analyticspros.com/blog/tag-management/tracking-semantic-seo-with-google-analytics/

bit.ly/single-tag

Practical Examples

Organization – Logo, Social and Telephone number

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "Organization",

"url": "http://yourdomain.com/",

"logo": "http://yourdomain.com/images/logo.png",

"sameAs": [

"http://www.facebook.com/yourProfile",

"http://www.twitter.com/yourProfile",

"http://plus.google.com/yourProfile",

"http://www.linkedin.com/in/yourProfile",

"http://instagram.com/yourProfile"

],

"contactPoint": [{

"@type": "ContactPoint",

"telephone": "+1-401-555-1212",

"contactType": "customer service",

"contactOption": "TollFree",

"areaServed": [

"US",

"CA"

],

"availableLanguage": [

"English",

"French"

]

}]

}

</script> Future Action:

Click

Global

Person

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "Person",

"name": "Barack Obama",

"jobTitle": "President",

"affiliation": "Democratic Party",

"additionalName": "Barack",

"url": "http://www.barackobama.com/",

"sameAs": [

"http://www.facebook.com/yourProfile",

"http://www.twitter.com/yourProfile",

"http://plus.google.com/yourProfile",

"http://www.linkedin.com/in/yourProfile",

"http://instagram.com/yourProfile"

],

"address": {

"@type": "PostalAddress",

"streetAddress": "White house, 1600 Pennsylvania Ave",

"addressLocality": "Northwest",

"addressRegion": "Washington"

}

}

</script>

Future Action: Follow

updates

Global

WebSite – Search box

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "WebSite",

"url": "http://yourdomain.com/",

"potentialAction": {

"@type": "SearchAction",

"target": "http://yourdomain.com/?s={search_term_string}",

"query-input": "required name=search_term_string"

}

}

</script>

Future Action: Search

Global

Breadcrumbs

<!-- developers.google.com/structured-data/breadcrumbs -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "BreadcrumbList",

"itemListElement": [

{

"@type": "ListItem",

"position": 1,

"item": {

"@id": "http://{{Page Hostname}}/{{jsmacro_pathnameLevel1 - no prepending slash}}",

"name": "{{jsmacro_pathnameLevel1 - no prepending slash}}"

}

},{

"@type": "ListItem",

"position": 2,

"item": {

"@id": "http://{{Page Hostname}}{{Page Path}}",

"name": "{{js_document.title}}"

}

}]

}

</script>

Page specific

NewsArticle

<!--http://developers.google.com/search/docs/data-types/articles -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "NewsArticle",

"mainEntityOfPage": {

"@type": "WebPage",

"@id": "http://{{Page Hostname}}/article1"

},

"headline": "Article headline",

"description": "A most wonderful article",

"image": {

"@type": "ImageObject",

"url": "http://{{Page Hostname}}/thumbnail_1.jpg",

"height": 800,

"width": 800

},

"datePublished": "2016-01-01T00:00:00+08:00",

"dateModified": "2016-01-01T13:00:00+08:00",

"author": {

"@type": "Person",

"name": "John Doe",

"sameAs": "https://plus.google.com/106113236172152128711"

},

"publisher": {

"@type": "Organization",

"name": "Google",

"logo": {

"@type": "ImageObject",

"url": "https://www.newscorp.com/logo.jpg",

"width": 600,

"height": 60

},

"sameAs": "https://www.newscorp.com"

}

}

</script>

Page specific

Products

<!-- https://developers.google.com/search/docs/data-types/products -->

<script type="application/ld+json">

{

"@context": "http://schema.org/",

"@type": "Product",

"name": "Executive Anvil",

"image": "http://www.example.com/anvil_executive.jpg",

"description": "Sleeker than ACME's Classic Anvil, the Executive Anvil

is perfect for the business traveler looking for something to drop from a

height.",

"mpn": "925872",

"brand": {

"@type": "Thing",

"name": "ACME"

},

"offers": {

"@type": "Offer",

"priceCurrency": "USD",

"price": "119.99",

"priceValidUntil": "2099-01-01",

"itemCondition": "UsedCondition", // schema.org/UsedCondition

"availability": "InStock", // schema.org/InStock

"seller": {

"@type": "Organization",

"name": "Executive Objects"

}

}

}

</script>

Page specific

Products Reviews

<!-- https://developers.google.com/search/docs/data-types/reviews -->

<script type="application/ld+json">

{

"@context": "http://schema.org/",

"@type": "Product",

"name": "Executive Anvil",

//...//

"aggregateRating": {

"@type": "AggregateRating",

"worstRating": 1,

"bestRating": 5,

"ratingValue": 4.4,

"reviewCount": 1

},

"review": {

"@type": "Review",

"reviewRating": {

"@type": "Rating",

"worstRating": 1,

"bestRating": 5,

"ratingValue": 4.4

},

"name": "A masterpiece of an Executive Anvil",

"datePublished": "2016-01-01",

"reviewBody": "I really like this product. It captures the essential

challenge business traveler looking for something to drop from a height`s",

"author": {

"@type": "Person",

"name": "John Doe",

"sameAs":

"https://plus.google.com/106113236172152128711"

},

"publisher": {

"@type": "Organization",

"name": "John Doe Inc",

"sameAs": "http://www.janedoe.org"

}

}

}

</script>

Page specific

Review by Expert Author (GoogleNet whitelist)

<!-- https://developers.google.com/structured-data/critic-reviews -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "Review",

"author": {

"@type": "Person",

"name": "Lisa Kennedy",

"sameAs": "https://plus.google.com/114108465800532712602"

},

"datePublished": "2014-03-13T20:00",

"description": "Nerve-racking, sentimental and thrilling.",

"itemReviewed": {

"@type": "Movie",

"name": "Gravity",

"sameAs": "http://www.imdb.com/title/tt1454468/",

"datePublished": "2013-10-04T00:00",

"director": {

"@type": "Person",

"name": "Alfonso Cuarón",

"sameAs": "http://en.wikipedia.org/wiki/Alfonso_Cuar%C3%B3n"

},

"actor": [{

"@type": "Person",

"name": "Sandra Bullock",

"sameAs": "http://en.wikipedia.org/wiki/Sandra_Bullock"

},{

"@type": "Person",

"name": "George Clooney",

"sameAs": "http://en.wikipedia.org/wiki/George_Clooney"

}

]

},

"publisher": {

"@type": "Organization",

"name": "Denver Post",

"sameAs": "http://www.denverpost.com"

},

"reviewRating": {

"@type": "Rating",

"worstRating": 1,

"bestRating": 4,

"ratingValue": 3.5

},

"url": "http://www.denverpost.com/movies/ci_24225964/gravity-movie-review-anchored-by-sandra-

bullock-its"

}

</script>

Page specific

LocalBusiness - Restaurant

<!-- https://developers.google.com/search/docs/data-types/local-businesses -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "Restaurant",

"name": "Dave's Steak House",

"image": "http://www.example.com/image.jpg",

"url": "http://www.example.com/restaurant-locations/manhattan",

"menu": "http://www.example.com/menu",

"acceptsReservations": "True",

"telephone": "+12122459600",

"address": {

"@type": "PostalAddress",

"streetAddress": "148 W 51st St",

"addressLocality": "New York",

"addressRegion": "NY",

"postalCode": "10019",

"addressCountry": "US"

},

"geo": {

"@type": "GeoCoordinates",

"latitude": "40.761293",

"longitude": "-73.982294"

},

"openingHoursSpecification": [

{

"@type": "OpeningHoursSpecification",

"dayOfWeek": [

"Monday",

"Tuesday"

],

"opens": "11:30",

"closes": "22:00"

},

{

"@type": "OpeningHoursSpecification",

"dayOfWeek": [

"Wednesday",

"Thursday",

"Friday"

],

"opens": "11:30",

"closes": "23:00"

},

{

"@type": "OpeningHoursSpecification",

"dayOfWeek": "Saturday",

"opens": "16:00",

"closes": "23:00"

},

{

"@type": "OpeningHoursSpecification",

"dayOfWeek": "Sunday",

"opens": "16:00",

"closes": "22:00"

}

]

}

</script>

Page specific

LocalBusiness - HealthClub - ReserveAction

<!--

https://developers.google.com/search/docs/data-types/local-businesses

-->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "HealthClub",

"name": "Dave's House of Yoga",

"image": "http://daveshouseofyoga.example.com/yoga.jpg",

"url": "http://daveshouseofyoga.example.com/",

"telephone": "+14085551135",

"potentialAction": {

"@type": "ReserveAction",

"target": {

"@type": "EntryPoint",

"urlTemplate": "https://www.example.com/reserve?merchantId=20373",

"inLanguage": "en-US",

"actionPlatform": [

"http://schema.org/DesktopWebPlatform"

//, "http://schema.org/IOSPlatform"

//, "http://schema.org/AndroidPlatform"

]

},

"result": {

"@type": "Reservation",

"name": "Book a class"

}

},

"address": {

"@type": "PostalAddress",

"streetAddress": "3986 Rivermark Pkwy",

"addressLocality": "Santa Clara",

"addressRegion": "CA",

"postalCode": "95054",

"addressCountry": "US"

},

"geo": {

"@type": "GeoCoordinates",

"latitude": "37.3952149",

"longitude": "-121.9474023"

}

}

</script>

Page specific

MusicEvent - location

<!– https://developers.google.com/search/docs/guides/mark-up-listings#mark_up_event_listings -->

<script type="application/ld+json">{

"@context": "http://schema.org",

"@type": "MusicEvent",

"name": "The Wurzels",

"image": "https://cdn2.gigantic.com/static/images/campaign/240x240/the-wurzels5545.jpg",

"url": "https://www.gigantic.com/the-wurzels-electric-palace-2016-09-17-19-30",

"startDate": "2016-09-17T19:30:00+01:00",

"doorTime": "19:30",

"typicalAgeRange": "Under 14's must be accompanied by an adult.",

"location": {

"@type": "Place",

"name": "Electric Palace",

"address": {

"@type": "PostalAddress",

"streetAddress": "35 South Street",

"addressLocality": "Bridport",

"postalCode": "DT63NY",

"addressCountry": "GB"

}

},

"offers": [{

"@type": "Offer",

"name": "Standing",

"category": "primary",

"price": "15.95",

"priceCurrency": "GBP",

"url": "https://www.gigantic.com/the-wurzels-electric-palace-2016-09-17-19-30",

"availability": "InStock"

}],

"performer": [{

"@type": "MusicGroup",

"name": "The Wurzels",

"sameAs": "http://www.thewurzels.com/"

}]

}

</script>

Future Action: Buy

The Wurzels

Sat, 17th Sept

gigantic.com

thewurzels.com

Electric Palace 35 South Street, Bridport, DT63NY

Other supported event types include…

1. MusicEvent 2. TheaterEvent 3. SportsEvent

4. ComedyEvent 5. Festival 6. FoodEvent

Page specific

TheaterEvent - location

<!-- https://developers.google.com/search/docs/data-types/events#venue-markup -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "TheaterEvent",

"name": "Julius Caesar at Shakespeare's Globe",

"location": {

"@type": "PerformingArtsTheater",

"name": "Shakespeare's Globe",

"sameAs": "http://www.shakespearesglobe.com/",

"address": "London, UK"

},

"offers": [{

"@type": "Offer",

"name": "Standing (Yard)",

"url": "https://tickets.shakespearesglobe.com/performances.asp?PerIndex=287339",

"category": "primary",

"priceCurrency": "GBP",

"price": "7.50",

"availability": "http://schema.org/InStock"

},{

"@type": "AggregateOffer",

"name": "Lower Gallery",

"url": "https://tickets.shakespearesglobe.com/performances.asp?PerIndex=287339",

"category": "primary",

"priceCurrency": "GBP",

"lowPrice": "17.50",

"highPrice": "44.50",

"availability": "http://schema.org/LimitedAvailability"

}

],

"startDate": "2014-10-01T19:30",

"workPerformed": {

"@type": "CreativeWork",

"name": "Julius Caesar",

"sameAs": "http://en.wikipedia.org/wiki/Julius_Caesar_(play)",

"creator": {

"@type": "Person",

"name": "William Shakespeare",

"sameAs": "http://en.wikipedia.org/wiki/William_Shakespeare"

}

}

}

</script>

Future Action: Buy

Page specific

MusicGroup - ListenAction

<!-- https://developers.google.com/structured-data/actions/play-music -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@type": "MusicGroup",

"url": [

"http://www.iheart.com/artist/Katy-Perry-35141/"

// Google validator does not like android-app URL - even though its in their example!

//, "android-app://com.clearchannel.iheartradio.controller/ihr/listen/custom_radio/artist/35141"

],

"name": "Katy Perry",

"sameAs": "http://www.katyperry.com",

"logo": "http://{{Page Hostname}}/images/logo.png", // PP missing in Google help pages

"description": "Katy Perry is a pop music artist.",

"potentialAction": {

"@type": "ListenAction",

"target": [

"http://www.iheart.com/artist/Katy-Perry-35141/?autoplay=true&ext=1&playedFrom=197"

// Google validator does not like android-app URL - even though its in their example!

//, "android-

app://com.clearchannel.iheartradio.controller/ihr/listen/custom_radio/artist/35141?ext=1&played_from=197"

],

// Offer added as validator said this was a recommended field

"expectsAcceptanceOf": {

"@type": "Offer",

"eligibleRegion": {

"@type": "Country",

"name": "US"

}

}

}

}

</script>

Page specific

TVEpisode - Play/WatchAction

<!-- https://developers.google.com/structured-data/actions/watch-movies -->

<script type="application/ld+json">

{

"@context": "http://schema.org",

"@id": "2356865",

"@type": "TVEpisode",

"name": "The Occupation Recalibration",

"episodeNumber": 13,

"partOfSeason": {

"@type": "TVSeason",

"seasonNumber": 7

},

"partOfSeries": {

"@type": "TVSeries",

"name": "The Big Bang Theory",

"sameAs": "http://www.imdb.com/title/tt0898266/",

"url": "http://www.cbs.com/shows/big_bang_theory/",

"description": "The Big Bang Theory is an American sitcom."

},

"releasedEvent": {

"@type": "PublicationEvent",

"startDate": "2015-01-09",

"location": {

"@type": "Country",

"name": "US"

}

},

"potentialAction": [{

"@type": "WatchAction",

"target": {

"@type":"EntryPoint",

"urlTemplate": "http://www.cbs.com/shows/bbt/vid/2356865/occupation_recal?campaign=google_kp_watch",

"actionPlatform": "http://schema.org/DesktopWebPlatform",

"inLanguage": "English"

},

"expectsAcceptanceOf": [

{

"@type": "Offer",

"category": "free",

"availabilityStarts": "2015-01-01T00:00",

"availabilityEnds" : "2015-02-01T00:00",

"eligibleRegion": {

"@type": "Country",

"name": "US"

}

},{

"@type": "Offer",

"category": "externalSubscription",

"availabilityStarts": "2015-01-01T00:00",

"availabilityEnds" : "2015-02-01T00:00",

"eligibleRegion": {

"@type": "Country",

"name": "US"

},

"seller": {

"@type": "Organization",

"name": "Comcast",

"sameAs": "http://xfinity.comcast.net"

}

}

]

},{

"@type": "WatchAction",

"target":[{

"@type":"EntryPoint",

"urlTemplate": "android-

app://com.cbs.app/cbs/shows/bbt/vid/2356865/occupation_recal?campaign=google_kp_watch",

"actionPlatform":[

//"http://schema.org/DesktopWebPlatform",

//"http://schema.org/IOSPlatform",

"http://schema.org/AndroidPlatform"

],

"inLanguage": "English"

},{

"@type":"EntryPoint",

"urlTemplate": "http://www.cbs.com/shows/bbt/vid/2356865/occupation_recal?campaign=google_kp_watch", /*

Should be "ios-app://" but Google Validator has a bug with... ios-app

name://530168168/cbs/shows/bbt/vid/2356865/occupation_recal?campaign=google_kp_watch */

"actionPlatform":[

//"http://schema.org/DesktopWebPlatform"

"http://schema.org/IOSPlatform"

],

"inLanguage": "English"

}],

"expectsAcceptanceOf": [

{

"@type": "Offer",

"category": "free",

"availabilityStarts": "2015-01-08T00:00",

"availabilityEnds" : "2015-01-17T00:00",

"eligibleRegion": {

"@type": "Country",

"name": "US"

}

},{

"@type": "Offer",

"name": "CBS All Access",

"category": "subscription",

"availabilityStarts": "2015-01-01T00:00",

"availabilityEnds" : "2015-02-01T00:00",

"eligibleRegion": {

"@type": "Country",

"name": "US"

},

"price": 5.99,

"priceCurrency": "USD",

"seller": {

"@type": "Organization",

"name": "CBS",

"sameAs": "http://www.cbs.com"

}

}

]

}

],

"sameAs": "http://www.imdb.com/title/tt3337730/",

"description": "Sheldon tries to relax after he is forced to take a vacation. (TV-PG D, L)"

}

</script>

Page specific

JSON ld cheatsheet

bit.ly/winningthewar4

I recommend in the <head> with other <meta tags>

but can be placed anywhere.

Position of JSON LD on a page…

JSON-LD data

Note: If deployed via GTM - I recommend deploying on DOM ready.

Testing JSON markup

Structure Data Validator (Whole site in GWT)

Future markups

Rich Cards Validator – Recipes only

AMP also requires JSONLD

for BlogPosting & NewsArticle

<script type="application/ld+json">

/* http://developers.google.com/search/docs/data-types/articles */

{

"@context": "http://schema.org",

"@type": "BlogPosting",

"mainEntityOfPage": "https://www.bookinglive.com/blog/online-booking-systems-for-the-public-sector/",

"publisher": {

"@type": "Organization",

"name": "BookingLive Blog",

"logo": {

"@type": "ImageObject",

"url": "https://www.bookinglive.com/blog/wp-

content/themes/bookingliveblog/themes/bookinglive/images/logo.png",

"height": 60,

"width": 600

}

},

"headline": "Online Booking Systems For The Public Sector",

"datePublished": "2016-08-08T14:59:58+00:00",

"dateModified": "",

"author": {

"@type": "Person",

"name": "Booking Live"

},

"description": "",

"image": {

"@type": "ImageObject",

"url": "https://www.bookinglive.com/blog/wp-content/themes/bookingliveblog/themes/bookinglive/images/logo.png",

"height": 800,

"width": 800

}

}

</script>

Action buttons are also supported in Emails

<script type="application/ld+json">

/*

One Click Action: Confirm Action

https://developers.google.com/gmail/markup/reference/one-click-action#confirm_action

*/

{

"@context": "http://schema.org",

"@type": "EmailMessage",

"description": "Approval request for John's $10.13 expense for office supplies",

"potentialAction": {

"@type": "ConfirmAction",

"name": "Approve Expense",

"handler": {

"@type": "HttpActionHandler",

"url": "https://myexpenses.com/approve?expenseId=abc123"

}

}

}

</script>

Here is a live example from GitHub emails...

http://semanticweb.com/github-adds-schema-org-actions-email-notifications-via-json-ld_b44450

You have mail

Future Action: Pull Request

Summary

Enable JSON-LD via GTM or CMS plugins

Good for... Global JSON-LD 1. Brand Logo 2. Phone Number 3. Social Profiles 4. Site Search 5. OpeningHours 6. Address

Good for... Page Specific JSON-LD 1. News data 2. Product data 3. Review data 4. Breadcrumbs 5. Music & TV Product data 6. Local restaurants

Waiting for GoogleBot to index

(or check in SEOmoz)

Future actions…

1. Google JSON-LD Validator- try

2. GTM auto config for JSONLD or WP CMS plugins - install

3. Ping GoogleBot via sitemap.xml - submit

Questions (Prizes for Questsion)

GET YOUR SEO-ANALYTICS ASS TO MARS

Future Action: Ask Question

Free “USB stick" for Best Question!

Questions…. bit.ly/wawquestions

FREE seo audit template

bit.ly/techseoaudit

Appendix

Free Google Tag manager Guide...

bit.ly/gtmdevguide2

€ FREE

www.amazon.de/Google-Tag-Manager-Developer-Guide-ebook/dp/B00KEC2IOK

Future Action: Download

Detecting pages with "Semantic Markup Detection using

GTM script GTM import: https://www.dropbox.com/s/mvs84img781le16/OTHER%20-%20semantic-analytics.json?dl=0 // JSmacro for "Semantic - Event Markup Detection" triggered on gtm.dom ready

function () {

var SemElem = document.querySelectorAll('[itemtype=&"Event"]');

SemElem = SemElem.length > 0 ? true : false;

return SemElem;

}

// JSmacro for "Semantic - Event Markup Properties"

function () {

var venue = $('[itemtype*="Event"] [itemprop*="name"]') [0];

var performer = $('[itemtype*="Event"] [itemprop*="performer"]') .text();

venue = $(venue).text();

label = performer + " at " + venue + " (Semantic Event)";

check = venue.length > 0 ? true : false;

if (check === false) {

label = "No semantic data";

return label;

}

else {

return label;

}

}

Source: http://moz.com/blog/semantic-analytics

More links

• https://moz.com/blog/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags

• https://builtvisible.com/implementing-json-ld-wordpress/

JSON-LD Links Testing Tools • JSON-LD playground & validation tools:

www.json-ld.org

• Official Google markup-Tester for JSON-LD www.google.com/webmasters/markup-tester/corporatecontacts (phone numbers) www.google.com/webmasters/markup-tester/events (music events) www.google.com/webmasters/markup-tester/ (email)

JSON-LD blog posts • www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/ • moduscreate.com/google-announces-json-ld-compliance-at-google-io/ • semanticweb.com/category/technologies-2/json-ld • https://schema.org/docs/actions.html (new)

Links

http://www.simoahava.com/analytics/enrich-serp-results-using-gtm/

http://rdf.greggkellogg.net/distiller

https://developers.google.com/structured-data/testing-tool/

http://search4phil.com/_testing_script/____json_ld/json-ld-test.html

http://www.greenlaneseo.com/blog/2015/01/introducing-the-meta-and-rich-snippet-tester/

https://docs.google.com/spreadsheets/d/1sreYyRZ31HJdM1-WX5wztTIbY28aZjCVmGIWN8WKCEM/edit#gid=674078569

https://developers.google.com/schemas/release-notes

http://www.w3.org/wiki/WebSchemas/ActivityActions

// Script to patch a broken inline JSON-LD values

https://plus.google.com/100057001384327175073/posts/SJjfczNMPhc

Examples in the wild

Ticketmaster (JSON-LD for music events)

https://developers.google.com/webmasters/structured-data/testing-

tool?url=http%253A%252F%252Fwww.ticketmaster.com%252FLady-Gaga-

tickets%252Fartist%252F1249444

http://www.ticketmaster.com/

http://www.bandsintown.com/

http://www.bandpage.com/

http://www.songkick.com/

Nest (Telehone number)

nest.com/about/#contact

LastMinute (DigitalDataLayer only)

www.lastminute.com/hotels/amazing-design-hotel-with-pool-in-east-london-london-

gb.1000071234-1-5-

GH:1$v1v$?intcmp=London+AmazingDesignHotelwithPoolinEastLondon

Test using https://developers.google.com/structured-data/testing-tool/

But first… “JSON LD playground”

Future Action: Use

playground

Microdata >> JSON-LD convertor

bit.ly/winningthewar5

top related