Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Debugging SEO - Language & Breaking Down

646 views

Published on

There are various soft skills I've learnt over my career. I've gotten better at reporting, at presenting, telling people no... But none end up in demand as much as being able to debug. There are always going to be things you don't know and going back to first principles to pick them apart is incredibly useful skill.

It's not about being able to program, rather how to pick apart the common problems to make you more effective. I want to take people through how to think like this, everything from learning the language and keeping a summary swipe file, to how to breakdown, test and re-create.

Published in: Marketing
  • Be the first to comment

Debugging SEO - Language & Breaking Down

  1. 1. Dominic Woodman @dom_woodman Distilled How to debug things http://www.slideshare.net/DominicWoodman
  2. 2. Language
  3. 3. Language Breakdown, Re-create, Test
  4. 4. What is debugging?
  5. 5. I use it to mean a specific kind of problem solving
  6. 6. I have a problem.
  7. 7. I get roughly what I need to do. I have a problem.
  8. 8. Language
  9. 9. I get roughly what I need to do. I have a problem.
  10. 10. I get roughly what I need to do. I know what I’m going to go and do now. I have a problem.
  11. 11. Breakdown, Re- create, Test
  12. 12. Language
  13. 13. “How to post a job in Drupal 7”
  14. 14. “How to use concrete to create the Taj Mahal”
  15. 15. “How to post a job in Drupal 7”
  16. 16. “How to post a job in Drupal 7” “How to create a page in Drupal 7”
  17. 17. “How to post a job in Drupal 7” “How to create a page in Drupal 7” “How to programmatically create a page in Drupal 7”
  18. 18. “How to post a job in Drupal 7” “How to create a page in Drupal 7” “How to programmatically create a page in Drupal 7” “How to programmatically create a node in Drupal 7”
  19. 19. Try to verbalise what we want “How to post a job in Drupal 7”
  20. 20. Look for information on a concept Try to verbalise what we want
  21. 21. Look for information on a concept Try to verbalise what we want Learn language 1
  22. 22. Look for information on a concept Try to verbalise what we want Learn language 2
  23. 23. Look for information on a concept Try to verbalise what we want Learn language 3
  24. 24. Look for information on a concept Try to verbalise what we want Learn language 4
  25. 25. Look for information on a concept Try to verbalise what we want 5 Research topic
  26. 26. The problem isn’t impossible Marketing problems are often hard only because there is so much complex language. #brightonSEO @dom_woodman
  27. 27. Look for information on a concept Try to verbalise what we want 5 Research topic
  28. 28. Look for information on a concept Try to verbalise what we want 5 Research topic
  29. 29. Try to avoid the language cycle Time is better spent to understand the concepts and the practicalities. #brightonSEO @dom_woodman
  30. 30. Other people
  31. 31. Other people Youtube tutorials
  32. 32. Other people Youtube tutorials Written tutorials
  33. 33. Other people Youtube tutorials Written tutorials Documentation
  34. 34. When to ask for help? Not sure when it’s ok to ask for help? If you’re stuck on language always ask for it. #brightonSEO @dom_woodman
  35. 35. Get people to ask about language Create an atmosphere in your team so people feel comfortable asking about language. #brightonSEO @dom_woodman
  36. 36. Look for information on a concept Try to verbalise what we want Learn language 1
  37. 37. Look for information on a concept Try to verbalise what we want 1 Research topic
  38. 38. Piece of cake.
  39. 39. It’s basically done.
  40. 40. I think I’ve got it.
  41. 41. Now I’ve got it.
  42. 42. Hmm hadn’t expected that.
  43. 43. Guys, I’m having a bad day.
  44. 44. You’ve found the answer but it’s intimidating
  45. 45. Stick with it until you comprehend Pull out parts and quickly test
  46. 46. Stick with it until you comprehend
  47. 47. Area Quick debugger JS Developer Tools (Console tab) Python CLI, PythonAnywhere CSS Developer Tools (Elements tab) Regex Regex101 Status codes & Directives Crawlbin Hreflang Hreflang tester, Hreflang Ninja Or find a way to QUICKLY test
  48. 48. Copy paste or actually read Reading without comprehending or trying is the easiest and least helpful. #brightonSEO @dom_woodman
  49. 49. “I have no idea how I installed it, so we just sudo remove all” Dominic Woodman - How to fix Drush
  50. 50. “Be careful with crawl paths.” Dominic Woodman - Notes on Ajax facets
  51. 51. Keep a notes file for definitions Write as if you won’t come back to it for 2 months. Future you will appreciate it. #brightonSEO @dom_woodman
  52. 52. I get roughly what I need to do. I have a problem.
  53. 53. I get roughly what I need to do. I know what I’m going to go and do now. I have a problem.
  54. 54. Re-create Breakdown & Test
  55. 55. Consistently re- create a problem A problem you can’t consistently re-create is a problem you can’t test and solve. #brightonSEO @dom_woodman
  56. 56. 4 1
  57. 57. Imitate location
  58. 58. Imitate user agent
  59. 59. Imitate Google’s IP
  60. 60. And location and user agent.
  61. 61. Imitate Google’s JS Rendering
  62. 62. This really is a pretty great tool.
  63. 63. Imitating Google for a single request The mobile testing tool or URL inspector in GSC will both show you the rendered DOM. #brightonSEO @dom_woodman
  64. 64. 41 41 41 41 41 41 41 41 41
  65. 65. 41 Website 1 41 41 41 Website 2 Website 3 Website 4
  66. 66. Index Crawling Rendering
  67. 67. 41 Your old, slow, website
  68. 68. 41 41 41 41 Your old, slow, website
  69. 69. 41 Your old, slow, website 00:00
  70. 70. 41 CACHE 41 EMPTY CACHE
  71. 71. Server resources Caching Periodic tasks Crawl resource Crawl render delay
  72. 72. Server logs can spot inconsistent problems If you’re seeing in-consistent problems, they’re best spotted in logs. #brightonSEO @dom_woodman
  73. 73. An example
  74. 74. On-page Off-page
  75. 75. You can’t re-create in the Bing validator :(
  76. 76. Exact competitor markup
  77. 77. On-page Off-page
  78. 78. { "@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "3.5", "reviewCount": "11" }, "description": "Customers reviews of microwave.", "name": "Microwave Customer Reviews" }
  79. 79. { "@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "3.5", "reviewCount": "11" }, "description": "Customers reviews of microwave.", "name": "Microwave Customer Reviews", "price": 120.99 } It’s a product without a price
  80. 80. { "@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "3.5", "reviewCount": "11", "bestRating": "5", "worstRating": "1", }, "description": "Customers reviews of microwave.", "name": "Microwave Customer Reviews", } It doesn't have ratings bounds
  81. 81. On-page Off-page Missing fields No price No ratings bounds
  82. 82. { "@context": "https://schema.org", "@type": "Product", } It’s JSON-LD not microdata <div itemscope itemtype="http://schema.org/Product"> ... </div>
  83. 83. On-page Off-page Missing fields Data format No price No ratings bounds JSON-LD not microdata
  84. 84. On-page Off-page Missing fields Data format No price No ratings bounds JSON-LD not microdata
  85. 85. On-page Off-page Missing fields Data format Data values No price No ratings bounds JSON-LD not microdata
  86. 86. { "@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "3.5", "reviewCount": "11" }, "description": "Customers reviews of microwave.", "name": "Microwave Customer Reviews" }
  87. 87. On-page Off-page Missing fields Data format Data values No price No ratings bounds JSON-LD not microdata Schema Protocol
  88. 88. WHY BING WHY
  89. 89. Break your problem into single tests Take your problem and break it into chunks that you can individually test. #brightonSEO @dom_woodman
  90. 90. bit.ly/debugging-checklist
  91. 91. bit.ly/brighton-debugging

×