How can a data layer help my seo

4,482 views

Published on

How can a datalayer help my seo

Published in: Social Media
3 Comments
6 Likes
Statistics
Notes
No Downloads
Views
Total views
4,482
On SlideShare
0
From Embeds
0
Number of Embeds
407
Actions
Shares
0
Downloads
36
Comments
3
Likes
6
Embeds 0
No embeds

No notes for slide
  • Welcome :)
  • Define: HTML structured data
    Title, Meta description, H1, sitemap.xml
    Microdata (product images & review)
    OpenGraph (facebook image image and link)
    Define: JavaScript structured data
    GTM dataLayer (pageCategory)
    Adwords (ecom_pagetype)
    Define: Hybrid mode
    Google announcement in May
    Schema.org announcement in May
    JSON serialisation support: currently limited to telephone.
    Cheat sheets: JavaScript structured names standardisation
    W3C digitalData names
    GTM enhanced dataLayer names
    Examples in the wild
    digitalData (lastminute.com)
    Hybrid mode (nest.com telephone number)
    Plugins for Wordpress & Magento for JavaScript structured data
    DataLayer plugins
    Microdata plugins
    Re-mapping scripts for existing JS names
    Actionable outcomes SEO analysis examples
    GA pageGrouping & pageGrouping flow reports
    Adwords audience lists based on JavaScript structured data.
    Enhance ecommerce
    page.id data append using CSV
    Hacking the JS-GoogleBot crawler
    Tracking GoogleBot using GTM in script and noscript mode
    Cloaking using GTM
    Discuss: Website privacy & trust as a ranking factor.
    p3p.xml in 2002, DNT 2003.
    Video about Google KikScore crawler
    JS-GoogleBot Cookie scanning
    JSON serialisation hybrid for privacy policy page (p3p.xml + privacy policy)
  • Examples
    Why is it important?
    How save you money!
  • How can a data layer help my seo

    1. 1. How can a dataLayer help your SEO? Slides: bit.ly/seodatalayer2
    2. 2. Welcome Back Phil Pearce Analytics Freedom Fighter www.linkedin.com/in/philpearce Web Analytics Exchange mentor 750 GA questions answered Tracking protection group
    3. 3. Summary 1. What HTML structured data JavaScript structured data Hybrid mode 2. Why + Organic CTR + SEO analysis + Adwords Dynamic remarketing 3. How GTM script examples Validators Pinging GoogleBot to re-crawl / index 4. Questions
    4. 4. 1. HTML structure data  Human & Robot: Title & H1  Robot: HTTP Response code (e.g. 200 status)  Robot: Meta description  Robot: sitemap.xml Easy Baddie
    5. 5.  Human & Robot: Title & H1  Better organic CTR  Higher position for local listing 2. Microdata (aka Rich snippets) <div> <div itemscope itemtype="http://data-vocabulary.org/Review"> <span itemprop="itemreviewed">L’Amourita Pizza</span> Reviewed by <span itemprop="reviewer">Ulysses Grant</span> on <time itemprop="dtreviewed" datetime="2009-01-06">Jan 6</time>. <span itemprop="summary">Delicious, tasty pizza in Eastlake!</span> <span itemprop="description">L'Amourita serves up traditional wood-fired Neapolitan-style pizza, brought to your table promptly and without fuss. An ideal neighborhood pizza joint.</span> Rating: <span itemprop="rating">4.5</span> </div> </div> A Bit Bad
    6. 6. 3. What is a JavaScript DataLayer? name value pageCategory : signup visitorType : high-value  VariableName + Value pairs. For example...  VariableName (pageCategory) + Value (signup)  Like meta <title> but... in JS.  Like an excel table  but on website  and encased in JavaScript J S J S Pretty Mean
    7. 7. <script type="application/ld+json"> { "@context": "http://schema.org", "@id": "2356865", "@type": "Video", "name": "What is JSON LD", "potentialAction": [{ "@type": "WatchAction", "target": "https://www.youtube.com/watch?v=vioCbTo3C- 4", } </script> JSON-LD datalayer… Super-Bad J S J S
    8. 8. Markup summary *JS-Robot for onclick content Mark-up name Human can see? Robots see? Accessible to DOM? HTML No (except title) Yes No (except title) Microdata Yes Yes No DataLayer (JSON) No Yes Yes Hybrid (JSON-LD) Yes Yes* Yes Winner
    9. 9. 2. Why JSON-LD + Organic CTR + SEO analysis + Adwords remarketing
    10. 10.  Previously, we (Google) only looking at content from the HTTP response and didn't interpret what a typical browser running JavaScript would render.  …When pages that have valuable content rendered by JavaScript started showing up, we weren’t able to let searchers know about this content, which was a sad outcome for both users and webmasters.  In order to solve this problem… we started executing JavaScript.  In the past few months, our indexing system has been rendering a more web pages like an average user’s browser (with JavaScript turned on). JS-Googlebot now indexing JS content! From 8months ago: May-2014 Source: googlewebmastercentral.blogspot.co.uk/2014/05/understanding-web-pages-better.html
    11. 11. The next page has the following action Future Action: Watch
    12. 12. What is JSON-LD video https://www.youtube.com/watch?v=vioCbTo3C-4 And https://www.youtube.com/watch?v=XXw8g-FbemI#t=251
    13. 13. <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "url": "http://www.clientdomain.com", "contactPoint": [{ "@type": "ContactPoint", "telephone": "+1-877-746-0909", "contactType": "customer service", "contactOption": "TollFree", "areaServed": ["US", "CA" ], "availableLanguage": ["English", "French"] }] } </script> Telephone action... googlewebmastercentral.blogspot.co.uk/2014/04/surfacing-your-businesss-contact-and.html developers.google.com/webmasters/business-location-pages/ www.w3.org/TR/json-ld/#embedding-json-ld-in-html-documents www.google.com/webmasters/markup-tester/corporatecontacts
    14. 14. Note: currently only on Google.com SERPs ... renders JSON-linkedData on SERPs GoogleNet GoogleNet Future Action: Call
    15. 15. use cases:  1. telephone numbers – action call  2. company logos– action click  3. social profile links – action follow  4. events in the Knowledge Graph – action call  5. the sitelinks search box – action search We (Google) are working on expanding support to additional markup powered features in the future.  6. product & review actions (not yet supported) Other Examples
    16. 16. Better SEO analysis…
    17. 17. Example of automatic Content Groupings via Wordpress plugin Also pageGroup = “recentcy” would be a useful value capture
    18. 18. Example of automatic Content Groupings via magneto plugin Also pageGroup = “intent” would be a useful value capture
    19. 19. Better PPC remarketing…
    20. 20. variableName value ecomm_pagetype home ecomm_pagetype product ecomm_pagetype category ecomm_pagetype basket ecomm_pagetype purchase ecomm_pagetype siteview Adwords remarketing pagetype (allows Adwords to stalk users on Google Display Network) Analysing user session fingerprint for re-targeting
    21. 21. dataLayer = [{ "google_tag_params": { "ecomm_pagetype": "purchase", // home > category > product > basket > purchase | siteview } }]; Adwords remarketing pagetype dataLayer Ref http://support.google.com/adwords/answer/2476691?hl=en http://support.google.com/adwords/answer/3103357?hl=en http://support.google.com/tagmanager/answer/3002580?hl=en
    22. 22. Industry standardization…
    23. 23. Industry standard names JS dataLayer for TagManger Bit.ly/gtmdevguide2 (page 5 and page6)
    24. 24. Bit.ly/gtmdevguide2 (page 5 and page6) Google “re-programed” standard JS dataLayer for TagManger
    25. 25. Schema.org and JSON-LD.org
    26. 26. The Power of Structure mark-up = Robot becomes a goodie 
    27. 27. The Power of Structure mark-up = Robot becomes a goodie  http://semanticweb.com/github-adds-schema-org-actions-email-notifications-via-json-ld_b44450 You have mail Future Action: Pull Request
    28. 28. Benefits of JSON-LD? 1. Supported by Google, Yahoo and Bing. 2. Unlike digitalData layer it is officially W3c supported 3. SEO`s understand it as it is based on schema.org / microdata 4. It will eventually supersede microdata 5. It already has strong adoption in HTML emails (e.g gmail) 6. Benefit`s SEO, Analytics and Remarketing!
    29. 29. 3. Back to the present day How can I enable this now? GTM script examples Validators Pinging GoogleBot to re-crawl / index
    30. 30. GTM config files… (one click to import files)
    31. 31. JSON –LD examples… JSON script are downloadable from here: login:coolgtmstuff @gmail.com pw:philrulesgtm3 Import file for New interface: http://bit.ly/json-v2 Import file for Old interface: http://bit.ly/jsonv1
    32. 32. Practical example... json-ld.org >> then click “playground” link Future Action: Use playground
    33. 33. How to install & test…
    34. 34. Files to import... Test Container Test Container
    35. 35. Select overwrite
    36. 36. Validator… https://developers.google.com/webmasters/structured-data/testing-tool/
    37. 37. 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
    38. 38. 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
    39. 39. 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
    40. 40. MusicEvent - location <!-- http://support.google.com/webmasters/answer/4620133?hl=en --> <!-- http://developers.google.com/structured-data/events/performers --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "MusicEvent", "name": "Lady Gaga", "startDate": "2014-11-13T19:30", "location": { "@type": "Place", "name": "National Indoor Arna", "address": "King Edwards Rd, Birmingham, United Kingdom" }, "offers": { "@type": "Offer", "url": "http://www.ticketmaster.com/Lady-Gaga-tickets/artist/1249444", "price": 38.00 } } </script> 1. MusicEvent 2. TheaterEvent 3. SportsEvent 4. ComedyEvent 5. Festival 6. FoodEvent Other supported event types include… Future Action: Buy
    41. 41. TheaterEvent - location <!-- http://developers.google.com/structured-data/events/venues --> <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" } ], Future Action: Buy
    42. 42. 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" } } }
    43. 43. 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": "http://www.cbs.com/shows/bbt/vid/2356865/occupation_recal?campaign=google_kp_watch",
    44. 44. Products & review markup not yet supported
    45. 45. Product & Aggregated Reviews (not yet supported) <!-- http//rdf.greggkellogg.net/distiller <!-- http://www.overstock.com/Office-Supplies/Office-Star-Professional-Air-Grid-Deluxe-Task-Chair/2605023/product.html <script type="application/ld+json"> { "@context": "http://schema.org", "@graph": [ { "@id": "g69993968635260", "@type": "Product", "name": "Office Star Professional Air Grid Deluxe Task Chair" }, { "@id": "g69993968433920", "@type": "Offer", "price": "189.99", "availability": "InStock" }, { "@id": "g69993968533420", "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "195" }] } </script>
    46. 46. Review by author (not yet supported) <!-- 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" }
    47. 47. 2. DataLayer >> JSON-LD mapping possible… http://peadig.com/wordpress -plugins/structured-social- profiles/ https://wordpress.org/plugin s/structured-social-profiles/ 1. JSON-LD added via wordpress plugin (not tested)
    48. 48. 3. Enabling via Linked-Data to 3rd party entities/websites… <!-- https://developers.google.com/structured-data/events/performers#option_3_delegate_your_event_listings_to_another_website --> <!-- https://developers.google.com/structured-data/events/performers --> <!-- Delegate Your Event Listings to Another Website --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "MusicGroup", "name": "Your Band or Performer Name", "url": "http://yourdomain.com/", "event": { "url": "http://other-event-site.com/your-event-listing-page/", "name": "my super gig", "startDate": "2015-01-01", "location": { "@type": "Country", "address": "somewhere", "name": "US" }, "offers": { "@type": "Offer", "url": "http://other-event-site.com/your-event-listing-page/", "priceCurrency": "GBP", "price": 38 } } */ } </script>
    49. 49. OpenGraph is a list of entities/websites:
    50. 50. Summary
    51. 51. http://semanticweb.com/github-adds-schema-org-actions-email-notifications-via-json-ld_b44450 Utilise this mark-up, And I`ll be back (to re-crawl your website) Future Action: Pull Request
    52. 52. 1. Enable JSON-LD via GTM (or use CMS plugins)
    53. 53. 2. Utilise pageGroups based on this new data…
    54. 54. 3. Ping GoogleBot to get the pages indexed and get a CTR boast… 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. Wait 4+ weeks
    55. 55. Future actions… 1. JSON-ld playground - try 2. Google JSON-LD Validator- try 3. Install GTM scripts or CMS mapping files
    56. 56. Thanks & Questions GET YOUR SEO-ANALYTICS ASS TO MARS Future Action: Ask Question
    57. 57. Free resource... For everyone else... bit.ly/gtmdevguide2 € FREE www.amazon.de/Google-Tag-Manager-Developer-Guide-ebook/dp/B00KEC2IOK Future Action: Download
    58. 58. 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
    59. 59. Schema.org adoption rate
    60. 60. 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/
    61. 61. MINI-GUN UPGRADES: JSmacro for "Semantic - Event Markup Detection" 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
    62. 62. HTML5 data-tracking-attributes: Competing mark-up standard Source: http://www.swellpath.com/2014/08/google-tag-manager-events-using-html5-data-attributes/ and this forum post vs <a href="#" class="amazingOfferLink" id="amazingOfferLink1" data-tracking-action="amazingOffer">Click here</a>
    63. 63. HTML5 name Value data-tracking-action click data-tracking-event video data-tracking-entity component data-tracking-event-context-id 12345 data-tracking-event-context-category video data-tracking-event-context-action play data-tracking-event-context-label short circuit video data-tracking-event-context-value 0 data-tracking-event-context-noninteractive false HTML5 data-tracking-attributes: Competing mark-up example
    64. 64. 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 Official Google help pages • Musical Artists: Specify your events to Google support.google.com/webmasters/answer/4620133?hl=en • Companies: Specify your customer service numbers to Google support.google.com/webmasters/answer/4620709?hl=en • Email markup: JSON-LD developers.google.com/gmail/markup/reference/formats/json-ld developers.google.com/gmail/markup/
    65. 65. Other FREE stuff http://bit.ly/techseoaudit http://bit.ly/croheatmapaudit http://bit.ly/cookieaudit
    66. 66. 3. GTM dataLayer Position in the header

    ×