Out of the box, DotNetNuke provides a method of programatically creating a search-engine friendly XML sitemap for easy website submissions to the likes of Google, Yahoo and others that accept that format. This is one of the first things to do in your quest for SEO.
What it doesn't do, is accurately give a priority to pages. A priority is used by webmasters to set a level of imporance to a webpage. These numbers range from 0.0 to 1.0.
All DotNetNuke sites prior to 5 assign a default value of 0.9 to all pages. Google, and others don't like the fact that all your pages have the same priority, which will likely cause them not to index your site.
After doing a bit of research, I found a quick hack in the DotNetNuke forums, that assigns priorities based on page placement in your menu. 1 to your home page, 0.9 to all other first level pages, 0.8 to second level pages, and so on.
Just recently I've found another approach outlined on the EguanaSolutions.com blog, where they take it a bit further, using a default value of 0.5 on all pages, and incrementing the priority by 0.1 if you add a description and keywords to your pages.
I wasn't too crazy about that hack, since I use a description and keywords on ALL of my pages, as instructed by most SEO experts, so I'd likely be facing the same issue. They did however, offer a suggestion as a solution, which was to use Page Tokens, and modify your XMLSiteMap.aspx.vb to parse those tokens. I didn't want to work that hard... ;-).
The EguanaSolutions.com post did point to an elegant solution at CodeMyPantsOff.com (love that domain name!) that augments their fix, and doesn't require the coding for PPV that EguanaSolutions.com suggested.
All you need to do is modify your pages according to EquanaSolutions.com, add the code from CodeMyPantsOff.com, then start adding 'PPV=' followed by a numeric value setting a priority code in the keyword section of the page settings!
That really gives you complete control of your priority settings!