Skip to content


When is an author not an author?

A little SEO riddle for you…

Q: When is an author not an author?

A: When that author has only written a template for spamming the SERPs ;)

 

Posted in google, seo.


Jaamit: an SEO Legend

The below is an internal email sent out today at OMD which I thought would be nice to share with the wider SEO community.

————

Today marks the day last year when we lost a highly valued colleague and friend on the OMD SEO team Jaamit Durrani. His dedication, passion, humour & intelligence he showed while he was with us has had a lasting effect on us personally, but also has been crucial to the SEO team’s growth from a very small team last year to a highly successful team of 15+ this year; a year where we’ve won our first ever major SEO-only client, scored 100% in client feedback and continue to build a better offering month on month.

As a small tribute, and hopefully an insight for those who weren’t lucky enough to meet or work with him, this week’s links highlight some of his best blog posts, as well as some of the tributes posted online:

1.    Seven sensational SEO tips for ecommerce sites | Econsultancy

econsultancy.com

For the first of my guest posts for Econsultancy I wanted to take a step beyond the generic, oft-rehashed ‘SEO tips’ (you know, things like “include keywords in your page titles” and “create great content”) and contribute something based on my experience. Guest post by Jaamit

2.    Nine common SEO campaign mistakes | Econsultancy

econsultancy.com

Running an ongoing SEO campaign is a lot like spinning plates. With so many factors in play in search engine algorithms, you really need to be aware of all of them at once to ensure a successful campaign. Guest post by Jaamit

3.    SEO Insight: Analysis and Rants on Search & Internet Marketing

web.archive.org

Jaamit’s blog is sadly no longer available (however we are looking into how it can be reinstated); this link from the Internet Archive luckily preserves most of his posts fully intact.

4.    SMX London – Top 10 Tips – By Jaamit Durrani – SEOgadget.co.uk

seogadget.co.uk

As an illustration of how open and sharing Jaamit was with his knowledge, this is a guest post he did for a competing agency’s blog :)

5.    PPC vs SEO Showdown: SES London 2010 Recap | Fresh Egg SEO Blog

www.freshegg.com

Before OMD, Jaamit kicked off his career in SEO with a small Brighton digital agency FreshEgg (owned by James Caan). Here’s one of his posts from their blog.

6.    Link building in real life – A practical guide to dominating the SERPS | Fresh Egg SEO Blog

www.freshegg.com

Coverage from FreshEgg of Jaamit’s first conference speaking engagement at Think Visibility in Leeds.

7.    Link Building in Real Life: Think Visibility 2010 Recap – SearchTalk | SearchTalk

searchtalk.co.uk

Coverage of the same talk from OMD’s Jamie Peach.

8.    Jaamit Tribute

explicitly.me

A touching tribute from one of Jaamit’s close friends in the industry.

9.    Jaamit Durrani Tribute – SearchTalk

searchtalk.co.uk

Another very touching tribute from Omnicom Head of Search Mark Mitchell, detailing the truly impressive impact Jaamit had in his short time at OMD.

10. @Jaamit – Twitter

twitter.com

Jaamit’s twitter account – it’s easy to see just how highly engaged he was with the SEO community and how willing he was to help out others whenever possible.

 

—–
Miss you mate.

Posted in seo.


Less Google keyword data = more black hat activity

This post purely reflects my own personal opinion, and does not reflect those of my employer or colleagues. For those faint of heart, warning: contains traces of black hat material.

So Google has taken our keyword data away, probably for good. What next for SEO?

I think we have to assume this rollout will eventually happen everywhere, for all users. Why? What’s in it for Google?

  1. Less competition – the data provided on search by firms such as Experian Hitwise, Comscore, Quantcast becomes far less valuable, meaning the only media company that can authoritatively provide keyword data is, you guessed it, Google.
  2. Less spam – from a purely objective point of view, I do think this will result in much less spam. Sites such as Mahalo, Experts Exchange, etc will all suffer as the pages generated purely based on search volume will die a death, and Google’s results will get better as a result.
  3. Less SEOs – I don’t think it will kill the industry, but measurement and keyword research becomes a lot harder. The focus will probably get more technical on-site and more social off-site. Google’s not known for its love of the SEO industry so this is probably a nice side benefit for them.

It’s easy to despair and mourn the death of SEO (again) but as long as organic results exist that’s pap.

Here are a few serious/non-serious ideas for workarounds:

1. Deep Content Analysis

Reports on content need to get A LOT better. For example tying up content and technical changes with organic traffic to those pages will become a lot more important in order to judge the success of content strategies.

2. Resurgence of rank tracking (for now)

With less keyword data, SEOs are forced back into the corner of going back to old-school rank tracking in order to measure success. This is a very sad thing considering ethical SEOs have been pushing keyword traffic as a key performance metric for a very long time now, and rankings were starting to become less important.

However I think relying too much on this may well leave SEOs in for a further shock down the line, as search results will probably start looking more like a JavaScript-based web app and less like traditional web pages, making them a lot harder/impossible to parse with traditional screen scraping tools (although maybe experts in Selenium could knock something up).

3. Don a black hat

None of these black hat methods are recommended; however are an indication of the direction certain people may choose to go in as a result of Google’s announcement.

Through hacking into a user’s browsing history (possible, though only for a pre-defined set of URLs), or other such nefarious/illegal activity, it’s probably still pretty easy to figure out referring keywords, and send the data in a manipulated request to Google Analytics (though likely to be against GA ToS).

3a. Develop a popular browser plugin

You may be able to regain some keyword data through developing a browser plugin that tracks a user’s browsing behaviour, much as Google did with their toolbar. Obviously to stay on the legal side of the fence you’d need to hide this as well as you can in the plugin’s T&Cs. Much as Google did with their toolbar.

3b. Develop & spread spyware

Clearly straddling the blackhat/illegal arena, tracking browsing activity through spyware is child’s play.

3c. Develop & spread a virus/trojan/worm

Again, frankly illegal, but another easy way to track the keywords that users are searching for.

4. Develop your own search engine(s)

Many in our industry assume Google has an unassailable position as a search engine. This may or may not be true (remember Altavista?), however that doesn’t mean there isn’t room for more search engines on the web. Given the sheer number of open source search engines available all you really have to do is choose one, and customise it for your chosen niche, add some nice features and then start tracking user behaviour.

5. Only allow Google to index your home page

Then put a big search box on your home page and track users’ search behaviour. Clearly has certain drawbacks and would only work if you had an absolute ton of branded searches :)

6. Start using a different search engine

I Still Haven't Found What I'm Looking For - Because I use BingA small protest perhaps, but an important one. Webmasters have dived in to Google products as they’ve given us a lot of great products for free. There’s far more in the way of good, free (or cheap) alternatives today to services such as Google Analytics than there were 5 years ago. Personally I’ve set Bing as my default search engine and am relatively happy so far (though the pangs of “I’ll just double check that on Google” have not gone away.)

So that’s just a few collected thoughts, please share your thoughts & ideas below!

Further Reading:

Posted in analytics, google, seo.

Tagged with , , .


Dynamically fetch web page contents in Excel

Excel’s built-in web features are pretty frustrating when you want to do more with the web than import a static HTML table to a predefined set of cells.

I’ve often wanted to be able to update the contents of a cell based on dynamic parameters passed into a URL, and not found a decent, easy way of doing this. The official Office website shows you how to do this the Microsoft way, but lo and behold that doesn’t actually translate to real-world uses very well.

Say for example you want to fill a column of cells with the ranking for a given list of keywords, a function similar to that shown below (where the URL could potentially be defined in the E column) would be very useful:

Provided you had an API into ranking data (see Perl code below), this should be an easy operation, but this doesn’t seem to be something Excel does out of the box.

I’m sure there are tons of xll’s and paid for solutions out there to do the same thing, but I want something that’s flexible, and ideally free. Hence the user-defined function below can replace Excel’s awkward built-in parameter handling quite easily and for lots of different uses:

 ' Name the function anything you like - the variable parameters to pass in this instance are keyword, domain, number of results
 Public Function getURL(kw As String, domain As String, num As Integer)

' Build the URL from the parameters passed in
 URL = "http://www.example.com/api/script.pl?kw=" & kw & "&domain=" & domain & "&num=" & num

' Uncomment to debug the request URL
 'Debug.Print "Request URL: " & URL

Dim objhttp As Object

Set objhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")

objhttp.Open "GET", URL, False
 objhttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
 ' If your URL uses basic HTTP authentication (like mine did), uncomment the line below and replace the contents of [] with your base 64 encoded credentials
 'objhttp.setRequestHeader "Authorization", "Basic " & "[base64_encode[user:pass]]"
 objhttp.send ("")

Dim Response As String
 Response = objhttp.responseText

' To debug the output into Excel's error console, uncomment the line below
 'Debug.Print "GA data feed response: " Response

' Load contents of URL into the cell that's called the function
 getURL = Response

End Function
 

I’m no VBA whiz or anything so I’m sure the above code could be tweaked vastly to make it faster, more robust, and more flexible for variable numbers of query, different query types etc (open to suggestions :) ), but hey, it’s a quick & easy way to solve a problem.

The Perl code: as mentioned above, the VBA code was written specifically to grab ranking data from an API. Hence there’s no fancy XPath expressions in the VBA, or even any attempt to parse the output. This is another potential improvement, but I try and keep Excel’s interactions with the web & text processing to an absolute minimum because Excel + teh internets = sloooow. In this instance, the script output is literally just the numeric data, so any processing is done by the faster Perl code.

The code below relies on a custom scraping library (SearchMarketing::Crawl::GoogleNatural) – I’ll leave that code up to you to re-create ;)

It’ll only check the top 100 results but for most purposes that’s more than enough. If there is more than one result for the given domain, it’ll print the numbers separated by an ampersand and can then be manipulated in Excel if necessary (I’ll just about trust Excel for that…)

#!/usr/bin/perl -wT
use strict;
use WWW::Mechanize;
use SearchMarketing::Crawl::GoogleNatural;
use CGI qw(:standard);

my $kw          = param("kw");
my $num_results = param("num");
my $domain      = param("domain");

print header;

getPos($kw,$num_results,$domain);

sub getPos {

  my $kw          = $_[0];
  my $num_results = $_[1];
  my $domain      = $_[2];

  my %results = googleUK($kw, $num_results);
  my $count = 0;
  foreach my $position ( keys %results ) {
    my $title    = $results{$position}[0];
    my $snippet  = $results{$position}[1];
    my $dest_url = $results{$position}[2];
    my $disp_url = $results{$position}[3];

    if ($dest_url =~ m{^https?://[^/]*$domain/?.*$}i) {

      if ($count > 0) {
        print "&";
      }
      print $position;
      $count++;
    }
  }
  if ($count == 0) {
    print "N/A";
  }
}

Posted in perl, programming, seo.

Tagged with , , , .


Why code?

I wish I had a pound for every time another SEO told me they want to learn a programming language. It seems most SEOs are sure they want to learn PHP, Python or another programming language, but when asked the question “to what end?” the answers generally become less clear.

Because of this I think the following is the reason why a lot of SEOs never end up taking that step:

Let’s face it: teaching yourself a new language is never easy, and it becomes much harder if you don’t actually know why you’re doing it. For this reason most people get frustrated and give up before they hit the red line above and get any significant payoff for investing the time in learning a new language.

When I taught myself Perl it wasn’t directly to do with SEO – in my first job I spent a whole day each week manually editing an HTML newsletter template in Notepad++. I hated it so much I figured there was probably a better way do it so I bought an O’Reilly book, got up 2 hours early every day until I knew the basics and could build a tool to generate the HTML for me. That saved me 5 hours a week of boring tasks and got me nicely into the payoff zone.

What’s your imperative?

Posted in perl, programming, seo.

Tagged with , , .