Table of Contents
Search Engine Optimization (SEO) is one of the most misunderstood concepts in the world of web development. Many people view SEO as a product that can be sold with guarantees to jump a website up to the top of the Google search ranks. If you are a web developer then you know that this just simply isn't the case. However, if you are simply a client looking to have an application built, shelling out your hard earned cash for the number one spot on Google sounds like the best investment you could ask for. I have recently been bombarded with questions about SEO and today topped it off when someone close to me approached me with a project wherein the idea was to get at least the number three spot on Google. When put so simply this sounds like an audacious but very achievable goal.
An "SEO expert" would tell you that SEO is a finely tuned machine that is easily reproducible with any website, and they will bottle that up into a neat little package that they can sell to you for a hefty price. In my world an SEO expert is simply somebody who knows just enough about the web to fool others into thinking they are web gurus. In my opinion they are an unneeded and unwanted middle-man in the world of agile software development. Setting aside my obvious disdain for "SEO experts", let's get down to the facts about SEO as a developer sees them.
A developer does not view SEO as a finely tuned machine and would never tell you that the traffic results of one site could be easily translated to your site. SEO is a constantly evolving dance between the web developer, the client, and the constantly changing nature of the web. There is not, and never will be, one sure-fire way to boost your site's popularity up to any pre-defined point and keep it there for eternity. The days of spoofing your content with a million keywords and starting sister sites to link back to your target site are long over.
The true nature of the web is "organic" (another buzz-word that is consistently abused) which means that it is always changing and always improving itself. Trying to build an easily reproducible process for controlling your website's exposure on the web is like trying to control the weather. All you can hope to do is try to make predictions based on current conditions and trends, and plan accordingly. Even then most of your predictions will be wrong and you will be caught in a thunderstorm wearing shorts more than once, that I can guarantee you.
The world wide web is a fluid and agile medium. The way a search engine decides to rank you, the way end users share content, and the many ways end users can access your site can all change with the drop of a hat. Social networks like Facebook, Twitter, Google Plus, LinkedIn, etc are quickly evolving creatures and what they will do next is anybody's guess. The plethora of devices through which a person could find themselves consuming your content is so vast that I wouldn't dare try to list them in a single blog post. Because of the nature of the web and the expediency at which that nature changes, there is no way to encapsulate any aspect of website exposure for very long.
This is why SEO experts are, in my opinion, not fit to lead the way in this arena. They so often want to pin down the technical details of how the web works and find ways to take advantage of it in a way that benefits their clients. Even if they succeed in doing this it will only be for a short time before something inevitably changes and they have to start all over again. SEO takes work no matter which way you slice it, but this old mentality of trying to open the hood of the car, map out its inner-workings, and develop a plan to take advantage of it, is dead.
So how do you drive traffic to a website in an environment that is inherently unpredictable?
If there is no persistent technical standard to subscribe to then the only thing we can subscribe to is a goal. The web is constantly evolving in unpredictable ways, but unlike the weather, it is always evolving with a purpose or goal. In order to set your SEO goals, you will need to understand the goals of the web. Only when you reach that crucial understanding can you begin to try to evolve together in harmony. If the web is fast changing and agile, then so must you be. If the web is aiming to provide better and more relevant content to its users, then so must you be. If the web is active and alive with current events and up to date information, THEN SO MUST YOU BE! When dealing with the web you would do well to heed the advice of the old adage "If you can't beat 'em, join 'em." You cannot "master" the web; nobody can, and anybody who claims otherwise does not understand the web as well as they would have you think they do.
Once you've shifted gears and have started to focus on the real nature of organic SEO you can begin to incorporate helpful guidelines into everything you do in relation to your website. The key here is to realize that client and developer must work as an agile team if the goal of well-thought-out exposure of your website is to be achieved.
No one person can effectively boost a website's popularity.
Unless you happen to be both client and developer then you cannot hope to accomplish any form of decent SEO by yourself. Good SEO only happens when both the client and developer form a sort of symbiotic relationship with the common goal of increasing exposure. Often there are projects where the application seems to come together so smoothly and SEO seems to flow dynamically almost as if it were an unintended side-effect. This is because the client and developer are on the same page and have the same goals in mind. They utilize an agile workflow to overcome obstacles quickly and easily. Good communication and working together is what spawns some of the best web applications currently available today and those same team dynamics are what spawn good SEO as well.
A developer's job is definitely an intense job. He/she has to stay up on all the current technological trends, understand the ways in which the web is evolving, and educate his/her clients in regard to what options they have to overcome certain obstacles. A good developer must adopt and share the goals of the client. A good application with good SEO will never happen if the developer is incompetent, uneducated, or believes himself to be omnipotent (trust me when I tell you that this is not uncommon).
Believe it or not it is not the developer's sole responsibility to deliver a working application that meets all of the client needs, has great web exposure, and begins to generate the desired traffic. This is the mentality of many clients and it is a common reason why they are often not satisfied with the end result. In much the same way that it takes two to tango, both parties must be involved for a successful application to be delivered. The client must be in constant, almost daily, communication with the developer. You cannot simply hand off a list of requirements to a development team and hope to get what you want.
Web development is not like buying a car; you can't just pick out one you like and buy it, maybe adding a few customizations here or there. In fact it is more like buying a house; only time, use, and experience will allow you to suddenly realize what you really wanted all along. The nice thing about software development utilizing an agile workflow is that when it's done right it's okay to find out something needs to be different. When a client buys a house and decides they do not like something about it they are often out of luck unless they want to pay a lot more money. In software this is not the case. As long as client and developer work closely they can meet and overcome trouble before it becomes a time and money waster.
Good developers must realize that their clients do not have all the tools necessary to build a functioning, well-designed application. They must understand and help to bridge this gap in knowledge and experience that the client has. Developers that get frustrated when clients don't immediately understand something will not get far in this industry.
Good clients must realize that the developer does not immediately share your same vision. Extra time and care must be taken to ensure the full idea is absorbed and understood. Starting out this can be a somewhat lengthy process for both parties, but in the end it is worth it. A good client must do his/her best to articulate his/her goals and work closely with the developer, monitor progress, and attempt to identify hurdles before they become brick walls that need to be torn down. While a good developer must educate the client and give them the tools they will need to continue to grow their website once development is complete, the client must also understand how much work they will actually have to do.
Good SEO takes a lot of work. I would go so far as to argue that good SEO cannot occur if you don't have a passion for whatever it is you are trying to promote. There is a reason why SEO manifests itself almost as a side-effect in some projects.......because it IS a side-effect in some projects. Considering everyone involved with the project to be part of one team will greatly simplify the way you think about things and a better product will be delivered because of it.
Now that we understand the nature of the web, we can put in place some guidelines that will steer you in the right direction when dealing with SEO. In Part I of this tutorial I will go over the developer guidelines and then in Part II I will continue with guidelines for the client and why it is so important for the client to be passionate about what they do.