Dominic Woodman
@dom_woodman
Distilled
How to debug things
http://www.slideshare.net/DominicWoodman
Language
Language
Breakdown, Re-create, Test
What is debugging?
I use it to mean a
specific kind of
problem solving
I have a problem.
I get roughly what I need to do.
I have a problem.
Language
I get roughly what I need to do.
I have a problem.
I get roughly what I need to do.
I know what I’m going to go
and do now.
I have a problem.
Breakdown, Re-
create, Test
Language
“How to post a job in
Drupal 7”
“How to use concrete to
create the Taj Mahal”
“How to post a job in Drupal 7”
“How to post a job in Drupal 7”
“How to create a page in Drupal 7”
“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 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”
Try to verbalise
what we want
“How to
post a job in
Drupal 7”
Look for information on a
concept
Try to verbalise
what we want
Look for information on a
concept
Try to verbalise
what we want
Learn
language
1
Look for information on a
concept
Try to verbalise
what we want
Learn
language
2
Look for information on a
concept
Try to verbalise
what we want
Learn
language
3
Look for information on a
concept
Try to verbalise
what we want
Learn
language
4
Look for information on a
concept
Try to verbalise
what we want
5
Research
topic
The problem isn’t
impossible
Marketing problems are often hard only
because there is so much complex language.
#brightonSEO @dom_woodman
Look for information on a
concept
Try to verbalise
what we want
5
Research
topic
Look for information on a
concept
Try to verbalise
what we want
5
Research
topic
Try to avoid the
language cycle
Time is better spent to understand the
concepts and the practicalities.
#brightonSEO @dom_woodman
Other people
Other people
Youtube tutorials
Other people
Youtube tutorials
Written tutorials
Other people
Youtube tutorials
Written tutorials
Documentation
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
Get people to ask
about language
Create an atmosphere in your team so people
feel comfortable asking about language.
#brightonSEO @dom_woodman
Look for information on a
concept
Try to verbalise
what we want
Learn
language
1
Look for information on a
concept
Try to verbalise
what we want
1
Research
topic
Piece of cake.
It’s basically done.
I think I’ve got it.
Now I’ve got it.
Hmm hadn’t expected that.
Guys, I’m having a bad day.
You’ve found the answer
but it’s intimidating
Stick with it until
you comprehend
Pull out parts and
quickly test
Stick with it until you
comprehend
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
Copy paste or
actually read
Reading without comprehending or trying is
the easiest and least helpful.
#brightonSEO @dom_woodman
“I have no idea how I
installed it, so we just
sudo remove all”
Dominic Woodman - How to fix Drush
“Be careful with crawl
paths.”
Dominic Woodman - Notes on Ajax facets
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
I get roughly what I need to do.
I have a problem.
I get roughly what I need to do.
I know what I’m going to go
and do now.
I have a problem.
Re-create
Breakdown & Test
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
4
1
Imitate location
Imitate user agent
Imitate Google’s IP
And location and user
agent.
Imitate Google’s JS
Rendering
This really is a pretty
great tool.
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
41 41 41
41 41 41
41 41 41
41
Website 1
41 41 41
Website 2 Website 3 Website 4
Index
Crawling
Rendering
41
Your old, slow, website
41 41 41 41
Your old, slow, website
41
Your old, slow, website
00:00
41
CACHE
41
EMPTY
CACHE
Server resources
Caching
Periodic tasks
Crawl resource
Crawl render delay
Server logs can spot
inconsistent problems
If you’re seeing in-consistent problems,
they’re best spotted in logs.
#brightonSEO @dom_woodman
An example
On-page
Off-page
You can’t re-create in
the Bing validator :(
Exact competitor
markup
On-page
Off-page
{
"@context": "https://schema.org",
"@type": "Product",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "3.5",
"reviewCount": "11"
},
"description": "Customers reviews of microwave.",
"name": "Microwave Customer Reviews"
}
{
"@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
{
"@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
On-page
Off-page
Missing fields
No price
No ratings bounds
{
"@context": "https://schema.org",
"@type": "Product",
}
It’s JSON-LD not microdata
<div itemscope
itemtype="http://schema.org/Product">
...
</div>
On-page
Off-page
Missing fields
Data format
No price
No ratings bounds
JSON-LD not
microdata
On-page
Off-page
Missing fields
Data format
No price
No ratings bounds
JSON-LD not
microdata
On-page
Off-page
Missing fields
Data format
Data values
No price
No ratings bounds
JSON-LD not
microdata
{
"@context": "https://schema.org",
"@type": "Product",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "3.5",
"reviewCount": "11"
},
"description": "Customers reviews of microwave.",
"name": "Microwave Customer Reviews"
}
On-page
Off-page
Missing fields
Data format
Data values
No price
No ratings bounds
JSON-LD not
microdata
Schema Protocol
WHY BING WHY
Break your problem
into single tests
Take your problem and break it into
chunks that you can individually test.
#brightonSEO @dom_woodman
bit.ly/debugging-checklist
bit.ly/brighton-debugging

Debugging SEO - Language & Breaking Down

Editor's Notes

  • #2 Structure is better Found answer but intimidating - both paola and robin tied this to langauge loop Sam found intro slightly too long
  • #3 Back in 2012, i had a death wish, I decided I wanted to do this: drive a motorbike down Vietnam. About 2000km. From hanoi to ho chi minh
  • #4 I was expecting these gorgeous open roads that I’d roar down, clothes flapping in the wind.
  • #5 Actually most of it looks like this. Take those open roads add, a couple thousand motorbikes, buses
  • #6 Water barrels and goldfish
  • #7 I drove this very loveable, but objectively crap bike. ( it had no headlights, handlebars that had basically rusted into 2, and a speedometer that never went below 90km even when parked.)
  • #8 And this deathtrap that someone had attached wheels to made it 600 or so kms before failing (the first time) I knew had a issue, i was driving along a lovely mountain road, and the engine would shut off. It slowed i restarted the engine, pulled the throttle it went for a bit before the engine shut off again.
  • #10 We head for the nearest town which is Dong hoi and pull into one of the 100s of mechanics shops that litter vietnam
  • #11 Sat in that miserables mechanics, we debugged that bike. I was crap at debugging that bike for all the same reasons that people are bad at debugging anything
  • #12 We head for the nearest town which is Dong hoi and pull into one of the 100s of mechanics shops that litter vietnam
  • #13 I’d love to say these lads, knew all these things and were the world’s greatest mechanics But they werent. These lads were better than me but they still weren’t fantastic. They jumped straight to trying breakdown the problem and started randomly switching out pieces of the bike and trying to charge me money for it.
  • #14 I’d love to say these lads, knew all these things and were the world’s greatest mechanics But they werent. These lads were better than me but they still weren’t fantastic. They jumped straight to trying breakdown the problem and started randomly switching out pieces of the bike and trying to charge me money for it.
  • #15 I’d love to say these lads, knew all these things and were the world’s greatest mechanics But they werent. These lads were better than me but they still weren’t fantastic. They jumped straight to trying breakdown the problem and started randomly switching out pieces of the bike and trying to charge me money for it.
  • #16 I’d love to say these lads, knew all these things and were the world’s greatest mechanics But they werent. This whole process is slow agnosing and awful These lads were better than me but they still weren’t fantastic. They jumped straight to trying breakdown the problem and started randomly switching out pieces of the bike and trying to charge me money for it.
  • #17 And while they could breakdown the motorbike, we didnt know how to test it because we couldn’t re-create the problem We spend 3 days trying to solve this problem,
  • #18 And while they could breakdown the motorbike, we didnt know how to test it because we couldn’t re-create the problem We spend 3 days trying to solve this problem,
  • #19 endlessly re-watching National Treasure 2 and almost missed my visa deadline.
  • #20 endlessly re-watching National Treasure 2 and almost missed my visa deadline.
  • #21 endlessly re-watching National Treasure 2 and almost missed my visa deadline.
  • #22 endlessly re-watching National Treasure 2 and almost missed my visa deadline.
  • #23 By day 3 they literally tore out my carbeaurettor and put in a new one.
  • #30 And while they could breakdown the motorbike, we didnt know how to test it because we couldn’t re-create the problem We spend 3 days trying to solve this problem,
  • #33 And while they could breakdown the motorbike, we didnt know how to test it because we couldn’t re-create the problem We spend 3 days trying to solve this problem,
  • #34 And while they could breakdown the motorbike, we didnt know how to test it because we couldn’t re-create the problem We spend 3 days trying to solve this problem,
  • #54 This is when you ask for help. Ask people to teach you the language to solve your problems.
  • #58 The documentation will contain lots of information that will be super useful, WHEN you know the language
  • #80 And while they could breakdown the motorbike, we didnt know how to test it because we couldn’t re-create the problem We spend 3 days trying to solve this problem,
  • #81 For problems in search re-creating means re-creating what google is seeing In search being able to re-create a problem, usually involves mimicing google
  • #96 Pretty good imitation but not quite the same
  • #98 First point mimic google for a single request Be more clear
  • #99 First point mimic google for a single request Be more clear
  • #100 Be more specific
  • #101 Be more specific
  • #102 Be more specific
  • #103 Be more specific