Dear SEOs and Developers: YOU BOTH SUCK
Hi, my name is Chris le and Im SEER Interactives full-time internal developer. I have a unique position that most developers dont: I work side-by-side everyday next to 30 SEO/SEM people. I sit in both worlds every day. Yes, Im crazy.
1. Developers: Nobody cares about the technology!
Andrew Norcross: I can whip up all the chewy schema-dusted meta fields and rel tags youd ever want, but I havent the first clue as to WHY these matter. (News Flash to SEOs: Your developer hates you)
Answer: Um. MONEY.
Developers, lets be honest: even if you build it, they will not come. Nobody really cares that your site loads in less than 60ms, your JavaScript is minified, and every icon is made from CSS. If your client isnt making money, there is no cloud-based-high-availability-technology in the world that will help you. In fact youre out of a job chump!
The fact of the matter is this: The client whose website youre building is probably doing it because they need to make a dollar, just like you. They have their own expertise. Theyre not developers. Thats why they hired you! If you want job security, then help them make or save money. Unless theyre nuts, clients wont fire you for increasing their bottom line.
For example, show the client how a technology will save them money or tell them how the technology will get them to market faster. Thats the stuff that makes them keep you.
2. SEOs: Dont tell me how to do my job!
Ben Cook: I asked a developer to perform a task in a very specific fashion only to have them do it differently. Why? (Why SEOs Hate Developers)
Answer: Because you didnt EDUCATE your developer.
SEO is a (somewhat) new field for us and we both know it already changed by the time you read this. You asked for a redirect. We think: Ok, the SEO dude wants this this page to show up. Not that one. No problem. So, we made it redirect to another page.
When I started with SEER, I didnt know there was a difference between 301 and 302 because I still got the result I was looking for: it redirected to get to the right page. I didnt know what link juice was so how was I supposed to that 301 and 302 were treated differently? We also don’t call them “301 redirects.” To us, they’re called “status codes.”
If you want to impress your developers, tell them Section 10.3.2 of RFC2616 Status code standards states: 301 is moved permanently while 302 is moved temporarily. I want to make sure the search engine knows this is a permanent move. Then proceed to educate them about what link juice is and how it works. Teach us what “status codes” means to Google.
But, dont TELL us how what we need to do. Nobody likes being told how to do their jobs. EDUCATE us! We love knowing how things work. Thats why were developers!
3. Developers: I propose we make unit tests for SEO!
Ben Cook: I dont have any idea what the problem was, why the developers didnt spot it during development, or why it took so long to fix.
Sorry. That sentence made me cringe.
Developers! I know. Weve got a million moving parts. Multiple cloud servers, databases, version control conflicts, 50k+ lines of code, database integrity issues, callback hell, and incompatible dependencies. Trust me, I get it! (Oh, and can you fix the printer? It says PC Load letter)
The last thing you need is to make sure that every single individual page either redirects correctly, has the right meta tags, have unique title tags, or has custom tracking tags. Theres bigger fish to fry, right? But, wait. Listen. The client doesn’t they want the whole site to fall down. If it does, we’re out of a job. But if the site’s rankings go down because we broke something, the SEO is out of a job. We need to recognize that too. In the end, the client doesn’t care who’s fault it really is. They want a site that work and doesn’t make them loose visibility.
I have an idea. Let’s solve the problem! I propose we write automated unit testing to make sure pages 301 redirect where theyre supposed to. Title tags are what they should be. No JavaScript errors are making Google Analytics fail. Maybe something like RSpec for SEO. What do you say? We can cover both our butts at the same time.
4. SEOs: SEO best practice is development worst practice.
(And vice versa!)
Ive found a common thread in SEOs is uniqueness. Business will want to differentiate themselves from the competition. Thats good! Clients need unique compelling content that drives people to take action. Marketers, you need track everything on the page individually so you can calculate whats driving the most conversions. Every signup form gets a unique campaign tag. Cool, man.
My business classes taught me that the best practice is to differentiate yourself form the completion. Being uniqueness is what sets you apart. But computer science classes teach you that best practice is to make everything the SAME. I’m not saying the analogy is perfect. What I’m illustrating here is that each discipline has different driving philosophies to get to the same the same thing: efficiency and stability.
For example, we might code the title of the post as the title of the page so we can make efficient use of one piece of code. You may want it differently so you can make efficient use of a keyword. If we’re working on a new or existing project, work with us. We just don’t know the field. Most of us want to make your ideas work too. Show us the ropes like you’re training a new guy. A little education goes a long way.
5. To both: Its all about the customer, stupid!
In the end, whether youre a designer, a programmer, an SEO guy, a finance guy, whatever. We all have different ways and different philosophies in our disciplines. We should be learning from each other. But in the end, none of it matters if the client isnt reaching their goals.
Now, that requires that clients (should) know who their customers are and what it takes to make a sale. If they dont know that, then the client has a problem. Its the client who has no clear goals or expected outcomes. Clients with no goals are the blind leading the blind.
The least we can do as consultants is to help the clients open their eyes, help them figure out what theyre goals should be. SEO is important. More than ever! As much as I hate to admit it, I think Google can almost make or break a business these days.
All of us need to be focused on making sure that the client stays in business. Everyone should love what they do for a living. Thats why theyre all in business.
Bonus tip:
Bonus tip: Did you know that every server in every languages default redirect is a 302? You have to explicitly specify, in the code itself, every single time you want a 301.
This code will 302 redirect:
<?php header(Location: http://www.domain.com/new_page.php); ?>
<?php header("Location: http://www.domain.com/new_page.php"); ?>
This code will 301 redirect:
<?php header(Location: http://www.domain.com/new_page.php, TRUE, 301); ?>
<?php header("Location: http://www.domain.com/new_page.php", TRUE, 301); ?>
Notice you have to code it in or else the server will default to a 302!
(ps: To my all my Seer peeps: Thanks for being patient with me as I learn SEO along the way.)
- Update 1: Single quote, double quote bug in bonus tip. Missed that! Thanks @halfbrown!
- Update 2: Thanks to @5ubliminal. A technically more correct version of the tip:
$code = 301; $status = Moved;header(Status: {$code} {$status});
header({$_SERVER['SERVER_PROTOCOL']} {$code} {$status});
header(Location: /somewhere/over/the/rainbow); - Update 3: Corrected typo. Extra word from nowhere.
- Update 4: Added links for “link juice” and RFC2616.
Posted: 07.13.11


Alan Bleiweiss:
And this article alone, is the perfect reason why someone like Chris Le needs to be in charge of projects involving SEOs and developers. Or teach a class in how both sides need to get out of their own myopic ways.
Koozai_Mike:
Good post, although as an SEO I’d never pick Ken! We’d be more M Bison…
Plus it looks like we’re taking a beating and are about to be fireballed.
Norcross:
Even though I technically “suck”, I agree 100% with this :)
But in regards to the specific quote of mine, it goes back to the idea of education. I can (and want) to make it so everyone is happy with the work I’ve done, which includes making money. My beef is that when an SEO gives me a blind task (i.e. the chewy meta data), they often don’t indicate what it’s supposed to do or how it’s relevant to the site. I have no way of knowing if (a) it even works (b) if it’s being done properly and (c) if it conflicts with anything else. If I know the WHY of the task at hand, I may be able to work through something that is positive for both parties.
Ruth Burr:
Hooraaay for user education!
Chris Le:
Thanks so much. Things work so much better when we actually work together. Ya?
Steven Ferrino:
Great article. I haven’t been on both sides of the fence I am both sides mashed into one.. a long time developer that started doing SEO a few years ago and now do both, imagine the evil :).
These days I just have problems with designers who question why the phone number has to be in the most visible spot and covering his perfectly transitioned gradient.
Michelle Lowery:
So, will this be a presentation at a conference anytime soon? Because it should be! ;-)
5ubliminal:
My 2-Cents for your BONUS:
$code = 301; $status = “Moved”;
header(“Status: {$code} {$status}”);
header(“{$_SERVER['SERVER_PROTOCOL']} {$code} {$status}”);
header(“Location: /somewhere/over/the/rainbow”);
To be more specific.
PS: JS minifcation/CSS/HTML does not count as developing. Dynamic stuff makes developers, compiled binaries makes real developers.
Chris Le:
@norcross Dude, I totally agree with you.
I think the main point really is that both sides ends up using the other like a black box. And we all know what it’s like to work with black boxes. I’ve schooled some peeps here in the office on the technical stuff… but I get school’ed when I talk about SEO. I’ve learned a lot since I got here only to learn, I know so little compared to my coworkers.
Now… if I could only explain “algorithms” and “machine learning” is in laymen’s terms….. :)
Chris Le:
@steven They’re artists. They’re another breed of human altogether! LOL!
Chris Le:
@michelle Wow.. great idea!! I will keep that one in mind!
Chris Le:
@5ubliminal: Thanks! Love how you put it: “HTML does not count as developing.” For those who are actually using the code above: 5ubliminal’s code is the more technically correct.
I simply wanted to point out that by default, servers will redirect using 302 unless explicitly told. I’ve seen it with our clients. After a round of SEO/Client back and forth I’m called in to check things out and it’s painfully obvious: The developer just thrww the header() method out there without specifying 301 in the arguments.
5ubliminal:
Any developer can learn SEO while it’s a whole different thing for SEO’s to learn programming. I learned SEO back in 2005 and coding (C, C++) in 1998 and PHP in 2002. And I do SEO feeling a bit sick to my stomach and bored to death. But I feel awesome, free and always in the loop writing code [C++ but PHP will also do :)].
Developers RULE! (Thumbs Up if you agree)
5ubliminal:
There another breed of developers. Those who “learn” online, from pseudo-tutorials and never read a book. Those are a danger to themselves and others. Those who download data from an URL by output buffering an include(INSERT URL HERE).
Those are ticking bombs, shame to developers, the “online” educated generation of so-called coders. May God protect SEOs from them… :) Because they need to be educated in both coding and SEO.
Jody Raines:
Chris, Great points, and almost becomes a marketing perspective. The only things missing from your formula are the social media manager and Conversions or Sales manager… Unless there are reasons to convert, the best optimized site in the world is only bringing traffic. How that converts into leads and sales is the other (and equally important) part of the story.
John andrews:
Everyone’s been “winging it” for years. Now, those who know what they’re doing can win. Simple, really.
If you’re a “developer” and you don’t know server response codes, you suck. Take the blame. If you’re an seo and ask for a “redirect” but not a “301 redirect”, you suck,too. And if you are a developer but need to be told more than that or you’ll choose to substitute in a 302 on your own, you suck the worst (because you don’t read/ learn/ pay attention).
I’m an seo and I don’t need to educate my developers… they need to listen carefully and I need to communicate clearly. Then we will all know who sucks.
Chris Le:
@5ubliminal *thumbs up*
I only agree with you half way. I think both people can learn either one. But there are people who have the talent for one vs the other. I do technology. I’m pretty good with people. I will probably be a better with technology than I’ll ever be at really building relationships. Link building is probably not in my future :)
Jon D.:
As a developer who also walks both sides of the fence with the SEM crowd (plus I love SEO & PPC), I applaud this post. Too often my dev friends turn a blind eye to the reason a request is made. A favorite question of mine when approached with a new dev task is “Why?”, because it starts a conversation that gets to the heart of the matter.
PS – I agree whole heartedly that one cannot learn by tutorials alone. Those are fine, but books, mentors, peer code reviews, and even auditing/attending a class at a local college are all things that can and should be done by developers who want to stretch their wings and actually learn.
PPS – As a bonus to the original bonus, it has mixed quotes and should be fixed:
Which is why I generally prefer to use single quotes in PHP so I won’t be caught in a case like the above. Also, single quotes vs. double generally provide faster performance since the interpreter doesn’t have to parse the single quoted content.
Jon D.:
I totally messed that up… the original PHP example is what I was referring to:
<?php header(Location: http://www.domain.com/new_page.php, TRUE, 301); ?>
Adrian Drysdale:
These days most companies pretty much expect you to be a developer, seo, sem, genie in a bottle all rolled into one.
Adrian Drysdale:
Where the hell is throwdown friday! I’m going to demand this every week until there is an explanation.
Jason Pamental:
Great article Chris! It illustrates a point I’ve tried to make too many times – it’s not what you know, but how you can communicate what you know (and why it’s important)! The whole key between designers, developers, SEM’s, clients and everyone else is communicating the intent/importance of what is being requested – not necessarily how it should be executed. We all have our expertise (some have more overlapping skills, some less) so what we have to focus on is for the client: communicate what you are trying to accomplish or what problem you want to solve; for the designer or SEM: communicate how/why you want to solve those problems in this particular way; for the developer: if there is a different/more efficient/more productive way of doing something, be able to explain why and what implications that has for the solution/approach being implemented.
Thanks again -
Cheers!
Jason