As I gave thought to becoming an officially-published WordPress plugin author, thinking about what I’d release, I decided that I’d start by publishing a small, relatively simple plugin. That became Quick Edit Post by ID. But that was just the starter project so I could figure out everything needed to publish a more complex tool, so I could iron out the kinks in my workflow.
For plugin #2, I decided to publish another tool that I’ve been adding to WordPress sites for years. It’s something I find valuable, and something that helps me in my day-to-day as a site admin. It’s a page tree visualizer with some powerful data export features. I gave the plugin a major overhaul, rewriting almost the entire thing from scratch. This is the third iteration of the plugin and the most polished. Had to get it all buttoned up and pretty to submit to the official WordPress plugin repo!
I think this plugin offers some handy features that I believe WordPress power users are sure to love.
The backstory
The default WordPress Pages screen is useful, but only just barely so. It’s difficult to use on larger sites and doesn’t provide any useful visualization of the site structure. Parent/child relationships are visible, but not always easy to deduce. Page templates are hidden unless you go looking for them. Drafts, scheduled pages, and pending review items can be easy to miss. And on many professional web teams, you’re often making project lists or analyzing the site page hierarchy, which means getting the site’s page structure into a spreadsheet. In WordPress core, there isn’t a simple, built-in way to do any of those things.
So, I built a small plugin for exactly that workflow.
Here it is: E20 Page Tree
Here’s a brief demo of the plugin in action:

The challenge I faced
A lot of WordPress sites use Pages as their primary site structure.
That works well, especially for sites with a clear information architecture: Home, section landing pages, subpages, policy pages, campaign pages, and so on. But once a site grows beyond a dozen or so pages, it’s difficult to get a mental model of the site’s page hierarchy from the WordPress dashboard.
As a web systems engineer, I often need to answer questions like:
- What does the full WordPress page tree look like?
- Which pages are nested under a given section?
- Which pages use a certain page template?
- Which pages have not been updated in a long time?
- Are there draft or scheduled pages hiding somewhere in the structure?
- Are there any orphaned pages lingering anywhere?
- Are there any forgotten one-off or test pages that should be cleaned up?
- Can I get this page hierarchy into a spreadsheet for cleanup, migration planning, or SEO review?
The normal Pages screen is fine for everyday editing. But when I’m doing content audits, technical SEO reviews, site migrations, information architecture planning, or editorial cleanup, I need a broader, structural view.
I want the site’s page tree, along with useful metadata, in one place.
Page Tree, to the rescue!
E20 Page Tree adds a new Page Tree screen under the WordPress Pages menu.
It shows the site’s page hierarchy in a clean, expandable tree view. Parent and child pages are visually connected, pages can be expanded or collapsed, and each row includes useful metadata right in the table.
The tree includes:
- Page title
- ID
- Slug
- Page template
- Created date
- Last modified date
- Status
- Quick edit and view actions
The status column uses a colored key, bringing fast attention to any pages that aren’t published:
- P = Published
- D = Draft
- R = Pending Review
- F = Scheduled
If the site uses a static homepage, it’s shown first, at the top, just where you’d expect the homepage to be in a sitemap. That’s a small detail, but it helps orient the rest of the structure.
Exporting the WordPress page tree
The part I find most useful is the export functionality. My page tree plugin includes several output formats:
- A spreadsheet-friendly table
- CSV
- TSV
The table view can be copied and pasted directly into Excel, Google Sheets, LibreOffice Calc, or Numbers. The CSV and TSV tabs are useful if you want plain-text output for another tool, script, or manual processing step.
Having the sitemap in a spreadsheet is handy during content audits and migrations. Once the data is in a spreadsheet, with pages paired to their ID and metadata, you can filter by template, sort by modified date, review page depth, assign sections to team members, build a cleanup plan… or accomplish literally any number of jobs that pro teams do as part of long-term website operational maintenance.
Those were some of the main workflows I wanted to support. The interactive WordPress page tree is useful on its own, but the spreadsheet export turns the page tree into a practical planning tool that teams can use for any number of projects.
A focused plugin
Like my first plugin, this one is small and intentionally focused.
It only works with WordPress Pages right now. It does not try to become a full content inventory system, migration framework, editorial workflow manager, or SEO platform.
It just gives you a better WordPress page tree and makes it easy to copy that structure into a spreadsheet so you can do some serious work on your site.
The plugin has no external dependencies, and its CSS and JavaScript only load on its own admin page. Users need the edit_pages capability to access it.
My second official WordPress plugin
Publishing my first official WordPress plugin earlier this year was partly about learning the WordPress.org plugin submission process. As my second, larger published plugin, I learned more about what it took to get something more complex submitted. Next is the advertising process… spreading the word, so to speak.
My hope is that you’ll find this a useful tool and get some insights about your website that aren’t possible with the barebones WordPress backend.
E20 Page Tree is available now in the official WordPress plugin directory.