Is website page inventory report possible?

Tim Valdez asked on July 10, 2025 20:05

We have a custom MVC Kentico 11 website. I was tasked with creating a spreadsheet of all "webpages" on our site. However, the CMS doesn't really understand the concept of a website like we humans do. So I thought of doing an excel advanced export of the page tree listing, and select a pagetype of Page-Content and sort by DocumentNamePath and add a where clause of DocumentIsArchived=0. Is this a good way to go? It comes up with exactly 1500 rows which feels suspicious to me but playing with the "number of records" field didn't change anything. Thoughts of a better way to do this? TIA!

Correct Answer

vasu yerramsetti answered on July 11, 2025 12:38

Try the following options -

1. Safer export via Smart Search index:

  • If you have a Smart Search index of Documents, you can run a search index rebuild, then export that index table
  • You’ll get all published, non-archived pages with URLs
  • Works great for large sites

2. Use the API:

var nodes = TreeHelper.SelectNodes()
    .OnSite("yoursite")
    .Published(true)
    .WhereEquals("DocumentIsArchived", false)
    .OrderBy("NodeAliasPath");

Export NodeAliasPath + NodeID + DocumentName to CSV.

Direct SQL query: If you have DB access, run this on View_CMS_Tree_Joined:

SELECT 
  NodeID,
  NodeAliasPath,
  DocumentName,
  DocumentCulture,
  DocumentUrlPath,
  NodeSiteID,
  NodeLevel,
  NodeParentID
FROM 
  View_CMS_Tree_Joined
WHERE 
  DocumentIsArchived = 0
  AND NodeSiteID = [YourSiteID]
  AND Published = 1
ORDER BY 
  NodeAliasPath

This bypasses any UI limits and gives you all pages exactly as stored.

0 votesVote for this answer Unmark Correct answer

Recent Answers


Tim Valdez answered on July 11, 2025 23:25 (last edited on July 11, 2025 23:25)

For posterity, here is my final query that appears to give the results I need:

SELECT 
  NodeAliasPath as [CMS Path],
  DocumentUrlPath as [Web URL],
  ISNULL(DocumentLastVersionNumber,0) as [Version],
  DocumentCulture as [Culture],
  LOWER(CONVERT(varchar(25), DocumentModifiedWhen, 100)) as [Modified]
FROM 
  View_CMS_Tree_Joined
  left join CMS_WorkflowStep on DocumentWorkflowStepID = StepID
WHERE 
  DocumentIsArchived = 0
  AND NodeSiteID = 2
  and COALESCE(StepDisplayName, 'Published') = 'Published'
  and ClassName in ('page.Content','page.LandingPage')
ORDER BY 
  NodeAliasPath
0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.