Slide 1

Slide 1 text

WILL CRITCHLOW The modern SEO’s toolkit

Slide 2

Slide 2 text

WILL CRITCHLOW - @willcritchlow Marketing. With computers

Slide 3

Slide 3 text

WILL CRITCHLOW - @willcritchlow Our ability to use APIs, scrapers, multiple tools is going to be super critical. Avinash Kaushik, interview on SEOmoz

Slide 4

Slide 4 text

WILL CRITCHLOW - @willcritchlow I could talk about all the big tools, but you know about them (and if you don’t, they’re easy to find)

Slide 5

Slide 5 text

WILL CRITCHLOW - @willcritchlow This talk is about the toolbox, not all-powerful tools [though I love that the picture on the right is entitled “really big lathe”] http://www.flickr.com/photos/dottiemae/5187337181/ http://www.flickr.com/photos/endless__mike/2757408845/

Slide 6

Slide 6 text

WILL CRITCHLOW - @willcritchlow Expect the output of every program to become the input to another, as yet unknown, program Doug McIlroy, Basics of the Unix Philosophy

Slide 7

Slide 7 text

WILL CRITCHLOW - @willcritchlow They refer to “pipes” (|) because you connect programs like this: `cat $file | grep 404` http://www.flickr.com/photos/danndalf/3534506071/

Slide 8

Slide 8 text

WILL CRITCHLOW - @willcritchlow I run a company whose product is written in code, and I don’t yet speak the language. I sometimes feel like a newspaper publisher who has to take his editor’s word for it that the articles are good. Roy Bahat, President at IGN Entertainment

Slide 9

Slide 9 text

WILL CRITCHLOW - @willcritchlow I am not trying to turn you into a developer (that would make Bill concerned). Not being an author isn’t an excuse for not learning English

Slide 10

Slide 10 text

What would you use? WILL CRITCHLOW - @willcritchlow

Slide 11

Slide 11 text

WILL CRITCHLOW - @willcritchlow You need to find all the googlebot visits in a certain time-period in a 22Gb log file

Slide 12

Slide 12 text

WILL CRITCHLOW - @willcritchlow I’d be turning to bash, grep and sed

Slide 13

Slide 13 text

WILL CRITCHLOW - @willcritchlow I’d be turning to bash, grep and sed Does getting started with this sound too hard?

Slide 14

Slide 14 text

WILL CRITCHLOW - @willcritchlow Too hard? Really? I call BS – here’s how to get up and running from scratch in 45 minutes

Slide 15

Slide 15 text

WILL CRITCHLOW - @willcritchlow I cut it down to 15 minutes – some sequences may be shortened

Slide 16

Slide 16 text

WILL CRITCHLOW - @willcritchlow 45 minutes too long? Can you spare 2?

Slide 17

Slide 17 text

WILL CRITCHLOW - @willcritchlow grep input.log -e '404 .*Googlebot/2.1' > output.log e.g. find googlebot 404 errors

Slide 18

Slide 18 text

WILL CRITCHLOW - @willcritchlow Pro-tips: man / --help More information about grep and sed. I also use curl -I, whois, host

Slide 19

Slide 19 text

WILL CRITCHLOW - @willcritchlow You need to explain to a client or a dev team the changes you want to make to a site

Slide 20

Slide 20 text

WILL CRITCHLOW - @willcritchlow Get comfortable with a prototyping / screenshot annotation tool. This is Balsamiq

Slide 21

Slide 21 text

WILL CRITCHLOW - @willcritchlow I’m currently really liking Skitch (mac only currently, but recently acquired by Evernote and apparently coming to Windows)

Slide 22

Slide 22 text

WILL CRITCHLOW - @willcritchlow Sometimes screencasts or quick videos are the easiest way to get the point across. It’s never been easier. I like screenr for screencasts (warning: public).

Slide 23

Slide 23 text

WILL CRITCHLOW - @willcritchlow I’ve been liking G+ for video, though Skype group calling is also good

Slide 24

Slide 24 text

WILL CRITCHLOW - @willcritchlow Start using a ticket tracking tool / kanban board / project management tool. My current favourite is Trello

Slide 25

Slide 25 text

WILL CRITCHLOW - @willcritchlow You need to get persuasive information for your boss on how people perceive your site

Slide 26

Slide 26 text

WILL CRITCHLOW - @willcritchlow See the Whiteboard Friday: Replicating Google’s Panda Questionnaire

Slide 27

Slide 27 text

WILL CRITCHLOW - @willcritchlow I really like Smartsheet for interfacing easily with Amazon Mechanical Turk

Slide 28

Slide 28 text

WILL CRITCHLOW - @willcritchlow You need to classify a bunch of URLs. But you need to discover the classifications as you go along

Slide 29

Slide 29 text

WILL CRITCHLOW - @willcritchlow Rich Baxter wrote a great how-to post on this

Slide 30

Slide 30 text

WILL CRITCHLOW - @willcritchlow I’d be turning to Excel for this. Pro-tip: F9 to evaluate a part of a formula on the fly. Don’t forget to ESC out afterwards F9

Slide 31

Slide 31 text

WILL CRITCHLOW - @willcritchlow You need to check a site to find pages with the old GA code on them

Slide 32

Slide 32 text

WILL CRITCHLOW - @willcritchlow I had to do this just the other day, and I used Screaming Frog (you’ll need the paid version to search the HTML of the pages)

Slide 33

Slide 33 text

WILL CRITCHLOW - @willcritchlow You need to debug when Google Analytics events are being fired

Slide 34

Slide 34 text

WILL CRITCHLOW - @willcritchlow I like the tamper data extension for Firefox

Slide 35

Slide 35 text

WILL CRITCHLOW - @willcritchlow Chrome has an extension for turning on ga_debug.js. SEER did a great video explaining how to use it

Slide 36

Slide 36 text

WILL CRITCHLOW - @willcritchlow You should also get to grips with “inspect element”

Slide 37

Slide 37 text

Let’s talk about debugging WILL CRITCHLOW - @willcritchlow

Slide 38

Slide 38 text

WILL CRITCHLOW - @willcritchlow The most common question I’m asked: Why (TF) doesn’t it work? 1. reproduce 2. simplify 3. isolate 4. document (++verbosity) 5. hack 6. sleep, shower

Slide 39

Slide 39 text

WILL CRITCHLOW - @willcritchlow You need to gather data about the proportions of people tweeting different phrases

Slide 40

Slide 40 text

WILL CRITCHLOW - @willcritchlow Twitter streaming API (garden hose) (http://www.flickr.com/photos/pinksherbet/3916146579/)

Slide 41

Slide 41 text

WILL CRITCHLOW - @willcritchlow JSON looks like this (this is the Hunch API). Tom would access this with Google Docs

Slide 42

Slide 42 text

WILL CRITCHLOW - @willcritchlow This is the entire python code we used to access the Hunch API on our recent hack day. If you’re following along at home you will need to pip install simplejson

Slide 43

Slide 43 text

WILL CRITCHLOW - @willcritchlow You need to whip up a quick website to display the contents of your database to others in your team

Slide 44

Slide 44 text

WILL CRITCHLOW - @willcritchlow Look how easy it is to get Python and Django up and running

Slide 45

Slide 45 text

WILL CRITCHLOW - @willcritchlow Once you are up and running to this point, articles like this one and tutorials like this one become useful.

Slide 46

Slide 46 text

WILL CRITCHLOW - @willcritchlow You need to grab all the email addresses of the commenters on a WordPress site

Slide 47

Slide 47 text

WILL CRITCHLOW - @willcritchlow Grabbing email addresses of commenters: https://gist.github.com/1301218. Learn SQL to speak to databases directly

Slide 48

Slide 48 text

WILL CRITCHLOW - @willcritchlow You need to make a bunch of circles in sizes proportional to input data

Slide 49

Slide 49 text

WILL CRITCHLOW - @willcritchlow Sometimes you need specialised tools. We find data visualisation tools useful for briefing designers

Slide 50

Slide 50 text

WILL CRITCHLOW - @willcritchlow You want to make a page scroll sideways when someone scrolls their mouse wheel

Slide 51

Slide 51 text

WILL CRITCHLOW - @willcritchlow I don’t know why you want to do that

Slide 52

Slide 52 text

WILL CRITCHLOW - @willcritchlow But if you did... This is the entire jQuery code you’d need to make a page scroll sideways. We truly stand on the shoulders of giants

Slide 53

Slide 53 text

WILL CRITCHLOW - @willcritchlow Speaking of the shoulders of giants. If you want to make a button wobble... Part of a larger trend of great CSS and JavaScript frameworks

Slide 54

Slide 54 text

Oh, want to know what HTML5 actually is? WILL CRITCHLOW - @willcritchlow

Slide 55

Slide 55 text

WILL CRITCHLOW - @willcritchlow HTML5 almost never manifests itself visibly on the page. The main things you need to know: semantic markup and native multimedia (oh, and canvas).

Slide 56

Slide 56 text

WILL CRITCHLOW - @willcritchlow CSS3 is a lot of the magic

Slide 57

Slide 57 text

WILL CRITCHLOW - @willcritchlow The rest is JavaScript

Slide 58

Slide 58 text

WILL CRITCHLOW - @willcritchlow You need to grab a screenshot of your site (or your competitor’s?) every day to correlate against analytics data

Slide 59

Slide 59 text

WILL CRITCHLOW - @willcritchlow Check out PhantomJS (via @ipullrank)

Slide 60

Slide 60 text

Rapid fire round WILL CRITCHLOW - @willcritchlow

Slide 61

Slide 61 text

WILL CRITCHLOW - @willcritchlow Possibly the most powerful tool I have learnt recently is git. Github has amazing hidden depths and tools for everything you can imagine

Slide 62

Slide 62 text

WILL CRITCHLOW - @willcritchlow I recommend reading @holman’s stuff on how github uses github. While you’re at it, check out speaker deck.

Slide 63

Slide 63 text

WILL CRITCHLOW - @willcritchlow General stuff 1. Set yourself up with upstream = DistilledLtd, origin = your branch and any other colleagues’ remotes as you need them 2. Regularly pull upstream master into your local master branch Developing something 1. git checkout master 2. git pull upstream master 3. git checkout -b featurebranch 4. [do your doing] 5. commit regularly, but as close to one commit per ticket as you can (you can rebase commits for extra special bonus points) add “re #ticketnum” into your commit message 6. git push origin featurebranch [do this regularly - it’s your best backup] When you’re ready for something to be tested / deployed: 1. Go to github.com/username/projectname//tree/featurebranch and create a pull request to upstream master 2. Add the URL of the pull request to the ticket, mark it to test and assign to the tester The Distilled git(hub) process (advanced) To test a featurebranch: 1. git checkout master 2. git pull upstream master 3. git checkout -b testing 4. git pull personfork featurebranch 1. if there are merge issues, fix ‘em (outside the scope of this checklist) and instead of pushing the big green button below, you’d have to push into upstream master 5. do your testing 1. if rejecting, update ticket as appropriate, git checkout master, git branch -d testing and start again with the next feature 2. if accepting, merge changes on github pull request using the big green button, git checkout master, git pull upstream master git branch -d testing and continue, update ticket to deploy and assign to the deployer Rebase (squash commits) 1. You can squash multiple commits into a single commit. This only works if the commits haven’t been pushed to a remote repository. git log (to see how many commits you need to squash) 2. git rebase -i HEAD~4 (where 4 is the number of commits you want to squash) 3. In the editor, pick commit message to keep, squash other messages http://gitready.com/advanced/2009/02/10/squashing-commits-with- rebase.html

Slide 64

Slide 64 text

WILL CRITCHLOW - @willcritchlow There is some cool stuff in the recent GA updates

Slide 65

Slide 65 text

WILL CRITCHLOW - @willcritchlow wow, we're going 800 people per hour, or 1500 people per hour. it was a real mind shift. maybe i'll do a post. @dannysullivan 29 Sep

Slide 66

Slide 66 text

WILL CRITCHLOW - @willcritchlow Get ranking data from codex.getstat.com

Slide 67

Slide 67 text

WILL CRITCHLOW - @willcritchlow Do you think there’s any chance that blekko will roll out webgrep to run any query you like?

Slide 68

Slide 68 text

WILL CRITCHLOW - @willcritchlow DataCouch is a github for data – fork, pull request (see later)

Slide 69

Slide 69 text

WILL CRITCHLOW - @willcritchlow Did you know you can now drop images onto Google Search (via Dave Naylor: http://dis.tl/oMMmzi)

Slide 70

Slide 70 text

WILL CRITCHLOW - @willcritchlow ThinkUp runs on your server and gives you social media analytics

Slide 71

Slide 71 text

WILL CRITCHLOW - @willcritchlow I came across Chandoo via Todd Malicoat. It’s packed with Excel resources and downloads

Slide 72

Slide 72 text

WILL CRITCHLOW - @willcritchlow Chrome has a scraper extension (via @iamoldskool)

Slide 73

Slide 73 text

WILL CRITCHLOW - @willcritchlow Topsy is one of the few real-time search engines left – now with added G+

Slide 74

Slide 74 text

WILL CRITCHLOW - @willcritchlow Uptime monitors (disclosure: we invested in Server Density). I’d love to see an SEO uptime monitor monitoring 404s, accidental noindex etc and alerting.

Slide 75

Slide 75 text

WILL CRITCHLOW - @willcritchlow A handy post on integrating the GA API into WordPress (for top posts etc). Via @smashingmag

Slide 76

Slide 76 text

WILL CRITCHLOW - @willcritchlow Know more about your visitors with Pzyche from Jason Duke

Slide 77

Slide 77 text

WILL CRITCHLOW - @willcritchlow Text APIs (hat-tip @ipullrank)

Slide 78

Slide 78 text

WILL CRITCHLOW - @willcritchlow Speaking of whom – check out his tools

Slide 79

Slide 79 text

Just for fun WILL CRITCHLOW - @willcritchlow

Slide 80

Slide 80 text

WILL CRITCHLOW - @willcritchlow I haven’t come up with a use for the face.com API apart from putting moustaches on photos, but I’m sure you can do something ingenious

Slide 81

Slide 81 text

WILL CRITCHLOW - @willcritchlow apigee: tools, dashboards and analytics for public APIs (via @andyjamesdavies)

Slide 82

Slide 82 text

WILL CRITCHLOW - @willcritchlow Another geeky tool to install on your new Ubuntu virtual machine. Built from buzzwords (MongoDB, node, etc.). From Square

Slide 83

Slide 83 text

Will Critchlow If you’re enjoying yourself, please tweet when NYC is awake – there is still time for them to buy tickets for next week: http://www.distilled.net/events/ Founder – Distilled [email protected] @willcritchlow WILL CRITCHLOW - @willcritchlow