Written By Tycho de Waard (SU)
2021-03-02
In the last versions of DNN platform we have some issues regarding Search Engine Optimization. One of the most important ones has been resolved in 9.9.0 by Stefan Kamphuis (muchas thankyou!): new pages were given a SitemapPriority of 0. More details on https://github.com/dnnsoftware/Dnn.Platform/pull/4441 and https://github.com/dnnsoftware/Dnn.Platform/issues/3425.
Whether the sitemappriority impacts the ranking or not is in our case not relevant. The big issue is that DNN has by default of threshold of Sitemappriority 0.1 to determine whether a page gets into the sitemap. And the sitemap is one of the most important factors to get indexed and ranked.
Of course, one of the solutions is to upgrade. But what if you can not upgrade or you have created some pages but you have no idea which they were and if they are in the sitemap or not?
You can of course go to the /sitemap.aspx and manually check. What I did is take a look at the database as that is where the truth lies.
And as you can save the queries in the sql console, it is a really simple step to reuse. Ready for some SQL?
Find the pages that did not get a SitemapPriority
As the value is stored as -1, you can find them with:
SELECT dbo.Tabs.TabID, dbo.Tabs.TabName, dbo.Tabs.IsVisible, dbo.Tabs.Title, dbo.Tabs.Description, dbo.Tabs.SiteMapPriority
FROM dbo.Tabs
WHERE dbo.Tabs.SiteMapPriority = -1
While we are at it, let's find other things that could be improved, like Titles that are not filled
The title will come up in the Google search results instead of the default page name. This allows you a much better title than 'it has to be short for the menu'.
SELECT dbo.Tabs.TabID, dbo.Tabs.TabName, dbo.Tabs.IsVisible, dbo.Tabs.Title, dbo.Tabs.Description, dbo.Tabs.SiteMapPriority
FROM dbo.Tabs
WHERE dbo.Tabs.Title = ''
It is adviced to have a title of at leat 10 characters. To detect whether you page pages with fewer than that, you can use:
SELECT * FROM Tabs WHERE LEN(ISNULL(Title, '')) < 10
On to the description of a page. While it does not improve you ranking, it can improve the CTR (click through ratio) from Google to your website. By default DNN will use the description of your site for your page description which is too generic most of the time. The page description will be displayed just below the title in the Google search results so you can 'sell' the page by optimizing the description.
To detect whether you have pages without the description filled, use:
SELECT dbo.Tabs.TabID, dbo.Tabs.TabName, dbo.Tabs.IsVisible, dbo.Tabs.Title, dbo.Tabs.Description, dbo.Tabs.SiteMapPriority
FROM dbo.Tabs
WHERE dbo.Tabs.Description = ''
SEO experts say that your page description should be shorter than 165 characters. Simply because any longer will not be displayed.
To find out if you have pages with descriptions that are too long, use:
SELECT dbo.Tabs.TabID, dbo.Tabs.TabName, dbo.Tabs.IsVisible, dbo.Tabs.Title, dbo.Tabs.Description, dbo.Tabs.SiteMapPriority
FROM dbo.Tabs
WHERE LEN(ISNULL(Description, '')) >165
That was the SQL part. But no content editor will be a happy camper if he/she needs to work with SQL to get this kind of intel. As I have a Plantanapp subscription, I used the dashboard module to consolidate the queries and offer a more appealing way. (it has some Dutch but it says stuff like title too short or too long)
For those of you not familiar with the dasboard module, it is basically another way of presenting saved queries. If you build a component with the mentioned SQL it looks like :
As it is just a way of visualizing queries, you could accomplish the same results with Mandeeps Live visualizer or 2SXC or whatever your favorite is. In any case, editors will be helped a lot :-)