tags:

views:

162

answers:

7

I would like to change the page names of a ASP.NET site to make them more meaningful and more SEO friendly. My new page names with be more descriptive (ex: My_SEO_Friendly_Page_Name.aspx) My question is, is it enough to change the page names for SEO or do I have to implement the URL rewrite.

What are the differences of one over the other?

A: 

The search engines cannot tell the difference. So one method is not better than the other as far as SEO is concerned. If you implement Url Rewriting, IIS hides the fact My_SEO_Friendly_Page_Name.aspx actually gets mapped to Default.apx?id=1234. To the outside world, it is the same as a page named SEO_Friendly_Page_Name.aspx

James Lawruk
A: 

the result for SEO is the same, it's the implementation that's different.

when you implement url rewrite, any request to http://domain.com/My_SEO_Friendly_Page_Name.aspx will be served with e.g. http://domain.com/index.aspx?id=12 where the 12 refer to the page id in the database, and the page in question has the title 'My SEO Friendly Page Name'

so, this approach is more suitable to implement on large sites which store it's content in a database.

widyakumara
+2  A: 

I think either method workds.

home/blog/this_is_my_entry_page_title.aspx

or

home/blog/this_is_my_entry_page_title

You mainly want to do URL rewriting to avoid using query string parameters. So instead of: home/products.aspx?qid=25

You would want to use: home/products/Cell_Phone

Jack Marchetti
+1 this is basically what I was going to write, if you want to give meaning to your query strings definitely go URL rewriting, also if you have existing pages I recommend URL rewriting. You never want a href to ever go dark.
Chris Marisic
How would it work when the querystring parameter is a guid or an ID which is unique for every user? What would I rewrite this as DoOperation.aspx?q=010GA00D0A0D0?
+1  A: 

Instead of My_SEO_Friendly_Page_Name.aspx use My-SEO-Friendly-Page-Name.aspx for better SEO.

Search engines consider _ (underscore) to be a character and (-) minus sign to be a word-break. More words - more keyword matches.

Leon
Are you sure about that? Because I find totally different conclusion:http://stackoverflow.com/questions/119312/dash-vs-underscore
skyflyer
If you have a url like word1_word2, Google will only return that page if the user searches for word1_word2 (which almost never happens). If you have a url like word1-word2, that page can be returned for the searches word1, word2, and even “word1 word2″. Depends on your goal - are you interested in fewer exact matches or in less targeted but more matches.Look at how Amazon and Internet Marketers format their URLs (with dashes) - their business depends on rankings.
Leon
@skyflyer: Notice how that answer starts with "This is just a guess"? It's generally accepted that using dashes is better, although Google is better than it used to be at deciding in what situations and underscore is a variable, say, and when it's a word break.
DisgruntledGoat
A: 

If you can use .net 3.5 sp1, don't use rewrite. Use routing.

Routing with ASP.NET Web Forms

Fredou
A: 

One issue you may have is if the existing pages are already indexed by the search engines, if you throw up a whole load of more pages which are in fact just the same then you have a lot of dupe content on your site. To avoid the dupe content a sitemap may help to some degree, you can instruct google to delete pages, or to ignore certain url parameters, which would then delete your old pages that use a url param, or you can get your app to http 301 the old pages to the new one.

Symeon
I will be completely removing the older pages. Do I need to keep it around and do a 301?
A: 

You should use 301 redirects, if possible. You can do this in a .htaccess file, however for a large dynamic site it's probably better to use ASP to handle it.

So if you original page was index.aspx?page=52 then your index.aspx script would look up the ID of 52 in your database, find the appropriate "slug" or "alias", say My_SEO_Friendly_Page_Name and set the headers etc in ASP to redirect to that URL.

DisgruntledGoat