iFinity Blogs 

Human and SEO Friendly Urls in DotNetNuke 5.1.2

Sep 30

Written by:
Wednesday, September 30, 2009 9:46 AM  RssIcon

I’ve had some feedback lately which usually goes something like this:

“Now that DotNetNuke 5.1.2 has SEO Friendly Urls by default…”

The rest of the sentence is irrelevant – what I’d like to focus on is the assumption that the latest version of DNN has SEO Friendly Urls.

Now, anyone who regularly reads my blog will know that posts generally fall into either a self-interest post (telling you something I have for you) or an information post (telling you something I know).  This post is going to fall into both categories.  I’m going to tell you things that I know, and in the process of doing that, tell you how I’ve solved that problem with something I have.

But first, a recap.

What is an SEO Friendly Url?

I’d like to offer a definition on this one:

“An SEO Friendly Url is a globally unique Url that communicates to both humans and search engines what is the most important content on that page, within the standards and conventions of the web, and in the simplest way possible”

Note that I include humans on purpose : the entire reason for building web pages is so that humans can read and understand the content. 

The original Urls for DNN looked like this : mysite.com/default.aspx?tabid=36

That in no way explained what was on the page, or anything about it.  About the only thing it did was communicate to developers that there was a database table behind the query, and that it contained probably at least 36 rows of data, and it runs on an ASP.NET platform. None of this information is remotely useful to ordinary humans.

The next improvement for DNN was the ‘Friendly Url Provider’, which transformed the Urls in DNN to look something like this: mysite.com/home/tabid/36/default.aspx.  This improved the context of the Url, because it showed that Tabid 36 was the Home page of the site, so we could expect to find, well, home page content.   However, it still fails my definition because it isn’t “the simplest way possible”.

From about DNN 4.6 (using memory here) onwards, there existed an option called ‘urlFormat=”HumanFriendly”’ which could be used in the web.config settings for the FriendlyUrlProvider.  This little ‘hack’ was passed around amongst the forums like a secret handshake, because it transformed your urls into something like this: mysite.com/home.aspx, leaving other DNN users to wonder how you got rid of the infamous /tabid/36 from your Urls.   This Url format is definitely more SEO friendly, because it passes the definition for ‘simplest way possible’.

And now, in DotNetNuke 5.1.2, the ‘humanFriendly’ option is standard upon installation.   Which brings me back to my original statement, which is ‘Now that DotNetNuke 5.1.2 has SEO Friendly Urls by default…

Assessing the SEO Attributes of the DotNetNuke Urls

Now, don’t get me wrong, because you might think I’m about to criticise the DotNetNuke project.  I’m not.  What I’m going to do is point out where, if performing SEO on your site is important, the standard framework doesn’t meet all of your requirements.  It’s not a criticism at all, no more than saying ‘DotNetNuke does not have a built in Social Networking suite’.  The DotNetNuke platform is used to build specific sites, and as such can’t be all things to all people.  It does an excellent job of being an adaptable, extensible platform, which you can then use to build Search Optimised sites, or Social Network sites, if that’s your thing.  There are many, many reasons why you wouldn’t bother with any SEO at all on your site.  Not all sites are built to be found.

Going back to my original definition, there’s a couple of things I’m going to higlight:

“An SEO Friendly Url is a globally unique Url that communicates to both humans and search engines what is the most important content on that page, within the standards and conventions of the web, and in the simplest way possible

I’ll expand on those three highlighted points with regard to DotNetNuke Urls:

1. Globally Unique Url :  One of the big problems with DotNetNuke is a feature of it’s evolution.  DotNetNuke has evolved through the three stages of Urls as outlined above, and for backwards compatibility reasons, all three formats still work.  Try it yourself : on your site, you will be able to request /default.aspx?tabid=xx, /tabid/xx/default.aspx and /pagename/tabid/xx/default.aspx.  In fact you can put in /my-site-has-duplicate-content-oh-no/tabid/xx/default.aspx and all these urls will work.  These are not globally unique Urls.  The older your site, the more trouble you have, because you’ll have been indexed in one of the old formats, people will have linked to your old pages, and you’ll just generally have link mayhem.  To make it worse, your home page is available on as many as 5 different urls – all duplicate content, and all to the most-linked page on your site.

2. Standards and Conventions of the web : Now, I’m not for one minute going to try and convince you that DNN urls aren’t within the W3C standards – of course they are – it’s one of the few areas where browsers and servers actually adhere strictly to the rules, so you have to use legal Urls.  But, from (1.) above, it won’t tell browsers and search engines that you have changed the Url for your content, and that they should update their bookmarks and indexes.  Strictly speaking, if you change a page location, you should forward the user onto the new address and let them know to always look at this new address for the content.  Of course, this is known as a ‘301 Redirect’.  

The other part of the definitions is ‘conventions’, and I snuck that one in there on purpose.  Really what I mean is ‘within the current trends’.  One of these trends is putting hyphens in between terms in your url.  In reality, there is no difference in pageone and page-one in terms of the W3C standards, but it’s better for humans and better for search engines if they can easily parse the url and grasp that it is two words, and not some new term coined by a marketeer.  Another trend is to remove encoded characters and simplify down to the ASCII set that is valid for Urls.  And DotNetNuke can’t do either of these : two-word pages have the values appended together.  Pages with accented or unicode only characters are transformed into encoded values.

3. Simplest Way Possible : this just means, in as few characters as you can, and as little superfluous information as you can.  That means no tabids, no page extensions, no database id’s.   Now, as previously mentioned, the DotNetNuke ‘humanFriendly’ url option gives you nice simple Urls  - but only until you add a content module.  Most content modules use the base page to display content, and add extra parameters to the Url to provide all the other content.  For example, the blog module uses /entryid/xx/blog-entry-name as the url.  And when you go to that page, the DNN Friendly Url Provider reverts to the old /blog/tabid/yy/entryid/xx/blog-entry-name format.  For important pages in blogs, forums, ecommerce and events modules, this is not what you want.

Getting True SEO Friendly Urls in DotNetNuke

This is where the self interest part of the post comes in.  I’ve solved all of these issues and others I haven’t even touched on.  I’ve literally spent well over a thousand hours plugging away working through all of the issues that come with the standard DotNetNuke Friendly Url Provider and coming up with solutions.  It’s been fun – a genuine technical challenge, but I don’t continue to work on this stuff just for grins alone – I’ve done it so you don’t have to.

So let me say it clearly : DotNetNuke 5.1.2 does not have SEO Friendly Urls any more than DotNetNuke 4.6 had.  While I think the default human friendly Urls are a good idea and make a standard installation look better, most of the SEO issues are the same as they have been all along.  True, it’s the most immediately obvious part and partial answer to the question ‘why are the Urls so ugly?’ – but you need to solve many more issues than just the most obvious.

I don’t normally overtly push products in this blog, but here’s my call to action : download and trial the Url Master module today.  It’s a quick and painless install and will not only solve all of your Url-related SEO issues for your DNN site, but it will also give you much greater control over the Urls as well.

Tags:
Categories:
Location: Blogs Parent Separator Crafty Code

7 comment(s) so far...


Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

Bruce, I know this is a little late putting a comment on this article, but I cannot believe someone hasn't put their stamp of approval on this. Maybe it is that most DNN designers/developers know you hit the nail on the head and don't really necessarily want people to use "SEO" friendly URLs (competition). I have used both FUP (highly recommended for low end projects) and URL Master for a couple of years now. The keyword rich URLs make my projects stand out and my customers agree. Keep up the good work.

By Torxweb Design on   Sunday, December 06, 2009 3:04 AM
Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

I'm using this url master in almost every project that I have.
Not only because it's a SEO-must but because it's a great working module.
Shaun Walker better give you a call if he's smart ;-)

Cheers

By NicoF on   Thursday, January 21, 2010 7:57 AM
Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

@nicoF thanks. And I have spoken to Shaun already, he knows all about the module. One day we might see more in DNN, you never know.

By Bruce Chapman on   Thursday, January 21, 2010 8:03 AM
Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

Is there a way for the UrlMaster to grab from the Page Title rather than the page name? I have unique needs and it would be of great benefit to me if I could configure UrlMaster to grab from the Page Title.

Basically, I need my menu in spanish (generated from Page Name) but I want my SEO link to be in english (also generated from Page Name) so I'm stuck. I will look into customizing the menu to grab from page title rather than page name that way I can keep UrlMaster as it. But, I thought I'd at least ask about UrlMaster's customization options.

By Chris Zavaleta on   Tuesday, February 02, 2010 4:09 AM
Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

@Chris : no, the module always takes the tab name (to be more specific, the page path (page name plus any parent names). You can, however, add in new urls for pages, and set them to be whatever you like. This gives you flexibility in determining what keywords to place in the Url to optimise the page.

By Bruce Chapman on   Tuesday, February 02, 2010 8:31 AM
Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

But what happens to your existing search-indexed URLs when you install your module? Do you lose all that search equity you've built up over time for your existing URLs? Do the old "human friendly" DNN URLs still work if someone has linked to them?

By JimMc on   Friday, February 26, 2010 6:40 AM
Gravatar

Re: Human and SEO Friendly Urls in DotNetNuke 5.1.2

@jimMc : No, you don't lose any 'search equity' as you put it. One of the major features of the module is that it will (optionally) redirect all of your old content to 'new' Urls, maintaing (and sometimes improving) the search ranking of those urls. This is done by using 301 redirects, as advised by Google and the other search engines.

The old 'human friendly' dnn urls continue to work, and you have the choice of either keeping them working as-is, or redirecting them to a newer, more friendly, url where one exists.

I can understand being nervous about losing rankings, particularly if your business depends on it, but I have seen many, many sites using this software transition smoothly in search indexes to newer, more friendly urls.

By Bruce Chapman on   Friday, February 26, 2010 9:33 AM

Your name:
Gravatar Preview
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Title:
Comment:
Add Comment   Cancel