searchlove boston 2013_will critchlow_technical seo

105
Modern Technical SEO WILL CRITCHLOW

Upload: distilled

Post on 08-May-2015

21.820 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: SearchLove Boston 2013_Will Critchlow_Technical SEO

Modern Technical SEO

WILL CRITCHLOW

Page 2: SearchLove Boston 2013_Will Critchlow_Technical SEO

Best practice says you should remove all

parameters from your URLs

Page 3: SearchLove Boston 2013_Will Critchlow_Technical SEO

That kind of “recommendation” doesn’t

get things done

Page 4: SearchLove Boston 2013_Will Critchlow_Technical SEO

Jeff Bezos insists on recommendations written in prose

Page 5: SearchLove Boston 2013_Will Critchlow_Technical SEO

Read Steve Yegge’s accidental reply-all

https://plus.google.com/110981030061712822816/posts/AaygmbzVeRq

Page 6: SearchLove Boston 2013_Will Critchlow_Technical SEO

Presenting to Jeff is a gauntlet that tends to

send people back to the cave to lick their wounds

-- Steve Yegge

Page 7: SearchLove Boston 2013_Will Critchlow_Technical SEO

Imagine you’ve done all that – now be prepared to be

asked “WHY?”

Page 8: SearchLove Boston 2013_Will Critchlow_Technical SEO

Site speed

Page 9: SearchLove Boston 2013_Will Critchlow_Technical SEO

You know why you care about speed

Page 10: SearchLove Boston 2013_Will Critchlow_Technical SEO

You need to care about the details

You’ve probably all used tools like Google PageSpeed Insights

Page 11: SearchLove Boston 2013_Will Critchlow_Technical SEO

A high score indicates little room for improvement,

while a lower score indicates more room for

improvement. The PageSpeed Score does not

measure the time it takes for a page to load.

-- Google

Wait, what?

Page 12: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?Checking boxes doesn’t

delight users

Page 13: SearchLove Boston 2013_Will Critchlow_Technical SEO

Diagnose when sites are actually slow

Difference between “Has a CDN” vs. “CDN speeds site up”

Page 14: SearchLove Boston 2013_Will Critchlow_Technical SEO

How?

Page 15: SearchLove Boston 2013_Will Critchlow_Technical SEO

Gather more site speed data in GAImage/Graph etc.

Add this line

Page 16: SearchLove Boston 2013_Will Critchlow_Technical SEO

Understand waterfall reports

We’re working on our own site speed. This is from DistilledU

Page 17: SearchLove Boston 2013_Will Critchlow_Technical SEO

But what does it mean??Image/Graph etc.

All the credit goes to Waterfalls 101 from Web Performance Today

Page 18: SearchLove Boston 2013_Will Critchlow_Technical SEO

Loads of rows?

Combine assets (CSS, JS, images)

All the credit goes to Waterfalls 101 from Web Performance Today

Page 19: SearchLove Boston 2013_Will Critchlow_Technical SEO

Seeing lots of ORANGE bars?

Try “keep-alive” to avoid dropping TCP

connections

Image/Graph etc.

All the credit goes to Waterfalls 101 from Web Performance Today

Page 20: SearchLove Boston 2013_Will Critchlow_Technical SEO

Big GREEN bars?Shorten them with server-side

improvements and CDNs

Use analytics to tell you which – segment geographically

Page 21: SearchLove Boston 2013_Will Critchlow_Technical SEO

Big BLUE bars?

Shorten them by optimizing assets

Shrink images, minify CSS / JS

Page 22: SearchLove Boston 2013_Will Critchlow_Technical SEO

Before and after

Note: blue bars look bigger because of combined assets but total blue is less

Page 23: SearchLove Boston 2013_Will Critchlow_Technical SEO

SEGWAYSEGUE

Page 24: SearchLove Boston 2013_Will Critchlow_Technical SEO

Robots.txt

Page 25: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?It’s amazing how often this

gets screwed up

Page 26: SearchLove Boston 2013_Will Critchlow_Technical SEO

Spot-quiz from DistilledU

With this robots.txt, what areas of the site can googlebot crawl?

Page 27: SearchLove Boston 2013_Will Critchlow_Technical SEO

Spot-quiz from DistilledU

Answer: everything but the /secret/ directory – Robots.txt rules do not inherit

With this robots.txt, what areas of the site can googlebot crawl?

Page 29: SearchLove Boston 2013_Will Critchlow_Technical SEO

SEGWAYSEGUE

Page 30: SearchLove Boston 2013_Will Critchlow_Technical SEO

Mobile and Internationalhave similar technical

challenges

Page 31: SearchLove Boston 2013_Will Critchlow_Technical SEO

m.t.

www.

.co.uk.de.es.fr

One site or more?

Page 32: SearchLove Boston 2013_Will Critchlow_Technical SEO

Sets of international sites group

with hreflang

Image/Graph etc.

.co.uk.de.es.fr

HREFLANG

Page 33: SearchLove Boston 2013_Will Critchlow_Technical SEO

Sets of mobile sites group

with alternate

Image/Graph etc.

m.t.

www.

ALTERNATE

Page 34: SearchLove Boston 2013_Will Critchlow_Technical SEO

rel=alternate

Page 35: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?Declare a canonical page

and a mobile version

Page 36: SearchLove Boston 2013_Will Critchlow_Technical SEO

Do a search like this on the mobile

Page 37: SearchLove Boston 2013_Will Critchlow_Technical SEO

When you click through, you end up on the mobile version

Page 38: SearchLove Boston 2013_Will Critchlow_Technical SEO

It’s hard to tell, but there’s no redirect

This link actually goes to the m. version specified with a rel=alternate

But the title, URL, description all come from the desktop version

Image/Graph etc.

Page 39: SearchLove Boston 2013_Will Critchlow_Technical SEO

Who links while mobile?

Desktop pages accrue all the authority

Page 40: SearchLove Boston 2013_Will Critchlow_Technical SEO

Check all of this with Chrome mobile emulation

Settings Developer Tools cog (bottom right) Overrides

Page 41: SearchLove Boston 2013_Will Critchlow_Technical SEO

“Vary” header

Page 42: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?Change your page based on user-agent without worrying

about cloakingRESS – REsponsive with Server Side

Page 43: SearchLove Boston 2013_Will Critchlow_Technical SEO

HTTP header

curl -I www.example.com

Page 44: SearchLove Boston 2013_Will Critchlow_Technical SEO

HTTP header

curl -I www.example.com

Page 45: SearchLove Boston 2013_Will Critchlow_Technical SEO

Modern meta information

Page 46: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?Control how your pages

look when shared

Page 48: SearchLove Boston 2013_Will Critchlow_Technical SEO

Twitter cardsAllow control of the

tweet versus the basic:

Page 49: SearchLove Boston 2013_Will Critchlow_Technical SEO

Twitter cardsAllow control of the

tweet versus the basic:

Page 50: SearchLove Boston 2013_Will Critchlow_Technical SEO

Implement Twitter Cards

Get a competitive advantage and sort this out now (stats from BuiltWith)

Page 51: SearchLove Boston 2013_Will Critchlow_Technical SEO

SEGWAYSEGUE

Page 52: SearchLove Boston 2013_Will Critchlow_Technical SEO

JavaScript

Page 53: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?The days of “googlebot

can’t execute JS so I don’t need to understand it” are

gone

Page 54: SearchLove Boston 2013_Will Critchlow_Technical SEO

Anything beyond very basic customization of analytics code results in you writing custom JavaScript

This is a screenshot of the DistilledU module on customizing GA

Page 56: SearchLove Boston 2013_Will Critchlow_Technical SEO

Get to grips with jQuery

So much easier than just JavaScript

Page 57: SearchLove Boston 2013_Will Critchlow_Technical SEO

For example, Optimizely tests are built from jQuery

This is a live test on the Distilled website

Page 58: SearchLove Boston 2013_Will Critchlow_Technical SEO

Luckily, learning is easier than ever

Page 60: SearchLove Boston 2013_Will Critchlow_Technical SEO

DebuggingImage/Graph etc.

Chrome ships with some powerful debugging tools

CTRL+SHIFT+J

Page 61: SearchLove Boston 2013_Will Critchlow_Technical SEO

But alert() and console.log() are your friends

Page 62: SearchLove Boston 2013_Will Critchlow_Technical SEO

Right-click Inspect Element

Highlight active DIVs and test changes immediately

Page 63: SearchLove Boston 2013_Will Critchlow_Technical SEO

You can even edit pages here to mock things up

Obviously there are more useful things to do with this super power

Page 64: SearchLove Boston 2013_Will Critchlow_Technical SEO

AJAX and PushState

Page 65: SearchLove Boston 2013_Will Critchlow_Technical SEO

These buttons switch stories

Page 66: SearchLove Boston 2013_Will Critchlow_Technical SEO

URL changed without the page reloading

Page 67: SearchLove Boston 2013_Will Critchlow_Technical SEO

Content changed via AJAX

Page 68: SearchLove Boston 2013_Will Critchlow_Technical SEO

It can be hard for JS and server to work together

Node.js on the server?

Page 69: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?You’re going to recommend

it or encounter it in a site audit

Page 70: SearchLove Boston 2013_Will Critchlow_Technical SEO

And, incidentally, you should – it’s great to

separate content from presentation

Page 71: SearchLove Boston 2013_Will Critchlow_Technical SEO

How do you audit AJAX?

Page 72: SearchLove Boston 2013_Will Critchlow_Technical SEO

URLs load content

Spot-check with a browser + disabled js. Test with a crawler

Page 73: SearchLove Boston 2013_Will Critchlow_Technical SEO

Links are HTML links

CTRL+U is view source in Chrome on Windows – learn your shortcuts

Page 74: SearchLove Boston 2013_Will Critchlow_Technical SEO

…and the href is the same as the PushState

CTRL+U is view source in Chrome on Windows – learn your shortcuts

Page 75: SearchLove Boston 2013_Will Critchlow_Technical SEO

For an idea of the complexity…

Page 77: SearchLove Boston 2013_Will Critchlow_Technical SEO

That redirects to

a mobile sitehttp://www.fastcoexist.com/

1682002/this-24-year-old-entrepreneur-raised-300000-by-wearing-dad-s-wool-shirt-for-100-days

http://m.fastcoexist.com/?m=fastcoexist/node/1682002&url=http://www.fastcoexist.com/1682002/this-24-year-old-entrepreneur-raised-300000-by-wearing-dad-s-wool-shirt-for-100-days#1

&

Page 78: SearchLove Boston 2013_Will Critchlow_Technical SEO

That loads content via

AJAX

Empty HTML

Page 79: SearchLove Boston 2013_Will Critchlow_Technical SEO

Infinite Scroll

Page 80: SearchLove Boston 2013_Will Critchlow_Technical SEO

This is what a mashable page looks like when you

load it

Page 81: SearchLove Boston 2013_Will Critchlow_Technical SEO

When you keep scrolling more loads under your mouse

Page 82: SearchLove Boston 2013_Will Critchlow_Technical SEO

When you keep scrolling more loads under your mouse

Page 83: SearchLove Boston 2013_Will Critchlow_Technical SEO

Why?You’re going to encounter it

in a site audit

Page 84: SearchLove Boston 2013_Will Critchlow_Technical SEO

How do you audit infinite scroll?

Page 85: SearchLove Boston 2013_Will Critchlow_Technical SEO

Can you get to all these links without scroll-loading?

Image/Graph etc.

Make sure there is a (traditionally) crawlable navigation (Tips here)

Page 86: SearchLove Boston 2013_Will Critchlow_Technical SEO

Can you see all the important content without the scroll-loading?

Image/Graph etc.

Or at least check that it’s getting indexed

Page 87: SearchLove Boston 2013_Will Critchlow_Technical SEO

The state ofJavaScript indexation

Page 88: SearchLove Boston 2013_Will Critchlow_Technical SEO

We know that FB comments can be indexed

See, for example this page whose JS comments are indexed

Page 89: SearchLove Boston 2013_Will Critchlow_Technical SEO

Is it worth it though?

Page 91: SearchLove Boston 2013_Will Critchlow_Technical SEO

When Matt said this in 2011

Original tweet

Page 92: SearchLove Boston 2013_Will Critchlow_Technical SEO

This gives Google …the ability to read comments in AJAX or

JavaScript, such as Facebook comments or Disqus comments

-- SearchEngineLand [emphasis mine]

Much of the coverage was similar to this

Page 93: SearchLove Boston 2013_Will Critchlow_Technical SEO

Disqus is growing fast by the way

Sites using Disqus vs. FB comments – data from BuiltWith

Image/Graph etc.

Page 94: SearchLove Boston 2013_Will Critchlow_Technical SEO

Disqus comments can be indexed

Disqus via API in source code indexed

Page 95: SearchLove Boston 2013_Will Critchlow_Technical SEO

But the JS version can’t

Has anyone seen it work anywhere?

Disqus via JavaScript not indexed

Page 96: SearchLove Boston 2013_Will Critchlow_Technical SEO

We have seen aggressive crawling of things that look like URLs

<a href="#" onclick="redirect(this);return false;" redir-to="$$$start$$$www/ratedpeople/com???find???trade???greater-london???little-ilford" rel=nofollow f="Brenda" l="Manor">www.ratedpeople.com</a>

function redirect(elem) {url = $(elem).attr('redir-to').replace(/\//g,'.').replace(/\?\?\?/g,'/').replace('$$$start$$$','http://')document.location.href = url;

}

Worth reading the original announcement from Google – especially GET vs POST

Page 97: SearchLove Boston 2013_Will Critchlow_Technical SEO

It doesn’t look like arbitrary JavaScript execution

Page 98: SearchLove Boston 2013_Will Critchlow_Technical SEO

I would always specify that all content and all links can be found without JavaScript

Page 99: SearchLove Boston 2013_Will Critchlow_Technical SEO

When you’re specifying something, you can be as prescriptive as you like

Page 100: SearchLove Boston 2013_Will Critchlow_Technical SEO

When you are auditing, you should be more cautious of the cost of changes

Page 101: SearchLove Boston 2013_Will Critchlow_Technical SEO

If an audit shows content being pulled in via JS

but it’s getting indexedI’d leave well enough alone

Page 102: SearchLove Boston 2013_Will Critchlow_Technical SEO

If links are only accessible via JS, I would suggest

fixing that even if pages are being discovered

Page 103: SearchLove Boston 2013_Will Critchlow_Technical SEO

Go write technical recommendations like you’re presenting to this guy

Page 104: SearchLove Boston 2013_Will Critchlow_Technical SEO

Thanks.Any questions?

WILL CRITCHLOW

[email protected]

@willcritchlow

Page 105: SearchLove Boston 2013_Will Critchlow_Technical SEO

Image credits:http://kilocopter.deviantart.com/art/Birthday-Unicorns-166578859http://www.flickr.com/photos/dachis/5536760790/http://www.flickr.com/photos/matthigh/3687338082/http://www.flickr.com/photos/dudaphoto/5582847355/http://www.flickr.com/photos/jurvetson/5129303018/