Yes, SEOs do need to learn a programming language
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.
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:
- Control flow with loops and logic.
- Store information in files or databases (OK, HTML5 lets you do that, but bear with me).
- 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’.
- Perform other magic, like chart generation, complex math and such.
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.
- PHP, which is as ubiquitous as opinions at a political rally;
- Python, which will give you lots of nerd appeal;
- Ruby, which makes you cool, at least as far as programmers go;
- ColdFusion, which I love, even if half the world thinks it’s dead;
- .NET, if you must;
- Java, if you like to suffer;
- C or C++, if you’re a purist;
- 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.
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:
- Three metrics you have to combine into a spreadsheet (generate the spreadsheet).
- A list you have to scrub and sort (have a script do it for you).
- A complex calculation you do every day (create a simple tool that takes your data and does it for you).
- 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.