Introduction
Here are 10 tips on SEO for your ASP.NET website. I'm sorry that some of the screenshots contain German language text, but I hope you'll get my point despite that :)
1. Avoid duplicate content
A mistake made very (very) often: when you register a URL and point it to your web server, you're using the "www"-subdomain in most cases. "www" is nothing else than a subdomain. Follow these instructions to get rid of duplicate content:
Imagine you're the owner of the domain "example.com" and you're configuring your web server using the IIS MMC and creating a new website:
The first info we need is the description:
Then we need the host header information:
In the screenshot above, you can see a very important thing: the host header for the configured website is "www.example.com".
After you've finished the configuration, you can type "http://www.example.com" in your browser and everything runs fine. Now, type "http://example.com" and ... the web server answers as well.
For search engines, this is a major problem - which URL is the main URL? When content gets published, which URL is the one where the information was published first? For Google and other search engines, "www.example.com" and "example.com" are two different URLs.
Avoid that by configuring a permanent redirect.
Create a second website on your web server:
Use "example.com" - your URL name without "www" - as the host header.
and configure it as a permanent redirect:
This way, "http://example.com" redirects to "http://www.example.com".
Well, now some of you will think that a JavaScript redirect or a Flash redirect will do the same, or even something like:
Response.Redirect("http://www.example.com");
But, this is not true. The web server will answer to the above shown redirects with a "HTTP/1.x 301 Moved Permanently" response. So the search engine get's the info that this resource has permanently been moved. This way, all ranking-power, link-power, etc., moves to "http://www.example.com", which is a major factor affecting the ranking of your website.
2. Avoid duplicate content , part II
Well, when requesting "http://www.example.com", your web server will deliver a certain page - by default, it's the "Default.aspx". Many websites, codeproject.com as well, redirect and link (internally) in a wrong way: open a browser and type "http://codeproject.com" - you'll get redirected to "http://www.codeproject.com/index.asp" - "index.asp" seems to be the default-site for the domain www.codeproject.com - but redirecting to it from "http://codeproject.com" or linking to it within any page of www.codeproject.com is just a big mistake.
No matter how big the influence in your site's ranking is, google's PageRank is still a ranking factor. So while www.codeproject.com has a PR of 7, www.codeproject.com/index.asp has a PR of 5 - while these two pages deliver the same content. This is bad, and has a very bad influence in CodeProject's ranking, because the two URLs deliver the same content. Google doesn't know that "index.asp" is the root-site of CodeProject, so Google tries to evaluate (through algorithms) which site is the more important one. But the major problem here is that all the link-power, ranking-power, etc., get's divided - CodeProject could rank a lot better without having "index.asp" in the search engine's index.
To make sure that your site's ranking reaches the maximum, you should concentrate on one URL - make sure, even in internal link building (links to the "Home" page of your website), that you link to your domain name: www.yourdomain.com, instead of www.yourdomain.com/default.aspx.
3. Choose individual, good <title>s
This is very easy to achieve, and has a big influence on your site's ranking: don't use static titles. The <title>
tag is one of the best ways to optimize a site for a special topic or keyword. Don't use a dozen keywords in the title
tag, because you're "paying in" for each and every keyword - "paying in" means, that the weight of your site gets divided for all the keywords mentioned in the title
tag. Choose one or two keywords, or a keyword-combination, to achieve relevance and a good ranking.
While working with Master pages, there is an easy way to do so:
if (Request.CurrentExecutionFilePath.Contains("example.aspx"))
{
HtmlTitle title = new HtmlTitle();
title.Text = "Example";
myHead.Controls.Add(title);
}
So if you have three sites, the Homepage, the AboutMe page, and the Contact page, you should give these three pages individual, useful titles. The less keywords you use, the better the influence for these keywords will be. Same applies for <meta name="keywords"
and <meta name="description"
, but the title
tag has the biggest influence nowadays.
4. Clean up your source code
Something hard to believe but still true: clean up your source code and try to minimize the code as much as possible. Follow these rules:
- don't use inline CSS, use external stylesheets whenever possible
- don't use inline JavaScript, use external .js files instead
- don't leave HTML-comments
- don't use massive line-breaking (twenty lines with only a linebreak or something similar)
- don't use viewstate when not necessary
- don't use a
<form runat="server>
when not necessary (comes with hidden fields)
The better the relation between the content (==text) and the (HTML/CSS/JavaScript) code, the better your ranking will be. The smaller the source code, the better this relation will be.
5. Make your site crawlable
Don't:
- don't use Flash/Silverlight to show information
- don't use Flash/Silverlight for menus
- don't use JavaScript-based menus
- don't use button-based menus
- don't use intro-pages
Do:
- do use a sitemap (CP-article: Simple Sitemaps in ASP.NET)
- do use simple
<a href>
tags whenever possible
- do use the "
title
" property for <a href>
- do use the "
alt
" property for images
- do use RSS (syndicate all your content, when possible)
- do use pings for search engines (use http://pingomatic.com/)
6. Use <strong>, <h1>, <h2>, <h3>
Use the HTML markups <strong>
, <h1>
...<h6>
regulary - use them to structure the site's content. These markups are made for weighing some words more than others - so it is for search engines. Use these markups whenever it's useful to do so.
7. Validate your source code
Use the wonderful HTML-validator at http://validator.w3.org to validate your site. If it's valid, there will be no punishment for a "bad technical solution" - use the validator to find problems, get rid of them, and find a better ranking instead.
8. Get to know your users
I don't know about you, but I'm building websites for users in the first place. So my intention is to get to know how I can achieve more interests for my site. The first thing is to find my audience - the better my ranking is, the more visitors I will have. So I'm using keyword-tools to find good keywords and keyword-combinations to find the keywords I need to optimize for (because that's what the keywords' potential visitors will use):
Find the good keywords, look at your competitors, and start optimizing.
9. Keyword density
Keyword density is very important for a site's ranking for a special keyword. Imagine you have a site about "free source code" - well, you should defiantly try to mention this keyword combination as often as you can - as long as it makes sense, of course. Try to reach a keyword density bigger than 3.5 - so mention "free source code" 3.5 times per 100 words.
10. Get linked!
Links to your site have the biggest influence to your sites' ranking. Try to get linked from as many other websites as possible. Use social bookmarking and other social services like digg.com to get more links and more visitors. Example: digg.com-integration of this article:
11. Use "speaking" URLs
Use www.urlrewriting.net for speaking URLs. The more keywords you'll get in your URLs, the better the ranking could be.