2. Welcome
Phil Pearce
SEO & GA Analyst
www.linkedin.com/in/philpearce
Web Analytics
Exchange
mentor
750 GA
questions answered
Tracking
protection
group
3. 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
8. 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
10. 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
Better organic CTR!
11. <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"
},
Better organic CTR!
And action buttons!
JSON-LD (New Rich snippets)
23. 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
24. 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
26. 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
32. 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
46. 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"
}
}
}
Page specific
47. 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": {
Page specific
50. 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.
57. 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>
58. 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
60. 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
61. Ping GoogleBot after making changes
1. Ensure pages validate:
2. Ping GoogleBot to re-crawl by visiting this URL:
Or use “Fetch, render and index” on homepage & individual pages in GWT.
3. Or Click submit sitemap.xml in GWT
71. 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)
72. Video on JSON LD
Very good intro video to JSON-LinkedData
• http://www.youtube.com/watch?v=vioCbTo3C-4
• http://www.youtube.com/watch?v=XXw8g-FbemI
History behind JSON-LinkedData
• http://manu.sporny.org/2014/json-ld-origins-2/
74. 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/