Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Varbase FAQs 9.2.1 Minor update available for module varbase_faqs (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Node Cleanup offers a safe and efficient way for site administrators to manage Drupal content. It allows users to review and remove unpublished content, restore items from a trash bin, and identify duplicate nodes, all without affecting live published content.

Node Cleanup provides site administrators with a centralized interface to manage Drupal content safely and efficiently. Review nodes by content type and publication status, remove outdated unpublished content, restore items from a built-in trash bin, and identify duplicate content—all without risking published content.

Unlike Drupal core's bulk Delete content action, Node Cleanup is designed with safety in mind. Every bulk cleanup operation is restricted to unpublished content, ensuring that live pages can never be accidentally removed.

Features

  • Centralized content management

    Browse all nodes from a single interface with filters for content type and publication status. A reset option appears automatically whenever filters are applied.
  • Trash Bin with Restore

    Instead of permanently deleting unpublished nodes, move them to a dedicated Trash Bin. Trashed content is removed from the main listing but remains in the database until permanently purged. Restore any node at any time while preserving its original publication status.
  • Scheduled Auto-Purge

    Configure a retention period (in days) to automatically remove expired items from the Trash Bin during cron runs. Administrators can also manually trigger the cleanup process using the Purge Expired Trash Now action.
  • Duplicate Content Detection

    Detect potential duplicate nodes by grouping content with matching titles within the same content type. Nodes with identical body content are highlighted as stronger matches, allowing duplicates to be reviewed and moved to the Trash Bin directly from the interface.
  • Built-in Safety Protection

    All cleanup operations are performed exclusively on unpublished nodes. Validation is enforced server-side, even if published nodes are accidentally selected. Bulk cleanup actions are only available when unpublished content exists in the current listing.
  • Ideal for Content Housekeeping

    Quickly remove outdated drafts, recover accidentally trashed content, and identify duplicate pages created during migrations, imports, or collaborative editing.

Post-Installation

No additional content types, fields, or text format configuration is required.

  1. Grant the Administer content permission to the appropriate roles
    (Administration → People → Permissions). The module reuses Drupal core's existing permission and does not introduce a new one.
  2. Navigate to
    Administration → Content → Node Cleanup
    (/admin/content/node-manager).
    The module provides four administrative tabs:
    • List
    • Trash
    • Duplicate Content
    • Settings
  3. Visit
    Administration → Configuration → Content Authoring → Node Cleanup
    (/admin/config/content/node-cleanup) to configure automatic trash cleanup. Auto-purge is disabled by default. Enable it and specify a retention period if you want expired trash to be permanently removed during cron execution.
  4. Once enabled, the module is ready to use with no further configuration.

Additional Requirements

No additional requirements beyond Drupal core's Node module. There are no contributed module dependencies, external libraries, or JavaScript build tools required.

  • Automated Cron (Drupal core) or Ultimate Cron — recommended if you enable scheduled auto-purge, as permanent cleanup is performed during cron execution.
  • Admin Toolbar — provides quicker navigation between the module's administrative pages.

Similar Projects

  • Trash — intercepts delete operations across multiple entity types and makes them recoverable. Node Cleanup focuses exclusively on nodes, provides dedicated management screens for listing, trash, and duplicate detection, and does not override Drupal's default delete behavior elsewhere.
  • Diff — compares revisions of an individual node but does not detect duplicate content across the site.

Supporting this Module

This project is maintained as an open-source contribution. Bug reports, feature requests, patches, and community feedback are always welcome through the Drupal issue queue.

Community Documentation

Additional documentation and examples are available in the project's README. If you have questions or suggestions, please use the Drupal issue queue to get in touch with the maintainers.

Activity

Total releases
6
First release
Jan 2026
Latest release
4 days ago
Releases (12 mo)
6 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.6 Stable Jul 13, 2026
1.0.5 Stable Jul 9, 2026
1.0.3 Stable Jul 8, 2026
1.0.2 Stable Jul 8, 2026
1.0.1 Stable Jan 25, 2026
1.0.0 Stable Jan 25, 2026