Dear SEOs and Developers: YOU BOTH SUCK

Hi, my name is Chris le and I’m SEER Interactive’s full-time internal developer.   I have a unique position that most developers don’t:  I work side-by-side everyday next to 30 SEO/SEM people.  I sit in both worlds every day. Yes, I’m crazy.

1. Developers:  Nobody cares about the technology!

Andrew Norcross: “I can whip up all the chewy schema-dusted meta fields and rel tags you’d ever want, but I haven’t the first clue as to WHY these matter.”  (News Flash to SEOs: Your developer hates you)

Answer: Um.  MONEY.

Developers, let’s 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 isn’t making money, there is no cloud-based-high-availability-technology in the world that will help you.  In fact you’re out of a job chump!

The fact of the matter is this: The client whose website you’re building is probably doing it because they need to make a dollar, just like you.  They have their own expertise.  They’re not developers.  That’s why they hired you!  If you want job security, then help them make or save money.  Unless they’re nuts, clients won’t 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.  That’s the stuff that makes them keep you.

2. SEOs: Don’t 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 didn’t 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 didn’t 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 didn’t 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, don’t 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.  That’s why we’re developers!

3. Developers:  I propose we make unit tests for SEO!

Ben Cook: “I don’t have any idea what the problem was, why the developers didn’t spot it during development, or why it took so long to fix.”

Sorry.  That sentence made me cringe.

Developers!  I know.  We’ve 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.  There’s 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 they’re 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!)

I’ve found a common thread in SEOs is uniqueness.  Business will want to differentiate themselves from the competition.  That’s 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 what’s 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:  It’s all about the customer, stupid!

In the end, whether you’re 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 isn’t reaching their goals.

Now, that requires that clients (should) know who their customers are and what it takes to make a sale.  If they don’t know that, then the client has a problem.  It’s 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 they’re 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.  That’s why they’re all in business.


Bonus tip:

Bonus tip:  Did you know that every server in every language’s 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:”); ?>
<?php header("Location:"); ?>


This code will 301 redirect:

<?php header(‘Location:”, TRUE, 301); ?>
<?php header("Location:", 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.


We love helping marketers like you.

Sign up for our newsletter to receive updates and more: