TYPO3 Recycler

Extension key

recycler

Package name

typo3/cms-recycler

Version

12.4

Language

en

Author

TYPO3 contributors

License

This document is published under the Open Content License.

Rendered

Tue, 08 Jul 2025 09:22:49 +0000


This extension allows you to restore deleted records or permanently remove them from the database.

These actions can be applied to a single record, multiple records, and recursively to child records, for example, restoring a page can restore all content items on that page. Filtering by page and table provides a quick overview of deleted records before taking further action.


Table of Contents:

Introduction

What does it do?

When a record is deleted in the TYPO3 backend, it is marked for deletion in the database and not visible anymore in the backend or displayed on the website.

In the Recycler module you can restore or delete "soft-deleted" data. The backend module provides an overview of the relevant records, allows filtering of results or executing required actions.

Screenshots

Recycler backend module

Recycler backend module

Credits

This feature is originally based on the kj_recycler extension, developed by Julian Kleinhans.

Installation

Target group: Administrators

This extension is part of the TYPO3 Core, but not installed by default.

Table of contents

Installation with Composer

Check whether you are already using the extension with:

composer show | grep recycler
Copied!

This should either give you no result or something similar to:

typo3/cms-recycler       v12.4.5
Copied!

If it is not installed yet, use the composer require command to install the extension:

composer require typo3/cms-recycler
Copied!

The given version depends on the version of the TYPO3 Core you are using.

Installation without Composer

In an installation without Composer, the extension is already shipped, but might not be activated yet. Activate it as follows:

  1. In the backend, navigate to the Admin Tools > Extensions module.
  2. Click the Activate icon for the Recycler extension.
Extension manager showing the Recycler extension

Activation of the Recycler extension

Next steps

Configure the Recycler module to your needs via user TSconfig.

For editors

Target group: Editors

When a record in TYPO3 is deleted via the backend, it is marked for deletion in the database and not visible anymore in the backend or displayed on the website. Deleted records can be restored via the Recycler backend module.

To use the backend module navigate to the Web > Recycler module:

Recycler backend module

Recycler backend module

The records displayed depends on which page is selected in the page tree.

Filter records

The records can be filtered:

Available filter of the Recycler module

Available filter of the Recycler module

  • Enter a search term in the search box if you are looking for a specific record.
  • Select the depth (number of levels from the selected page).
  • Select the type of record you are searching for.

Details of a record

To view more details, click on the i button ("Expand record"):

More details of a record

More details of a record

The following details are displayed:

  • Date when the record was created.
  • The user who originally created this record (creator).
  • The user who deleted this record.
  • The path to the record in the page tree.

Recovery of records

If you want to recover one or more records, select the relevant records by checking the checkbox in the first column. A new button Recover x records is displayed. Clicking on it "undeletes" the records and they are available again in the Page or List view.

Delete records permanently

Records can be deleted permanently when user permission is granted. Select the relevant records by checking the checkbox in the first column. A new button Delete x records is displayed that when you click on it removes the records permanently from the database.

User TSconfig

The module can be configured via user TSconfig for backend users or groups:

recordsPageLimit

recordsPageLimit
Type
integer
Default
25

The number of records displayed per page.

Example
EXT:my_sitepackage/Configuration/user.tsconfig
# Display 100 records per page
mod.recycler.recordsPageLimit = 100
Copied!

allowDelete

allowDelete
Type
boolean
Default
0

By default, editors are not allowed to delete records. Enabling this option allows the editors to delete records from the database permanently.

Example
EXT:my_sitepackage/Configuration/user.tsconfig
# Allow the editors to delete records
mod.recycler.allowDelete = 1
Copied!

CLI command

Target group: Integrators

A console command is provided by the lowlevel system extension. It permanently deletes records from the database. Options can be added to the command as below.

The command can be executed on the console:

# Remove all deleted records
vendor/bin/typo3 cleanup:deletedrecords
Copied!
# Remove all deleted records
typo3/sysext/core/bin/typo3 cleanup:deletedrecords
Copied!

It provides the following options:

--depth
Shortcut

-d

Type

integer

Default

1000

Sets the traversal depth. 0 (zero) will only analyze the start page (see --pid), 1 will traverse one level of subpages, etc.

Example
# Remove all deleted records, starting from the page tree root
# with a maximum level of 3
vendor/bin/typo3 cleanup:deletedrecords --depth=3
vendor/bin/typo3 cleanup:deletedrecords -d=3
Copied!
# Remove all deleted records, starting from the page tree root
# with a maximum level of 3
typo3/sysext/core/bin/typo3 cleanup:deletedrecords --depth=3
typo3/sysext/core/bin/typo3 cleanup:deletedrecords -d=3
Copied!
--dry-run
Default

null

If this option is set the records will not actually be deleted but records which would be deleted are shown.

Example
vendor/bin/typo3 cleanup:deletedrecords --dry-run
Copied!
typo3/sysext/core/bin/typo3 cleanup:deletedrecords --dry-run
Copied!
--min-age

New in version 12.3

Shortcut

-m

Type

integer

Default

0

The minimum age in days records need to be marked for deletion before actually removing them.

Example
# Remove all deleted records older than 90 days
vendor/bin/typo3 cleanup:deletedrecords --min-age=90
vendor/bin/typo3 cleanup:deletedrecords -m=90
Copied!
# Remove all deleted records older than 90 days
typo3/sysext/core/bin/typo3 cleanup:deletedrecords --min-age=90
typo3/sysext/core/bin/typo3 cleanup:deletedrecords -m=90
Copied!
--pid
Shortcut

-p

Type

integer

Default

0 (page tree root)

Sets the start page in the page tree.

Example
# Remove all deleted records from the page with UID 42
vendor/bin/typo3 cleanup:deletedrecords --pid=42
vendor/bin/typo3 cleanup:deletedrecords -p=42
Copied!
# Remove all deleted records from the page with UID 42
typo3/sysext/core/bin/typo3 cleanup:deletedrecords --pid=42
typo3/sysext/core/bin/typo3 cleanup:deletedrecords -p=42
Copied!

Scheduler task

The Scheduler system extension adds task Recycler > Remove deleted records to permanently delete old records from selected tables:

Configuration of the scheduler task

Configuration of the scheduler task

Create a new task with the following settings:

Delete entries older than (in days)
Enter the number of days after which records should be deleted permanently.
Tables
Select the tables where deletion is to be applied after the specified number of days.

One can define multiple tasks, for example, to remove deleted backend users and user groups after 30 days from the database, but pages and page contents only after 90 days.

Sitemap