Learn More





DNN Community Blog

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

DotNetNuke SEO Whitepaper

This isn’t really a “whitepaper” in the literal sense, but rather a cheat sheet to help you identify all of the areas in DotNetNuke that you can take advantage of in order to effective leverage your Search Engine Optimization (SEO) strategies.  Nearly all of these SEO settings and features have been around for a long time too.

What is SEO?

Search Engine Optimization is simply a term used to describe the process of constantly optimizing your website to be indexed easier and faster – and better indexed than competitive websites.  The exact methods and techniques you use will sometimes change from week to week, but the tools used to employ your strategy generally remains the same.

If your website is publicly visible, and if it has ANYTHING to do with your business making money – SEO SHOULD BE IMPORTANT TO YOU.  Most companies that are serious about this have one or more people on-staff or contracted full time to get the most out of SEO.

How does DotNetNuke fit in?

DotNetNuke is well-known for many things – not the least of which being how extensible it is.  In fact, many people refer to DNN as being their box of legos to build websites with.  I haven’t heard a better analogy.  With legos, you have various colors to work with that will help you build a better "thing.”  DNN offers this to you as “features” – one of which being SEO-related.  There is not another commercial or open source content management system (CMS) out there that even approaches how well DNN can be leveraged for SEO.

Here are the areas that I am going to talk about:

Dynamic Menus

The menu systems in DNN are all dynamic.  The menu itself is extensible – so you can switch out the menus as needed to get a better look.  However, for SEO, you might be looking for menus with better (X)HTML markup.  A great menu for this is the DDRmenu by DNNGarden.

Your menu should use the lowest amount of HTML, and be XHTML compliant.  Also, it should use semantic mark-up to help the search engines determine navigational priorities of pages in your site.

The menus not only show you how to navigate throughout your DNN site, but the navigation you see is directly related to the URLs and the URL Provider (in most cases).  More on that below.

URL Provider

The menu systems work in tandem with the URL Providers in DNN.  The URL Provider creates and parses the URLs, and then various elements in DNN inherit the URLs, including the menus.  How your URLs are created is extremely important.  A URL that is human-readable is also search engine-friendly.  That is, the URL gets indexed by search engines too, and it arguably one of the most important elements in your SEO strategy.

For example, if you create a page on the root of your site with the name About Us, the page URL will be with the default providers in place.  If you add another page as a “child” of About Us called Corporate Info, then the URL for the new page would be  This how the page and URL structure will be begin to build.  The menu system, like the URL, will continue to build this way, unless you customize the existing URL Provider, or install a 3rd party one.

The URL provider that ships with DNN is pretty good.  However, there are three very good providers out there that you might want to look at as a possible replacement (in no particular order):

Whatever URL Provider you use should allow you to specify your own URL structure, handle URL duplicates, and help to manage many other URL-related SEO concerns, as needed.  Your URLs should be as short as possible, contain contextual keywords, and not have any file extensions, if you can avoid it.

Page Settings

Each page in DNN has its own settings area that can easily be reached using the Control Panel at the top of the page.  That is, if you’re authorized to see the Control Panel.  Within the Page Settings, you can manage:

  • Page Meta Data (title, keywords, description) – The importance of each of these items will vary constantly throughout the year.
  • Page Header Tags – This field is very useful for a variety of page header elements, but for SEO, this is where you’d put your Canonical URLs.
  • Site Map Priority – This is where you put a valid and relevant priority value for the current page, between 0.1 and 1.0 – with 1.0 being the most important pages in your site.  (This setting is dependent upon the Site Map Provider, described below.)
  • Link URL / Permanently Redirect – This feature is very useful for moving or deleting pages in DotNetNuke.  You shouldn’t ever physically delete a page right away.  Instead, create a new one, and use these two settings to tell search engines where the new page exists.  Without doing this, the search engines won’t know where the new page is, OR it will be giving an incorrect “temporary” redirect versus the desired and correct HTTP 301 redirect status code.

XML Site Map

One of the cooler features that many people don’t find right away is that DNN comes with a pre-generated XML Site Map.  This site map is dynamically generated using the context of the user currently logged in, so the majority of the time, it is populated only with pages that don’t require a login.  You can find this page on any of your DNN sites, by simply adding /SiteMap.aspx to the end of the root of your site.  Using the previous example, this might be

XML Site Maps is a commonly adopted standard adopted by all major search engines, as a way for webmasters to tell the search engines what the structure is of their site, and what portions of the site are more or less important than the rest.  This gives some very meaningful information to the search engines to help you properly index and weigh the various pages in your site.

Site Settings

The Site Settings is a page available to you that helps you set the high-level settings required for the site to function properly.  This include visual elements, security, and more.  It also includes a few critical SEO-related settings.

  • Site Meta Data (title, description, keywords) – If your page does not have any information in its Title, Description, or Keywords fields, the values in the respective fields in Site Settings will be injected into the page for you.  So fill this information with the most general and relevant values that you can come up with.
  • Search Engine – There are 3 search engines in this drop down list that you can choose from to submit your site to be indexed by search engines.  Once your site is officially rolled out, submit your site to all 3.
  • Site Map URL – The URL and site map is generated for you, but using the Submit button, you can submit the site map to search engines like you would the entire site.
  • VerificationGoogle Webmaster Tools requires that you verify that you own the site you’re trying to manage in their SEO control panel.  One of the ways to do this, is to add an HTML file to the root of your website.  DNN makes this easy.  All you have to do is paste the HTML page name that is given to you in this field, and then click Create.
  • Portal Aliases – I didn’t used to put this on the list, but it’s useful to do so now.  When you’re logged in as a Host or Superuser, you can not only manage the primary URL, but you can also add more URLs for your site to respond to.  With version 05.06.01, you can now also specify if a URL is a Canonical URL, or a Redirect URL.  For sites that must have multiple URLs to respond to, this helps to prevent the site from using the wrong HTTP status codes again.

Search Engine Sitemap

One of the newer SEO features in DNN is the Search Engine Sitemap page, found in your Admin menu.  This allows you to manage how and if your page-level Site Map Priorities are being used.

There are a variety of settings to help fine tune how your XML Site Map is generated for you.  This is especially useful for larger sites that have too many pages.  If you go over a certain number of pages in your XML site map, some will be ignored and never seen or dealt with when the search engines parse the XML.

There is an additional benefit here though.  You can also configure if the site map is cached, and for how long.  This is a great feature for sites that are concerned about performance.

Google Analytics Module

All editions of DNN (Community, Professional, Enterprise) have a Google Analytics (GA) Module included and installed by default.  This helps you to easily include your code required for your site to begin generating SEO-related data.  You can also use the URLParameter setting to help with campaign tracking

Professional and Enterprise Edition both take this implementation a couple of steps further though.  For example, they support advanced segmentation, and multiple URLs.

Telerik ASP.Net AJAX Control Suite

Telerik has long had arguably the most popular and feature-rich ASP.Net controls in existence.  With over 70 controls included in the suite that are all top-notch, this continues to be more and more true with each release.  This is for many reasons…  They all:

  • Look great out of the box;
  • Smaller download size than most competitor;
  • Feature-rich;
  • Are customizable;
  • Flexible to meet business & technical requirements;
  • Can easily be “themed”;
  • Have a consistent UI;
  • Outstanding support, documentation, example uses/code;
  • Emit XHTML compliant markup

For all of the reasons above, and more, the Telerik controls are now shipping with DotNetNuke, with a couple of conditions.  In order to develop or design in DNN using the controls, you will need to purchase a developer license through Telerik ($999 each), or use the built-in wrappers that come with DNN’s API.  Professional and Enterprise Edition customers get an unlimited number of Telerik developer licenses free as part of their DNN subscription.

The last bullet point above is the most important for the context we’re talking about right now.  The controls all emit XHTML compliant mark-up, and in cases where the controls allow you to create mark-up, the resulting mark-up is also XHTML compliant.  (There will be more on XHTML compliancy later.)

A great example of this is the RadEditor that is enabled by default in DNN.  This editor allows you to not only create XHTML compliant code without knowing how to do it, but it also allows you to strip out unwanted or unnecessary mark-up using its toolbar. 

These controls (or controls like them) should be an integral piece of your puzzle if your content will be managed or contributed by people who don’t know or care about SEO techniques.

Skinning Engine

One of the biggest strengths of the DNN platform since around version 2 is the robust skinning engine.  It was built from the very beginning to be highly flexible and designer-friendly.  This vision continues today.  Designers can easily create compelling and interactive layouts and designs without knowing any .Net code, or how to create a “Master Page.”  Building a skin in DotNetNuke is simply creating and defining the layout(s) for the entire site and its modules.

Designers can use any technologies and tools that they are comfortable with, including jQuery, Telerik, CSS, XHTML, Flash, Silverlight, and more.  They can have Pure CSS/DIV-based designs, or Table-based designs.  The tools that they use are up to them.  You can use Notepad, Dreamweaver, Microsoft Expression Web, or any other HTML designer.

When a skin designer is planning how their skin will be put together, SEO should be a main component of their plan.  For example, there are ways to put your content at the top of the page, and then move it down using CSS.  Using this technique, you can have your search engines see the most relevant HTML content first, ignoring the other less-important portions of the HTML mark-up.  However, when your visitors see your page, it looks just as you want it to.

The design should also be XHTML compliant.  This is for many reasons, but I will talk about only a couple specifically.  First, like your visitors, search engine spiders are impatient.  DIV based designs that are XHTML compliant load faster than others.  This is because there’s no additional overhead of trying to determine the DOCTYPE, or fix bad HTML.  When Tables are used, the web browser has to wait for the entire table mark-up to load before the UI it is displaying will be loaded.

Pure CSS designs are also better for SEO.  This technique allows you to not only have a highly customizable design (saving money in the long-run), but it also allows you to leave out a TON of mark-up from the static HTML portion of your design.  Instead, it’s all defined in your cascading style sheet. 

Your skinning strategy should be loosely defined by a simple principle...  The less HTML the search engines have to parse, the more likely it is that your content will be the portion of the HTML that is indexed, and indexed thoroughly.

Skin Widgets

The final element that I will talk about is called Skin Widgets, or Widgets for short.  A widget in DNN is simply a client-side mini-application that is added to the page and executed by the web browser.  Essentially, it’s nothing more than some JavaScript (usually jQuery), and any supporting files that it needs.  Widgets are exciting, because they fill a void where a server-side module and other extensions in DNN cannot.

A skin widget can be added to a page and used by anyone with content editing authority on a DNN site.  They can also be used quite extensively by skin designers to help with a variety of needs. 

A great example for SEO, the built-in Relocation Widget (also called SEO Widget by some) will allow you to put your content even higher in your HTML design then is allowable by CSS alone.  When the page is loaded, the content appears exactly where it should be when your site visitors look at the page.  Ryan Morgan (Managing Partner at Arrow Designs) also blogged about how to use the Relocation Widget for this purpose in great detail.

You can see more examples of widgets that can help with a variety of needs in the Widget Suite for DotNetNuke.

What’s Missing?

One item that I don’t see much support for right now, but is incredibly important is the Robots.txt file.  This is a file that tells search engines what they are and are not allowed to crawl.  This can also be done at the page-level, but is generally best to be consolidated in this single file.

Since a single DNN installation can host an unlimited number of websites, this is a complicated topic and even more complicated of a proposition to manage from a technical perspective using DotNetNuke extensions.

On the surface, this sounds like an easy thing to fix, and in some regards, it is.  But in a multi-portal environment (multiple sites hosted in the same instance of DNN), this is very difficult to manage – but not impossible.  In most cases, this is a reason for some site owners to only host a single site per instance of DNN.

I only know of a single 3rd party extension right now that attempts to solve this issue, and it’s the Packflash Friendly URLs, SEO, and Sitemaps module.  While this feature was lightly demo’d to me, I have not actually tried it myself.


I have said for a long time now, that DotNetNuke is the only commercially available and open source CMS that comes close to having a complete SEO-friendly solution out-of-the-box.  Even though I have given some suggestions for alternative 3rd party solutions, this remains to be a true statement.  Using this blog post as your guide, there should be nothing to keep you from getting serious about SEO with your DNN website.

Is this all that you can do with DotNetNuke to leverage your SEO strategies?  The clear and definitive answer is, “No.”  There are numerous other areas where companies that specialize in SEO-related websites take advantage of not only the UI elements I’ve described, but also several other areas of the architecture and API.  The sky is the limit… Get creative!

This blog post is cross-posted from my personal blog site.


rimple christian
hi how to hide mu Azure Website url form the google/
rimple christian Saturday, March 28, 2015 5:07 AM (link)

Comment Form

Only registered users may post comments.


2sic Daniel Mettler (124)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (21)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (269)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?