Deleting & Restoring Content
Pages, snippets, and components are discarded, not destroyed immediately. A discarded item disappears from the website at once and remains restorable for 30 days. Redirects are different: they are permanent routing metadata and are never soft-deleted.
Discard tools
| Item | Discard | Restore |
|---|---|---|
| Page | discard_page |
restore_discarded |
| Snippet | discard_snippet |
restore_discarded |
| Component | discard_component |
restore_discarded |
All discard tools require confirmation. Use list_discarded to find discarded items by type; it returns the id and original path. Restore by type + id:
list_discarded(website: "my-site", type: "page")
restore_discarded(website: "my-site", type: "page", id: "...")
list_discarded and restore_discarded require editor access.
What happens when content is discarded
- The item stops serving immediately: discarded pages and snippets return 404; discarded components drop out of the rendered chrome.
- Sitemaps, feeds, and
llms.txtexclude discarded content. - The original path is freed. A replacement page or snippet can use the same path immediately; multiple discarded rows may share a path.
- Versions and content are retained until the 30-day retention job hard-deletes the row.
Redirects are not discardable. A redirect whose target page is discarded stops serving until the page is restored. delete_redirect is permanent and requires confirmation.
Restoring and path conflicts
If the original path is still free, restore puts the item back there. If a live page, redirect source, or snippet now uses that path, restore fails with a conflict and a suggested path. Retry with path:
restore_discarded(website: "my-site", type: "page", id: "...", path: "/about-2")
restore_discarded(website: "my-site", type: "snippet", id: "...", path: "css/style-2.css")
Page paths start with /. Snippet paths are relative; a leading slash is accepted and stripped. path is not valid for components.
Releases
Releases pin exact versions. If an older release still pins a discarded item, that release returns 404 for the item until it is restored; restoring it heals the release.
A release created while the item is discarded does not contain it. Restoring the item does not heal that release — create a new release with scope: all or an explicit selection to include it. The default scope: mine can answer no_changes after a restore because restoring does not author a new version.
Retention and permanent deletion
Discarded pages, snippets, and components are hard-deleted after 30 days by the retention job. There is no manual purge tool and no dashboard purge action.
Deleting a website or erasing an account hard-deletes its discarded rows with the website.