Follow Along

RSS Feed Join Us on Twitter On Facebook

Get Engaged


Featured Article

Digital Marketing Insights; Integrated SEO 2013Digital Marketing Insights; Integrated SEO 2013Hello and welcome to the first of many Google Plus Hangouts here on SNC. To get things rolling our first session...

Latest Comments

Related Reading

Latest Articles

Digital Marketing Insights; Integrated SEO 2013Digital Marketing Insights; Integrated SEO...
Hello and welcome to the first of many Google Plus Hangouts here on SNC. To...

Our Sponsors


Latest Search Videos

Join Us

Yes, SEOs do need to learn a programming language
Wednesday, 09 February 2011 06:07

You’re an SEO. I get it. You know title tags and links. You can speak content, query freshness and trends.

You know your stuff.

But you can’t really delve into SEO—not like the big kids do—if you can’t program.

Getting geeky with it

HTML doesn’t count

First off, I have to point out: HTML does not count as a programming language. For our purposes, a ‘programming language’ is one that lets us:

  1. Control flow with loops and logic.
  2. Store information in files or databases (OK, HTML5 lets you do that, but bear with me).
  3. Do complex parsing of strings. ‘Parsing’ means ‘split them up into smaller strings, and split those smaller strings into itty-bitty strings and so on’.
  4. Perform other magic, like chart generation, complex math and such.

Don’t panic

If you’ve read this far, then your palms are sweating. Or you’re getting pissed at me, thinking ‘That Ian. What an asshat. He’s just telling us we have to learn to program because he did.’

Don’t panic, and no, I’m honestly telling you this for your own good.

You don’t have to know any programming languages inside/out. And just about any web scripting language — even javascript, possibly — will do. Options include:

  1. PHP, which is as ubiquitous as opinions at a political rally;
  2. Python, which will give you lots of nerd appeal;
  3. Ruby, which makes you cool, at least as far as programmers go;
  4. ColdFusion, which I love, even if half the world thinks it’s dead;
  5. .NET, if you must;
  6. Java, if you like to suffer;
  7. C or C++, if you’re a purist;
  8. PERL, if you want to grow a long, scraggly white beard.

There are other, less well-known languages, too.

But I’m not suggesting you become a professional developer. You just need to know how to build a tool, script or web app that won’t make a developer’s hair curl. Here’s why:


You’ll learn to reduce abstract concepts to executable chunks

There’s a thought process behind programming that can help you in SEO, too. I can’t totally describe it, but smart programming requires that you’re able to take an abstract concept, like ‘generate a report showing keyword rankings’, and reduce it to discrete, executable chunks.

Note that I said ‘smart’ programming. You can also learn to code using drag-and-drop tools like Visual Studio. In most cases, that will cause you to reduce abstract concepts to rubbish. Please learn to code by hand first.

Programming teaches iteration

Writing code means a constant cycle of scripting and testing: Write something, then test it, then tweak, then test again.

Huh. That sounds a lot like SEO, doesn’t it?

Truth is, the iterative style that drives good development practices helps in any environment. In SEO, where things change constantly and no one knows precisely what works and what doesn’t, this style is a must.


Search engines are built by programmers

Oh, wow. Never thought of that, did ya? Google was originally built, at least in part, on Python. Bing is built, I’d assume, on .NET or C++.

And there are a host of great open-source search engines and search crawlers you can run yourself: Nutch, Pavuk and Lucene, to name a few. You can learn a great deal about how these engines work, and how to make your site a better search engine target. But you need to know, at a high level at least, how these tools were built, first.


APIs are fun

Application Programming Interfaces (APIs) let you grab lots of useful data and reuse it. Most SEO tools — SEOmoz Linkscape, SEMRush, WordTracker and KeywordDiscovery, for example — offer APIs. You can combine the data from two or more tools and create some pretty nifty reporting tools for yourself.

But you can’t do any of that without knowing how to hack together a bit of code.


Learning is good

Learning to program is hard work. It’s good exercise for parts of the brain that we SEOs use a lot: Structured thinking. Analytical thinking. Planning. Workflow.

I learned the same process in law school when we studied the Rule Against Perpetuities. Learning to program is a lot more fun. Plus, you won’t have to picture the implications of the Fertile Octogenarian. Shudder.


You’ll be more efficient

Once you know how to program, you can take all sorts of repetitive tasks and automate them.

A great example: Every day, I need to look at search traffic from all of my clients, as well as their keyword diversity, potential crawl issues and social media metrics like Klout. That used to mean a lot of clicks and logins. Now, I have a single page where I can see it all. It ain’t pretty. But it works.

In the long run, you’ll become far more efficient.


Get started

The best way to start is to just start. Pick a language. Do the ‘Hello World’ tutorial. Then pick a problem you have to solve, every day, and try to solve it with a tool that eliminates repetition. Start with something really, really simple:

  1. Three metrics you have to combine into a spreadsheet (generate the spreadsheet).
  2. A list you have to scrub and sort (have a script do it for you).
  3. A complex calculation you do every day (create a simple tool that takes your data and does it for you).
  4. A bunch of metrics you have to grab from different services (use their APIs).

Find examples if you can, and start from those.

Don’t be afraid of breaking something. Start coding. Get a hacker mentality: Dive in, code, break stuff, then fix it. Take an example or open source application and modify it.

You’ll thank me later. I promise.

Last Updated on Wednesday, 09 February 2011 06:48


0 #1 David Harry 2011-02-09 06:14
OK Ian... I am gonna lead this one off. Let me just say; I can't program butkis.

Does that mean I am lacking? One of the things I think could have been added is that one can always hire programmers. I have a few on staff, thus haven't felt the need to learn it. I am busy enough trying to figure out how the engines work. So I delegate.

So, while I agree that being able to create your own tools/data sets, it isn't mandatory IMHO to actually spend time learning how to do it.

0 #2 Barry Adams 2011-02-09 06:24
Damn, I only know HTML... does that mean I have to return my SEO badge?

Oh, wait:
"8. PERL, if you want to grow a long, scraggly white beard."

I know PERL! I used to have to do some incidental PERL scripting back in the days... and yes I do intend to grow a long scraggly white beard at some stage. :D

But yes I agree with your basic premise: an analytical, technically adept mind is an advantage in SEO.
0 #3 Brett Pringle 2011-02-09 06:25
I understand the point coming across in the post. But i do think it's not necessarily "knowing" a programming language, but more being able to logically solve issues and work through things. That is essentially what part of programming is correct?

I have no programming skills to speak of, and definitely the last person to give any programming advice. But i can logically and systemically work through situations and problems to find a solution.
0 #4 Justin Parks 2011-02-09 06:41
Programmers program.
0 #5 Steven Ferrino 2011-02-09 06:43
Guess I'm ahead of the game since I'm a webdeveloper turned SEO.

I don't know if I fully agree, but I have dealt with situations where the SEO didn't even know HTML and didn't notice all the on-page factors that were just killing the site.

So I agree that SEO's should definitely know HTML, or have someone on their team that does, but a programming language I'm not too sure of.

Knowing PHP and JavaScript has allowed me to write some useful SEO tools though, but not necessary in the long run.
0 #6 Erin 2011-02-09 06:43
Would love to do what you have described above. Can you be more explicit in how I should go about it? I am a happy css/htmler, but the idea of making an ugly page the reports I look at every day gets me very excited. But I am not sure how to start! Would you write up a step by step guide?
+2 #7 Matthew Diehl 2011-02-09 06:52
I have to agree with Ian here. Having experience with 6 of the 8 languages he has listed and seriously knowing 3 of the 8 has been beyond beneficial to building efficiencies in my work flow AND advancing my career as an SEO.

As an SEO consultant I am not only delivering recommendations to the marketing teams at my clients but also to the development team that is physically making the changes to the site. In my opinion, the ability to take a recommendation from just a "it would be nice if we could do something like this" recommendation to an outlined spec that says "make this and here is how it should be coded to maximize SEO" is a valuable skill. It is an asset in your arsenal that can help your career or even your consulting business to bring in larger contracts because of the added expertise.

Obviously you can do SEO without knowing any of these programming languages but this has just been my experience.
+1 #8 Julie Kosbab 2011-02-09 07:09
One thing I've found is that knowing a programming language and having some CompSci background ends up being really helpful in dealing with programmers.

I mean, people who hire me to code regularly, as opposed to doing little stuff on the fly to patch crap temporarily? Probably shouldn't, because my real talents as an SEO are content/link-baiting and process development. But I can do that duct-tape kind of programming and kick APIs into functionality.

But more often, I'm working with the true programmers, and being female and an SEO who is versed in 3 languages and is a decent Linux admin? It helps me on the respect factor, and they also realize that I won't ask for the impossible and have a good concept of capabilities and timing. And that's valuable.
0 #9 Doc Sheldon 2011-02-09 07:26
I'm inclined to think that you don't intend your title to be taken literally, Ian. While I agree that being proficient in programming can be a plus for an SEO, I don't think it's really necessary. I do think, however, that any SEO that's able to read scripts will find it a real advantage. And I think some command of HTML (as you say, not a programming language) is a basic need.
I'm in the same boat as David, in that I can't program squat. I can read several languages sufficiently to understand what's intended, though. Unfortunately, I don't have a staff to call on, so yeah, I do sometimes find that limiting... just not necessary.
0 #10 Nick LeRoy 2011-02-09 08:38
I will admit up front that I can't program myself outside of a paper bag. However, I have learned over the years to be pretty good at manipulating existing code. SEO's definitely don't HAVE to be programmers but I think your value increases tremendously if you can actually make SEO suggestions and be able to implement them as well.
0 #11 Ryan Campbell 2011-02-09 08:52
Although I don't agree I can see the advantage learning to program can give SEO's.
+1 #12 Terry Van Horne 2011-02-09 11:57
There are problems only a programmer can fix... the SEO should at least be able to identify the problem and describe a fix, often these are not apparent unless you are a programmer. For instance a php session token in a url... to a non programmer they likely count the params and the names... but would not recognize that PHP session token whereas a programmer sees it and sees the footprint.

But do you have to be a programmer no..... it's just another skill some bring to the table. Would I want someone on the team to know programming... for sure if the site is dynamic.
+1 #13 Sarah Carling 2011-02-09 12:20
I have always likened it to knowing a foreign language, being able to read a road sign or interpret the menu in a restaurant is a pretty essential skill if you want to spend any significant time in a foreign country, being able to write the next best selling novel in that language is not.

SEO's need to learn to understand and interpret, they do not need to have a comprehensive knowledge
+1 #14 Andrea Gareth Jax 2011-02-09 12:20
I'm a system administrator, turned web developer (asp and then php), turned SEO.
It's REALLY a strong benefit for your career as SEO specialist if you know a server-side programming language, because you can interact a lot better and faster with crackheads, sorry, Software Engineers.
Also, knowing some programming helps a lot when you have to outsource coding: you know WHAT specifically can you ask, you can evaluate better the amount of time required, the skill required, the RESULTS!
And coding is sexy! I've used Django in countless bar to pickup beautiful girls. Also i'm in therapy because of my tendency to tell amazing lies.
0 #15 Andrea Gareth Jax 2011-02-09 12:49
Quoting Sarah Carling:
I have always likened it to knowing a foreign language, being able to read a road sign or interpret the menu in a restaurant is a pretty essential skill if you want to spend any significant time in a foreign country, being able to write the next best selling novel in that language is not.

I dare to suggest French Fortan 77, it's a joy for the hearth and the stomach :D It's an excellent match with poultry and game.
+2 #16 ian j lurie 2011-02-09 14:32
Everyone: I'm not saying "nyah nyah you can't code, you suck phhbbbttttt" :D

I just think learning a real programming language is one of the best SEO skill-builders you can do.

And Dave, Mr. I-know-natural-language-algorithms, I think you're pretty well set :)
0 #17 Charlie 2011-02-09 16:34
I can at least recognize some of the languages above mentioned (1,4,5)...

But rather than start programming I prefer to learn about "how to optimize using CMS". People are developing their portals on open sources like: WordPress, Joomla, Expression Engine, Showit, etc.

So, maybe I can´t write some code lines, but can "understand" some non HTML projects :P
+1 #18 james 2011-02-09 19:22
Good post, I agree if you do not have some technical know how then yeah alot of SEO will be a hard slog for you. I have good experience in PHP and know a few other programming languages but I really need to get some more advanced knowledge.
+1 #19 mikevallano 2011-02-09 21:01
Great post Ian.

I plan to learn a programming language or two as I think it'll be a big help, as Sarah described.

For me, I want to be able to relate to programmers more easily, as well as make things much more efficient for myself. Plus, having more skills is always good.
0 #20 Angry Blue Betta 2011-02-10 02:07
SEOs need a wide range of skills. I don't disagree that it would help if SEOs knew or even understood a programming language but I think it woul deven better if they knew the basics of marketing.

That is why it is better if people work in a team with people having different specialities.

Add comment

Security code

Getting Around the Site

Home - all the latest on SNC
SEO - our collection of SEO articles
Technical SEO - for the geeks
Latest News - latest news in search
Analytics - measure up and convert
RSS Rack - feeds from around the industry
Search - looking for something specific?
Authors - Author Login
SEO Training - Our sister site
Contact Us - get in touch with SNC

What's New?

All content and images copyright Search News Central 2014
SNC is a Verve Developments production, the Forensic SEO Specialists- where Gypsies roam.