Overview
Build nested page URLs from Payload's built-in folders, and manage them in a drag-and-drop tree in the admin panel.
payload-page-tree builds each page's URL from the folders it sits in. You create folders in the Payload admin, give each one a URL segment, and put pages inside them. The plugin writes the full path into the page's slug field, keeps a history of old URLs, and adds a drag-and-drop tree view at /admin/page-tree for reorganising everything.
It extends Payload's own folders feature. Folders only organise content; there are no placeholder pages to create.
web-design → /services/web-design
branding → /services/branding
spring-campaign → /appeals/2024/spring-campaign
about → /about
Features
- Minimal config — works with
pagesandpostscollections by default, and skips any that don't exist in your config. - Visual tree view — drag-and-drop reorganisation in the admin panel, with multi-select.
- Generated slugs — hierarchical URLs from folder paths, for example
/appeals/2024/spring-campaign. - URL history — the last 20 URLs of every page are recorded, and any of them can be restored.
- URL preservation — when you move a folder, choose whether its pages keep their URLs or get new ones.
- Collection switching — a dropdown filters the tree by collection when more than one is configured.
- Native folders — built on Payload's folders feature; folders are purely organisational.
- Works with other plugins — runs alongside Puck, SEO and other plugins. See Plugin order.
Requirements
| Peer dependency | Version |
|---|---|
payload | >=3.0.0 |
next | >=14.0.0 (14, 15 and 16) |
react | >=18.0.0 (18 and 19) |
@payloadcms/ui | >=3.0.0 (optional) |
@payloadcms/next | >=3.0.0 (optional) |

