Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Technical SEO in 2018

2 204 vues

Publié le

Slides from my talk at Friends of Search in February 2018 where I spoke about the priorities of technical SEO in 2018.

Publié dans : Internet
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Technical SEO in 2018

  1. 1. @badams #FOS18 @badams #FOS18 Technical SEO in 2018 Barry Adams Polemic Digital 08 February 2018
  2. 2. @badams #FOS18 Barry Adams ➢ Doing SEO since 1998 ➢ Founder of Polemic Digital ➢ Co-Chief at State of Digital
  3. 3. @badams #FOS18 @badams #FOS18 How Search EnginesWork
  4. 4. @badams #FOS18 Web Search Engines Three distinct processes: 1. Crawler 2. Indexer 3. Query Engine
  5. 5. @badams #FOS18 Web Crawler (Googlebot) • Spiders the web; ➢ Starts with URLs from previous crawls and XML sitemaps • Extracts hyperlinks and adds to crawl queue • Retrieves new and changed content • Access can be restricted with robots.txt
  6. 6. @badams #FOS18 Elements of aWeb Crawler • Crawl ‘Politeness’; ➢ How fast can we crawl a site? • URL Importance; ➢ How often do we need to recrawl a URL? • HTML Parser; ➢ Can we find links in the crawled URL?
  7. 7. @badams #FOS18 Crawler: HTML Parser
  8. 8. @badams #FOS18 Indexer (Caffeine) • Analyses content • Analyses links • Analyses webpage layout • Can be controlled with robots meta tags
  9. 9. @badams #FOS18 Elements of the Indexer • Web Rendering Service; ➢ Renders webpages as a browser would (Chrome 41) • PageRanker; ➢ Calculates a URL’s PageRank • Canonicalisation; ➢ Determines the canonical URL
  10. 10. @badams #FOS18 Web Rendering Service https://developers.google.com/search/docs/guides/rendering
  11. 11. @badams #FOS18 Web Rendering Service • Chrome 41 is the rendering engine; ➢ To be updated to Chrome 62(?) soon • Stateless; ➢ No cookies are saved ➢ Local & Session Storage is cleared
  12. 12. @badams #FOS18 Fetch & Render
  13. 13. @badams #FOS18
  14. 14. @badams #FOS18 PageRanker • Calculates each canonical page’s PageRank; ➢ Links, links, links ➢ Internal and external links both count ➢ PageRank Damping factor • Feeds back to the crawler; ➢ High PR = high crawl priority
  15. 15. @badams #FOS18 Query Engine • Tries to understand the intent of the search; ➢Context ➢Synonyms ➢Entities • Retrieves relevant pages from the index • Ranks pages based on; ➢Content relevance ➢Authority signals ➢Freshness
  16. 16. @badams #FOS18 @badams #FOS18 JavaScript & SEO
  17. 17. @badams #FOS18 Web Search Engines Three distinct processes: 1. Crawler 2. Indexer 3. Query Engine
  18. 18. @badams #FOS18 Web Search Engines Three distinct processes: 1. Crawler 2. Indexer 3. Query Engine
  19. 19. @badams #FOS18 JavaScript & Crawling • Googlebot does not render webpages; ➢ The indexer (Caffeine) does • JavaScript is not executed by the Googlebot crawler; ➢ Links embedded in JavaScript aren’t found by the crawler
  20. 20. @badams #FOS18 JavaScript & Crawling
  21. 21. @badams #FOS18 JavaScript & Crawling No Hyperlinks!
  22. 22. @badams #FOS18 Crawl Inefficiency Crawler • Can’t find hyperlinks • Sends page to Indexer • Cannot crawl any further Indexer • Renders page and executes JS • Sends links back to Crawler • Cannot index any further
  23. 23. @badams #FOS18 JavaScript & Indexing https://www.elephate.com/blog/javascript-vs-crawl- budget-ready-player-one/
  24. 24. @badams #FOS18 JavaScript & SEO • Googlebot (crawler) doesn’t crawl JavaScript • Caffeine (indexer) executes and indexes JavaScript • Further reading: ➢http://www.stateofdigital.com/javascript-seo-crawling- indexing/ ➢https://www.elephate.com/blog/javascript-vs-crawl-budget- ready-player-one/
  25. 25. @badams #FOS18 Fetch & Render
  26. 26. @badams #FOS18 Computed DOM
  27. 27. @badams #FOS18 Computed DOM – Chrome 41 https://search.google.com/test/rich-results
  28. 28. @badams #FOS18 HTML Source vs Computed DOM https://www.diffchecker.com/
  29. 29. @badams #FOS18 @badams #FOS18 Load Speed
  30. 30. @badams #FOS18 https://webmasters.googleblog.com/2018/01/using- page-speed-in-mobile-search.html Load Speed & SEO
  31. 31. @badams #FOS18 Load Speed & SEO Crawl Budget = the maximum amount of time a search engine spider will spend crawling your website before it gives up.
  32. 32. @badams #FOS18 Load Speed & SEO • Fast Load Speed = optimal use of crawl budget
  33. 33. @badams #FOS18 Load Speed https://developers.google.com/speed/pagespeed/insights/
  34. 34. @badams #FOS18 GTMetrix https://gtmetrix.com/
  35. 35. @badams #FOS18 Waterfall chart https://gtmetrix.com/
  36. 36. @badams #FOS18 Chome DevTools: Lighthouse
  37. 37. @badams #FOS18 Identify the Key Bottlenecks • Time to First Byte • Page Weight • Total Requests • JavaScript • Geographic location
  38. 38. @badams #FOS18 Time to First Byte How fast does the server respond? • Slow TTFB can mean: ➢ Slow database ➢ Slow webserver ➢ Long distance between client & server • Solutions: ➢ Optimise database ➢ Upgrade server ➢ Use a Content Delivery Network ➢ Server-side Rendering & Caching
  39. 39. @badams #FOS18 PageWeight How many KB is the webpage? • Large page weight (>500KB): ➢ Unclean code ➢ Large images ➢ Large external files (CSS / JS) • Solutions: ➢ Enable compression ➢ Optimise images ➢ Combine & Minify CSS & JS files ➢ Enable Caching
  40. 40. @badams #FOS18 Total Requests How many separate files are loaded for a single webpage? • Too many requests per page (>20): ➢ Every request is a new HTTP exchange ➢ Some requests can take a long time to complete • Solutions: ➢ Combine external CSS and JS files ➢ Enable client-side caching ➢ Minimise external dependencies (plugins, tracking codes, etc)
  41. 41. @badams #FOS18 JavaScript Is there JavaScript that stops the page from rendering? • Render-blocking JavaScript means: ➢ Crawler cannot parse the page ➢ Browser has to wait for JS to execute • Solutions: ➢ Asynchronous JavaScript ➢ Server-Side Rendering ➢ Not using JavaScript
  42. 42. @badams #FOS18 Long Geographical Distance Is the webserver far from the browser? • Large distance means: ➢ More TCP/IP hops ➢ Slow load times across the board • Solutions: ➢ Host the site in the same country as your audience ➢ Use a Content Delivery Network with good international coverage
  43. 43. @badams #FOS18 Load Speed Resources https://developers.google.com/web/fundamentals/performance/
  44. 44. @badams #FOS18 @badams #FOS18 Structured Data
  45. 45. @badams #FOS18 Structured Data What is Structured Data? • Old search: Keywords • New search: Things Structured Data enables search engines to understand things and their relationships.
  46. 46. @badams #FOS18 http://schema.org/docs/schemas.html
  47. 47. @badams #FOS18
  48. 48. @badams #FOS18 https://developers.google.com/search/docs/guides /intro-structured-data
  49. 49. @badams #FOS18 Structured DataVocabularies
  50. 50. @badams #FOS18 JSON-LD JavaScript Object Notation for Linked Data • W3C Standard since 2010 • Schema.org recommended syntax since June 2013 • Basic units are Name & Value pairs
  51. 51. @badams #FOS18 JSON-LD vs Microdata <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Book", "name": "Information Architecture: For the Web and Beyond", "publisher": "O'Reilly", "inLanguage": "English", "bookFormat": "Paperback", "offers": { "@type": "Offer", "price": "22.99", "priceCurrency": "GBP" } } </script> <div itemscope itemtype="http://schema.org/Book"> <link itemprop="bookFormat" href="http://schema.org/Paperback"/> <meta itemprop="publisher" content="O’Reilly"/> <meta itemprop="inLanguage" content="English"/> <p itemprop="offers" itemscope itemtype="http://schema.org/Offer">Only <b><span itemprop="price" content="22.99">£22.99</span></b> <meta itemprop="priceCurrency" content="GBP" /></p> <h4>In <span itemprop="name">Information Architecture: For the Web and Beyond</span></h4> </div> Separately in the page’s <head> section In-line with the content HTML in the <body>
  52. 52. @badams #FOS18 Validating https://search.google.com/structured-data/testing-tool/
  53. 53. @badams #FOS18
  54. 54. @badams #FOS18 Typical Errors 1
  55. 55. @badams #FOS18 Typical Errors 2
  56. 56. @badams #FOS18 Typical Errors 3
  57. 57. @badams #FOS18 Google Recommends • Site Information; ➢ Organisation ➢ Contact info ➢ Social profiles ➢ Breadcrumbs ➢ Search box • Content Types; ➢ Local Business ➢ Articles ➢ Books ➢ Job Postings ➢ Products ➢ Recipes ➢ Reviews ➢ … https://developers.google.com/search/docs/guides /intro-structured-data
  58. 58. @badams #FOS18 Organization <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Organisation Name", "url": "https://www.your-company-site.com", "logo": "https://www.your-company-site.com/logo.png", "sameAs": [ "https://www.facebook.com/your-profile", "https://instagram.com/yourProfile", "https://www.linkedin.com/in/yourprofile", "https://twitter.com/yourprofile" ] "contactPoint": [{ "@type": "ContactPoint", "telephone": "+353-123-4567-890", "contactType": "Sales" }] } </script>
  59. 59. @badams #FOS18
  60. 60. @badams #FOS18 Local Business <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Restaurant", "url": "http://www.davessteakhouse.com", "name": "Dave's Steak House", "address": { "@type": "PostalAddress", "streetAddress": "148 W 51st St", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10019", "addressCountry": "US" }, "telephone": "+12122459600", "menu": "http://www.example.com/menu", "acceptsReservations": "True", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "11:30", "closes": "22:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "10:00", "closes": "23:00" }, ] } </script>
  61. 61. @badams #FOS18 • Primary data comes from Google My Business • Make sure your on-site Structured Data matches up
  62. 62. @badams #FOS18 Search Box <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "https://www.website.com/", "potentialAction": { "@type": "SearchAction", "target": "https://www.website.com/search?q={search_term_string}", "query-input": "required name=search_term_string" } } </script>
  63. 63. @badams #FOS18 Search Box Sitelink
  64. 64. @badams #FOS18 Product <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": "2020-11-05", "itemCondition": "http://schema.org/UsedCondition", "availability": "http://schema.org/InStock", "seller": { "@type": "Organization", "name": "Executive Objects" } } } </script>
  65. 65. @badams #FOS18 Product Snippets
  66. 66. @badams #FOS18 Reviews <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" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, } </script>
  67. 67. @badams #FOS18 Review Snippets
  68. 68. @badams #FOS18 https://technicalseo.com/seo-tools/schema-markup-generator/
  69. 69. @badams #FOS18 Google Tag Manager - Static
  70. 70. @badams #FOS18 Google Tag Manager - Dynamic In Theory
  71. 71. @badams #FOS18 Google Tag Manager - Dynamic https://moz.com/blog/using-google-tag-manager-to- dynamically-generate-schema-org-json-ld-tags
  72. 72. @badams #FOS18 @badams #FOS18 Summarised…
  73. 73. @badams #FOS18 Technical SEO in 2018 • Make friends with JavaScript; ➢ Understand crawling vs indexing • There’s no such thing as ‘too fast’; ➢ Use the right tools to solve your load speed challenges • Structured Data is king; ➢ Websites are data sources for machine systems
  74. 74. @badams #FOS18 @badams #FOS18 ThankYou barry@polemicdigital.com www.polemicdigital.com @polemicdigital @badams

×