I'm hoping this post will become the first in a series of posts from me talking more about SEO from a developer's perspective. A lot of the posts around tend to be more centered on SEO from a marketing perspective. If you have anything you'd like to see covered, please leave a comment and I'll do my best.
The work done by developers rarely hits the headlines but can often be the difference between success and failure in an SEO project. The following list may not be groundbreaking, but then SEO often isn't. I think the following all fall under the heading of advanced common sense...
The way developers think makes us a special bunch and can give us an advantage in a number of tasks that a typical SEO will do regularly. Here is my list of things where thinking like a developer gives you an advantage over the more creative types.
1) Realise that you can get a long way with a great site
I think there is a tendency for SEOs to dive in and start trying to gain exposure and links, often overlooking the massive improvements that can be gained from fixing things closer to home. Ensuring the basics are right should be the first step in any SEO project. In so many projects there are fundamental issues with the website that need to be fixed before the site will really reach its potential.
Even if you aren't going to be making these changes, as a developer, identifying the issues and suggesting alternatives is slap bang in the middle of your skill set. I hate to let the secret slip, but getting these things right is not rocket science, and often boils down to plain old common sense. A great start would be to read the illustrated guide to building a search-friendly website.
2) Develop stuff!
It turns out if you are good at building widgets you can cause quite a stir. Widgets, quizzes, and online tools sounds like something a developer would knock up (read carefully: craft).
I'm sure that if you sat down for an hour you could think of something that would make the life of people in your industry better. Maybe you can make them more efficient, or just make life a little more enjoyable for them. Providing tools to other people in your industry is a fantastic way of helping to build inbound links. The inbound links to the seo tools and the IP Location Lookup tool in particular is no coincidence.
3) Test, tweak, rinse, repeat
I don't imagine I'm the only developer that spends my life testing things. Rarely does a program work the first time. It turns out these skills aren't as common as you'd think. I always tell the story of when I was in my final year of a computer science course and earnt some pocket money by being a lab demonstrator. Every week, without fail, someone would ask me to help them fix a compile error along the lines of "Missing ; on line 152." Every week I replied with "Can you look at line 152, do you see anything missing?"
Anyway, me reminiscing isn't helping you become a great SEO. However, understanding how to test stuff does. Rather than relying on hearsay, gossip, and forums that are out of date, why not setup some tests. Does a h1 tag actually help? Don't take my word for it, set up two websites that are all but identical. Make up a random keyphrase, put it in a h1 on one site and in a p tag on the other and see what happens. Now don't get me wrong, I'm not saying you should ignore what is being said and re-invent the wheel, but there are a massive number of things that would benefit from a test. Ok, you want an example. I'd like to know what works better for geo-locating a website - microformats vs address?
4) Reverse engineer other sites
I've just talked about testing and how these skills are not as common as you'd think. Another area where these skills are immensely valuable is when you are reverse engineering another site. An inquisitive mind and a few good tools will get you a long way.
For those of you not used to this sort of detective work, I'd recommend starting off by installing the user agent switcher, upgrading the user agents list, and setting your browser to identify as Googlebot. Now simply sit back and get on with your job. Within hours I guarantee you'll see something weird happening. Simply work out what is happening. Once you know what is happening, all you have to do is think about what the website is trying to accomplish. I promise you, no one codes cloaking based on user agent by accident.
Other things to try include disabling javascript and blocking all cookies. Try this on all your clients. If things go a bit funky, then you can jump in and save the day.
Finally, for the real geeks among you, try browsing with lynx. A site that works well with lynx, both technically and in terms of the users, is likely to work fairly well for the search engines. Quite often a site will 'work' but will be so badly architected that it may as well be in Flash. I've said it before and I'll say it again, a well architected site is worth its weight in gold, both to the search engines and to the users of the site.
5) Become a blackhat!
If all else fails, turn blackhat. Most of the blackhats I've met are developers at heart. Blackhat is all about doing something dodgy (by which I mean against Google's T&Cs) once, then working out how to get a computer to do it whilst you sleep. Link farms, comment spam, write once, computer repeats for you. No content to write, no networking to do...hang on, why am I still whitehat?
Apart from the "doing something dodgy" part, that last paragraph can also be applied to whitehat. By automating tasks you do on a regular basis, you can end up doing more work with less effort.
6) Don't be afraid to learn
As a developer I feel like I never stop learning. There is always another API to get your head around. When presented with often badly written documentation, most people run a mile. A developer, on the other hand, jumps in, tries stuff, and eventually hacks something together (the fact that this needs to be deleted and re-written, but never is, is neither here nor there). The difference between a developer and a 'normal' person is that a developer presses buttons to see what happens. A 'normal' person is scared to press a button in case they break something.
So go ahead and learn something new. Why not get your head around some stats. Perhaps you could 'knock up a online regression tool' while you're at it.
The last point is the one area where a developer (in general) pretty much sucks. Networking, speaking to people, putting yourself out there. I know it's hard, but having a trusted network is a massive shortcut to being a truly great SEO.
7) Break the stereotype
One of things I'm least good at is networking, online. I have a Twitter account but I don't say much. I'm self-conscious about what I say, so I often write replies, re-write them, then delete them. However, if you really want to become a great SEO, building up a network is a fantastic way of opening doors and getting your name out there. Luckily, I can just piggy back on the networking that Will and Tom do.
I think it is worth saying that the way to become great at anything is to play to your strengths. I long ago realised that I am far better placed sitting in my corner coding stuff than trying to be overly creative.
So, let's get some debate going. What else do developers do better than everyone else?
How to Turn Yourself from a Great Developer to a Great SEO
Technical SEO
The author's views are entirely his or her own (excluding the unlikely event of hypnosis) and may not always reflect the views of Moz.
And don't forget the whole "replace yourself with a small shell script" - automating any part of your job that would be better done by a machine. Computers don't get bored and they don't make mistakes, so developers have an advantage when working on boring / repetitive tasks.
Or that's what I tell myself when I delegate them to you ;)
Nice post Duncan, it's always helped me in my work as an SEO and Online Marketer that I'm a developer at heart. The fact that I actually know what HTTP IS and how it works make it so much easier to understand redirect issues, for instance.
Regarding your point 2, develop stuff, well... Been there, done that :) check out my wordpress plugins for proof of what that's worth :)
What I do want to say though is that to my experience, in the end it's about two things: WHAT you know and WHO you know. Those who become "truly" big in our sphere have a lot of knowledge, but they also know a lot of people...
I have a number of your wordpress plugins installed on various blogs so can certainly vouch for the quality of those.
I completely agree that to become really big you have to know a lot of people, thought being good at what you do plays a big part in that as well!
I was almost turned off of this post before I started reading it because I consider myself to be much more closely affiliated with the marketer's side of SEO. As I went through your points I realized that most were very similar to the way I approach this business.
Turns out I'm a marketer by training and experience, but I'm a programmer by blood . . . or at least my mind naturally works in a more analytical, problem solving manner that is consistant with your message.
I'm part of a three person shop, and since we aren't huge it's important for us to wear both the marketing and developer hats on a daily basis. We don't write most of the code (because we're not formal developers) but we do think about things from the programmer perspective and work with several development firms on a very regular basis.
So yes, SEO from both perspectives is needed to provide the best possible results for your clients; if you are lacking in one area or the other, go find a source to supplement that part.
This article is definitely one of the best that I read about SEO. As a developer, I recognized a lot of things you said that I do on a daily basis. It's good for once to see the SEO in terms of an other developer rather than someone who does marketing. I'm anxious to read your future articles!
Thanks, Duncan; it's nice to see this perspective. I come from the coding side, and definitely approach it more from that angle. I think another thing that can help developers is to treat SEO as a problem-solving activity. Generally, you've got a site or a client with a specific SEO issue, and developers are good at tackling well-defined problems. That's what got me back into the SEO game.
Developers have a keen eye for how to integrate with other technologies and this can often lead to great ideas that have SEO benefits (e.g. Yahoo SearchMonkey, Google Widgets, etc). They also have a keen instinct for how to handle malicious attacks such as XSS and can also quickly develop tools to help interpret your analytics.
They generally have a better eye for detail.
Remember the 'missing ; on line 152'? One missing character in an full-page ad-copy probably won't break your ad, but a missing ; on line 152, WILL break your website.
Great post Duncan,
I strongly believe that the SEOs with the most potential are those that really understand web development. After all, the best way to understand search engines is to think like the people who wrote them.
PS Does anyone know of any good resources for learning how to write shell scripts?
Surprising when you see so many ways to accomplish the same task, developers have the unique advantage of creating a uniform method and putting it out there for all to see, use and enjoy.
One facet for example that brought this to light was the VALUE of creating useful tools for the masses. Repetition, optimization whatever you elect to call it, doing less and accomplishing more is always a consideration. For example building links the old fashioned way or just building a word press theme, a plug in, a widget or a software program and submitting your PAD file to let aged authority sites know there is a new addition on the block.
Approach is everything and you have done an excellent job in communicating that. Hats off to a great post...
I enjoyed this blog. Since I have been optimizing my site am looking at websites with a new eye - I check the stats, look at the source code and consider if the site has a decent page rank and why. I do see a lot of sites that were built with no consideration of SEO but why do it if you aren't going to promote it.
I relate to your comments about being self conscious when blogging. Me too!
Thanks for sharing.
Hope developer of my website reads it ;)
every profession or position needs statndards to follow.
in general every one can be every where just if he follows the rules and I think I find your post interesting.
personnaly I dont believe that you can be great SEO and great developer in the same time, but I believe that an efficient SEO should be a web developer in the past
thanks for the list duncan, you are still white hat, because whats the challenge in cheating? and how much better do you ever get?
Good Post Duncan! You made some excellent points here. I would be a little careful about employing the below. Could get you penalized or banned for duplicative content.
“Does a h1 tag actually help? Don't take my word for it, set up two websites that are all but identical. Make up a random keyphrase, put it in a h1 on one site, and in a p tag on the other and see what happens.”
Keep up the great work!
Great post. In 2007, very few business web developers even knew what SEO stood for, let alone how to actually SEO their projects.
In 2009, it will be absolutely required. Every month that goes by without thinking of SEO is a month of lost traffic.
Dead on Greg... I helped roll out 20 sites in late 2006-early 2007, we gave zero thought to SEO on any of them. We just started rolling out the 2008 versions for them and they have been mostly SEO optimized this time.
Proper SEO is almost impossible without the help of the guys coding.
In the entertainment industry, a lot of money is put on triple threat. I think the same goes for the Internet industry; if you can be a SEO/Developper/Designer at the same time, there is no telling want can be done online.
Thank you for writing about SEO from a developer point of view. At times I am a bit overwhelmed by some of the social networking sites that have emerged while I was busy writing code. It reaffirms that the focus on the basics to get the website right is exactly where I have to be right now. I can see the value of link building strategies but that is not how I naturally spend my day and it feels like I am not doing real work when I try to focus on that area. I am happy to do the cross platform testing and look forward to seeing my sites as Googlebot does. I am sure I will find plenty to fix.
I'll bet that your code has far better longevity than most of those social networking sites you refer to.
Many seem to be badly coded, badly resourced, and are quite likely to be a passing fad for the majority of netizens.
Great perspective Duncan. Thanks for the outline.I too like to break it if it works. Nothing get things interesting faster than striping a site down to basics, see what works and what doesn't. It can be tough to tell a client what you are doing without sounding like a mad scientist, (plus I tend to look a little crazy anyway) but you can’t argue with results.I am not actually a developer but I play one online =) When a website is the sole source of business for a customer it can be like asking them to hand over their child to you. To paraphrase your point, “TEST early and Test often,” before posting and then don’t forget to test again in several browsers and different machines. After working for hours to get a page to load fast and look perfect it can be really frustrating to have a client call frantic because his antique browser screws up how you new improved pages look. Props to Developers, Again, nice post.
Thanks for the post Duncan. It is refreshing to hear things from the developers side. I look forward to more.