Don't take our word for it, see our SEO results for yourself. When selecting a SEO firm make sure to ask for examples of their rankings. We only employ ethical SEO practices (white hat SEO practices) to achieve the best results for our clients.
Best SEO practice dictates that duplicate content, the same content found on multiple pages of one domain, is widely frowned upon. Most of the time, duplicate content is unintentional, either due to a lack of knowledge of its destructive consequences or just out of blatant disregard.
That being said, there are times when you do need duplicate content on your website. Consider an ecommerce site, particularly a product catalog, for example.
In a product catalog, it is not uncommon for the same product to be associated with multiple categories. For this very reason you could possibly have the same content on multiple URLS…
… which will all show the product details for one specific product. Now ideally we want search engines to only index one of those pages and ignore the other two. Fortunately, Google, Bing and a few other search engines, allow us to circumvent this problem rather easily by using the canonical link element. The canonical link element, which is put in the HEAD section of an HTML document, tells search engines the preferred location for a particular URL. So in order for the search engines to ignore two of the pages from our example above, and only pay attention to the page we want indexed, the following line can be added to both pages we do not want indexed:
[sourcecode]
[/source]
Now when the search engines visit the pages with that element, they will only consider its canonical location in their indexes. It should be noted however, that you should still avoid duplicate content at all costs, but there are some times when your application truly needs it, and for this, the canonical link element is perfect.
ASP.NET is notorious for generating some ugly markup in the HTML it generates. The idea behind search engine readability is to get the relevant content as close to the top of the HTML Source as possible.
One of the biggest culprits in terms of unnecessary code at the top of the page is ASP.NET’s VIEWSTATE. VIEWSTATE is ASP.NET’s way of making it easier for the programmer and end user to remember certain pieces of information about a page as it is being used. It does this via a hidden form field. The best way to minimize the amount of VIEWSTATE text that appears in the HTML source code is to disable it (it’s enabled by default) and only add it when you need it. Another technique for dealing with VIEWSTATE is to move it to the bottom of the HTML source code. A while back I wrote a blog post on how to achieve this:
A technology that ASP.NET employs that “makes things easier for the developer” and offers a rich end-user experience is the AJAX Control Toolkit. The AJAX Control Toolkit lets you quickly implement things such as modal dialogs (e.g., Lightbox), form field enhancements and partial page updates. The problem with using it is that it also adds an enormous amount of code to the HTML output. The best way to minimize this is to use an alternative to the Toolkit such as jQuery or MooTools. None of the code gets auto-generated in these libraries and the end result is usually nice clean HTML source code.
If you follow the above suggestions, you can greatly reduce the amount of unnecessary code in your HTML output. One of the key points to remember is that anything ASP.NET auto-generates, though great for you as a developer, probably isn’t that good for SEO.
A couple months ago, Google announced that it does consider a site’s speed as part of its ranking algorithm. Although the weight of the overall ranking that is attributed to a site’s speed is relatively small, it is still something that should be part of a company’s SEO efforts. There are a variety of tools available to test your site’s speed and they all seem to analyze similar metrics: network, cache, and JavaScript events.
A tool that we ran against some of our sites is Google’s Page Speed (http://code.google.com/speed/page-speed/), which is a free Firefox plugin. After running the tool, we were presented with a Page Speed Score, which is a number between 1 and 100 that is based on a number of criteria, including browser caching, downloads across hostnames, static content, minifying CSS, etc. Although some of the items are a little more difficult to tweak without a major overhaul, we noticed that some items can be tweaked with minimal effort. Some of the easy fixes we were able to implement to boost our score (by an average of 8 points) were:
Setting our images to cache for a week
Making sure all our images had width and height dimensions assigned to them.
Optimizing certain images to reduce their size
Implement the compressed CSS and JavaScript files that were automatically created
We then got curious and ran the tool against several popular websites, such as Google News, Apple, Yahoo, Dell and Microsoft. Needless to say Google News had the highest score (98, no surprise there) and Apple had the lowest (71, kind of surprised). The one metric that this tool does not measure, which I would like to see, is server load time. Overall, we have found Google’s Page Speed tool to be a valuable part of our SEO implementations projects.