Click here to Skip to main content
Click here to Skip to main content
Go to top

10 SEO tips for your ASP.NET website

, 9 Oct 2007
Rate this:
Please Sign up or sign in to vote.
10 tips for search engine optimization (SEO) for your ASP.NET website.

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 Smile | :)

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:

Screenshot - 01_seo.jpg

The first info we need is the description:

Screenshot - 02_seo.jpg

Then we need the host header information:

Screenshot - 03_seo.jpg

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:

Screenshot - 04_seo.jpg

Use "example.com" - your URL name without "www" - as the host header.

Screenshot - 07_seo.jpg

and configure it as a permanent redirect:

Screenshot - 06_seo.jpg

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:

//assuming, that your <head runat="server" id="myHead"> 
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: Digg!

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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

hartertobak

Germany Germany
No Biography provided

Comments and Discussions

 
SuggestionMessage Automatically Removed PinmemberAyesha Sharma17-Apr-14 23:29 
SuggestionMessage Automatically Removed PinmemberAyesha Sharma27-Mar-14 1:19 
QuestionClose, but slight difference in meaning PinmemberMember 904013720-Sep-13 13:12 
GeneralVery Nice PinmemberMember 101999499-Aug-13 5:42 
GeneralMy vote of 4 Pinmembermrdreamlife1-Jul-13 23:23 
GeneralMy vote of 5 PinmemberRohan Leuva19-Nov-12 21:58 
GeneralVery Nice Pinmembergherbas200027-Apr-10 2:40 
QuestionC# Code example for links to del.ic.ious Pinmemberthetallguy26-May-08 16:53 
GeneralRedirection and query-strings PinmemberRichard Deeming22-Oct-07 4:56 
Generalnice guide PinmemberBrent Lamborn9-Oct-07 16:57 
GeneralThanks. Here are some of my thoughts [modified] PinmemberMichael Sync9-Oct-07 16:52 
GeneralRe: Thanks. Here are some of my thoughts Pinmemberhartertobak9-Oct-07 23:29 
GeneralRe: Thanks. Here are some of my thoughts PinmemberMichael Sync9-Oct-07 23:49 
GeneralRe: Thanks. Here are some of my thoughts Pinmemberhartertobak10-Oct-07 1:41 
GeneralRe: Thanks. Here are some of my thoughts Pinmemberhartertobak10-Oct-07 1:44 
GeneralRe: Thanks. Here are some of my thoughts PinmemberSEOgroup17-Apr-10 9:28 
GeneralThanks for this excellent article Pinmembertonyvuolo9-Oct-07 6:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web04 | 2.8.140922.1 | Last Updated 9 Oct 2007
Article Copyright 2007 by hartertobak
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid