John Croson's Blog Home: 04/01/2009 - 05/01/2009

Tuesday, April 14, 2009

Thursday, April 09, 2009

DotNetNuke SEO

I've been reading quite a bit lately on improving SEO for our DotNetNuke website, and quickly realized it just isn't enough to throw up a website, add a listing in a couple of search engines and wait for the masses.

First off, the DnnFriendlyUrlProvider, while writing friendlier URL's than older versions of DNN, could be better. This is why you need the iFinity FriendlyURL provider.

It is free, but keep in mind it is really designed for a single domain site, and presents other issues with some other 3rd party modules. If you fall into that category, I'd suggest you purchase the full version, as it adds additional functionality you'll need and want.

People sit under a Google logo at the Google s...Image by AFP/Getty Images via Daylife

I've learned that Google and possibly other search engines actually penalize you if you create duplicate content.

The duplicate content issue could easily arise if you have a host that responds to both and

You can either try to contact your hosting provider to make changes to your account to create a 301 redirect from one virtual site to the other, or do what I did, and create a script that determines the Server Variable HTTP_HOST.

Image representing GoDaddy as depicted in Crun...Image via CrunchBase

I use GoDaddy hosting, and didn't want to jump through hoops to get this done by them, and decided to manage it myself, using classic ASP. You'll find other methods all over the web in CFM, PHP and the like.

Since I know the order that GoDaddy's IIS servers look for a default document:

  1. default.asp
  2. default.html
  3. default.htm
  4. default.aspx
  5. default.php
  6. default.shtml
  7. default.shtm
  8. index.html
  9. index.htm
  10. index.asp
  11. index.php
  12. index.shtml
  13. index.shtm
  14. home.html
  15. home.htm
  16. home.shtml
  17. home.shtm
  18. welcome.html

I'll set up the following page, named Default.asp, which also redirects to a few testing sub-domains:

<%@ Language=VBScript %>
<% Option Explicit %>

Dim strHttpHost, strPage
strHttpHost = Request.ServerVariables("HTTP_HOST")

Select Case strHttpHost
Case ""
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", ""
Case ""
Response.Redirect ""
Case ""
Response.Redirect ""
Case Else
<script type="text/javascript">
window.location = "/Default.aspx"
<META http-equiv="refresh" content="0;URL=/Default.aspx"/>
End Select

Now all engines know the correct location to find my web.

Reblog this post [with Zemanta]