New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

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.

Page not found 404 Error Handling in DNN

The humble 404 error – it belongs to a select group of error codes that has risen into the public consciousness.   Ask the average web-addict what 404 means and they will tell you ‘something to do with the link not working'.   This widespread knowledge is the result of webmasters returning error pages since the beginnings of the world wide web.   When a person asks for a URL that doesn’t exist, they need to know that it doesn’t exist – and that’s what the 404 Error Page has always been for.   The early users of the web were all well-versed in technical matters such as HTTP response codes, and somehow over time the use of the ‘404’ has stuck. 

Page Not Found for Search Engine Optimization (SEO)

It isn’t just people that view and take notice of 404 errors – search engine robots that continually scan websites need this information to know when a link doesn’t work. 

A search engine needs to be up to date – returning a broken link in a search result isn’t any help to anyone.    That’s why it’s vital that sites return 404 errors when links are broken – so that the search engines know how to remove them.

The search engine story doesn’t end there, however.  Many websites don’t return 404 errors properly for invalid URLs, and instead they return a 302 temporary redirect to a normal web page, which is used to inform the visitor that the link wasn’t found.   While this works well for informing visitors that a URL wasn’t recognized, it doesn’t work well for search engines, which are more interested in the hard data of HTTP status codes than the various interpretations of ‘Page not found’ in various languages, cultures and styles.

Many implementations of ASP.NET websites utilize the error page redirect functionality as it is quick and simple, but unfortunately this leads to the above problem, where a temporary redirect is done to a normal page that shows the error.

As a result of many websites not issuing ‘correct’ HTTP error codes, Google started classifying certain pages as ‘Soft 404 Errors’.  These are pages that Google scans and thinks are 404 or other Error pages, based on the content, but isn’t sure because it isn’t returning a 404 HTTP status code.

The linked Soft 404 Error page comes with this ominous warning:

“Because of the time Googlebot spends on non-existent pages, your unique URLs may not be discovered as quickly or visited as frequently and your site’s crawl coverage may be impacted (also, you probably don’t want your site to rank well for the search query [File not found]).”

What this really means is that if Google doesn’t find any 404 status codes from your site, it will start guessing what is a 404 Error page, and start removing those pages from the index, or at least not crawling your site as much.

Either of those are not good results for those wishing their pages to rank well in Google.  The worst thing about this is that in practice, many site owners start seeing valid pages get classed as Soft 404 errors, and their site can start to disappear from rankings.

Page Not Found for Visitors

It’s not just Search Engines that appreciate well constructed ‘Page Not Found’ error pages.  While most visitors will never read or care about a 404 HTTP status code, they certainly do appreciate being told when some content is missing, but they especially appreciate being told what they can do next (apart from hit the ‘back’ button).  Such actions might include a link to the search page, a link to some FAQs – whatever suits the content of the site in question.

DNN and Page Not Found Errors

DNN administrators have always faced two challenges when it comes to handling what to do with a link that no longer works.   It’s not a coincidence that these are the two challenges already laid out above, with a further wrinkle when it comes to showing visitors site specific, attractive ‘Page Not Found’ error pages.

DNN is based on ASP.NET, and so many DNN sites inherit the problem of ‘Soft 404 Errors’, in which Google ranks the site lower.    But don’t think DNN is alone here – many popular CMS packages are plagued with the same problem, and it isn’t just restricted to those running on ASP.NET either.

One of the strengths of DNN is the multi-tenant capability of the software, giving the site owner the ability to run one or more sites on the same installation.  This becomes a challenge for showing ‘page not found’ errors, because, ultimately, this is handled at the ASP.NET level.   At this level, all the various sites in a DNN installation look like a single website, and showing a different error page for each is a challenge.

Page not Found in DNN 7.1

As part of the many different improvements around URL handling introduced with DNN 7.1, all of the above issues are solved.   These are built into the DNN framework itself and require no additions.   

Each new DNN 7.1 installation includes a ‘404 Page not Found’ page.  This is configured for the installed portal so that any URLs that are not found are shown this page.  When the ‘404 Page not Found’ page is shown, the originally requested URL is still in the browser address bar, and a HTTP 404 status code is returned to the browser (or search engine).

The ‘404 Page Not Found’ page is an ordinary DNN page, so you can add any content you like to the page using a Text/HTML module, or indeed any other content module – with one or two caveats, see below.  So you can design and layout this page to suit the specific site that it belongs to, even when your DNN installation contains multiple sites.

It is important to note the precise language here – the ‘404 Page Not Found’ is shown to the user when an URL that doesn’t match any content is requested.  This is not a ‘404 redirect’ – the requested page doesn’t exist, so the ‘404 Page Not Found’ page is shown instead.

Note: the use of the 404 Error Page in DNN requires that the Friendly Url Provider is configured in ‘advanced’ mode.   This is switched on by default for new DNN installations, but older sites being upgraded would need to have the different URL Provider mode activated.

Important Information relating to DNN 404 Pages

The first thing to note is that, while the ‘404 Page Not Found’ page is constructed as a normal DNN page,  when it is displayed in relation to a 404 Error, it isn’t displayed in the same way.   There are a few things that don’t work the same way.   If you’re developing or administering a DNN 7.1 site, then visit the 404 Page Not Found in DNN wiki page, which has detailed explanations of some of the nuances with using and understanding the 404 handling in DNN.


Improvements to 404 Handling will be welcomed by many site administrators and is yet another incremental improvement for DNN that some will be passionate about, while others may not even notice.   The great thing about this change is that it will improve both the visitor experience and search engine rankings for many new DNN site owners, and all they will have to do is modify the content on the page to suit their new site.

Questions?  If you have questions about DNN 404s, feel free to ask about this feature in the comments below.


Rumtek Technologies
I've tried to configure DNN 7.01.00 on local IIS; place the install file at C:\inetpub\wwwroot\DotNetNuke; add new website from iis, then install dnn and finally tried to view the website.
Here the website opens but one popup comes every times the page load and showing HTTP Error 404.0 - Not Found.
Though dnn installs properly then why this error message comes every time?
Rumtek Technologies Monday, July 22, 2013 3:34 AM (link)
Bruce Chapman
@rumtek : please post your question in either the the Community Q&A section ( or in the Community Forums.

It could just be that the welcome page of your initial install is returning a 404 error. You can just close this popup as long as the rest of the site works correctly.
Bruce Chapman Monday, July 22, 2013 3:37 AM (link)
Hi, I have same problem to solve..
It closed and open again and how many times do I do this click?

It is very important to was ok where I installed in Windows 7 IIS 7.5 but Windows 2008 R2...I could not solve this problem...
hglee Monday, August 12, 2013 2:12 PM (link)
cathal connolly
@hglee, this can occur if you attempt to reuse a previously installed sites files with a new database - DNN will see this as an upgrade rather than an install so the setting to only show the getting started page once is incorrect. Please make sure you use a new install package.
cathal connolly Monday, August 12, 2013 4:13 PM (link)
Alex Ludden
So how do I retrofit a site that has been around for ages but is now on DNN 7.2? Can I just add that page?
Alex Ludden Thursday, February 6, 2014 4:11 PM (link)
Bruce Chapman
@Alex - yes, you can add a new page for your 404 content, and change the setting to point the 404 handling at that page. Note that you need a 404 page for each portal. Also consider modifying your skin to remove any links which create postbacks - the standard DNN skin has an example of a 404 page skin.
Bruce Chapman Thursday, February 6, 2014 4:29 PM (link)
Alex Ludden
Thanks for your reply, but where is 'the setting'? I have looked through all the Admin and Host settings, I don't see it.
Alex Ludden Thursday, February 6, 2014 6:39 PM (link)
Bruce Chapman
See this page :
Bruce Chapman Thursday, February 6, 2014 7:44 PM (link)
Alex Ludden
Thanks Bruce, I already had read that page, but I don't see where it explains how to add this to a pre-7.1 site that was upgraded to 7.1 (and 7.2). Where and which setting do I need to set? I added the 404ErrorPage, I changed the skin, but still no page. It goes back to the default handling by IIS, and if I understand it correctly, this should trap it before then.
Sorry - I must be dense...
Alex Ludden Thursday, February 6, 2014 9:32 PM (link)
Alex Ludden
OK, I just found a site that says I have to run a query to add a record to PortalSettings. I will try that
Alex Ludden Thursday, February 6, 2014 10:43 PM (link)
Alex Ludden
OK, that did it. You definitely need to run a query to add the pointer to the page into the PortalSettings table, if your site was upgraded from a previous version of DNN than 7.1 . You can find the script if you google it.
Unless you know of a different way...
Alex Ludden Thursday, February 6, 2014 11:56 PM (link)
Hi, I updated my DNN version to 7.02 and I have not been able to configure the Error Page. Where can I find it? I looked in Page Management but I only see the old pages I had to handle to 404 request. How can I point my webconfig to the new 404 error page?
juancopi_81 Monday, February 24, 2014 2:45 PM (link)
Bruce Chapman
@juancopi_81 - you don't need to change the web.config, you need to add in a portal setting to link the 404 handler to your created 404 page. See this page :
Bruce Chapman Monday, February 24, 2014 6:52 PM (link)
Alex Ludden
If you upgraded from a previous version, you have to create the page yourself. It is a standard DNN page but don't add it to the menu. Also, change the skin to the 404 page skin installed by DNN. Then you have to run an SQL query to add a record to the PortalSettings table which points to your 404 page. You can find the script at , see the answer.
Alex Ludden Monday, February 24, 2014 11:33 PM (link)
Thanks Bruce Chapman, I am still reading but I have not been able to solve it. I had changed my webconfig to



And I created the pages 404 and TheErrorPage (I read this solution on Internet). Now I updated my DNN version and I set up the Friendly Url Provider mode to 'advanced'. Now I am not getting the old page I created always but I am getting this message: (For instance, when I typed

404 Not Found
The requested Url does not return any valid content.
Change this message by configuring a specific 404 Error Page or Url for this website.

The way to go is the one shown in this link? Or is there any other way to add in a portal setting to link the 404 handler to my created 404 page?

juancopi_81 Tuesday, February 25, 2014 9:50 AM (link)
Alex Ludden thanks for your answer. The skin I found is Host: Gravity - 404Skin is that the one you mean?
juancopi_81 Tuesday, February 25, 2014 3:03 PM (link)
Alex Ludden
Hello Juan,
Yes, that is the only one that is installed by DNN. However, if you use a third party skin it may also have a 404 page. Mine did. The main requirement is that it not have things that would cause a postback, like a login or search button.
Alex Ludden Tuesday, February 25, 2014 11:01 PM (link)
To get a nice UI to manage the 404 Error page, using X3.DnnUrlManagement to manage Advanced URL Management is a brilliant solution.

This is good for DNN Platform users. Its free, and it also helps you manage all the rest of the Advanced URL features. I believe a similar management UI is already built into Evoq and Evoq Social.
Thomas Friday, April 4, 2014 12:06 PM (link)
Graham Lewis
Hi Bruce,
Whilst it's great that DNN were smart enough to buy iFinity's URL rewriter and include the code in the base I have to say that the implementation from a system administrator's perspective leaves a lot to be desired. Having to edit the SQL tables in the database directly (either PortalSettings or PortalLocalization depending on release) is far from user-friendly. How hard can it have been to expose this setting in the UI - I would suggest that under Site Settings / Advanced / Page Management would be the obvious place along Home, Splash etc)? Frankly not doing so demonstrates a level of contempt for the users of the system that is fairly typical of DNN Corp. Having worked with your products for many years I am sure it's highly likely this is not your omission but is still has resulted in me, and I suspect many hundreds if not thousands of others, wasting time and money trying to work out why something that should be very basic to configure simply doesn't work out-of-the-box.
Yours in frustration,
Graham Lewis Tuesday, May 13, 2014 6:26 AM (link)

Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
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 (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (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)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out