Skip to content
WordPress.org

Español de Honduras

  • Themes
  • Plugins
  • About
  • Colaborar
  • Nosotros
  • Equipo
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

DateSweep – Bulk Update Post & Page Dates

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

DateSweep – Bulk Update Post & Page Dates

By digtiz
Download
  • Details
  • Reviews
  • Installation
  • Development
Support

Description

DateSweep refreshes the published and/or modified dates of your content in bulk. New dates are distributed randomly across a range you choose, so the result looks natural — and every run can be previewed first and undone afterwards.

Use it to bulk-change post dates, update the published or modified date across pages and custom post types, or bulk-edit comment dates — all from one screen, with a dry-run preview and one-click undo.

Typical use cases

  • Pre-launch freshness pass — you built a new site from an older template or a copy of an existing site, and everything still carries dates from years ago. One run on the “All content” tab (optionally with drafts included and both dates set equal) makes the whole site look current before launch.
  • After an import or migration — imported content often ends up with a single identical date on every post, or wrong dates from a timezone mix-up. Spread realistic dates across a chosen range in one pass.
  • Content maintenance for SEO — you reviewed and batch-edited older articles and want their modified dates to reflect that work naturally over the past weeks instead of one suspicious spike.
  • Comments that match — after an import, comments dated before their own posts look broken. The Comments tab redates them plausibly (a comment is never dated before its post).

How it works

Pick a tab (a post type, Comments, or All content), choose the range to distribute dates within, optionally filter by taxonomy, status or specific pages, and choose which date field to update. Preview (dry run) shows current → proposed dates before anything is written. Runs are processed in batches of 100 over AJAX with a live progress bar, so even very large sites finish without PHP timeouts. Before each batch is written, the previous dates are snapshotted — your most recent run can always be restored with one click from the Recent runs list.

Features

  • Batched AJAX processing with a live progress bar — works on sites with tens of thousands of posts without PHP timeouts.
  • All public post types — posts, pages and custom post types each get their own tab, plus a Comments tab.
  • Filter by any taxonomy (categories, tags, custom taxonomies) with AND/OR relation, or pick specific pages.
  • Choose the field: modified date, published date, or both set equal.
  • Safety guard: never sets a modified date earlier than the published date (the classic plugin’s known flaw).
  • Comments stay plausible: a comment is never dated before its parent post.
  • No external CDNs — native date pickers, vanilla JavaScript, everything loaded locally.
  • Undo built in: every run records the previous dates first, and your most recent run can be restored with one click.
  • Hardened: capability checks, nonces, full input sanitization and output escaping, prepared SQL statements, object-cache invalidation after every update.
  • Developer friendly: actions and filters for every stage (datesweep_post_dates_updated, datesweep_collected_post_ids, datesweep_new_timestamp, datesweep_form_rows and more).

DateSweep Pro

The DateSweep Pro add-on extends the free plugin with scheduled automatic refreshes, a 10-run undo history, 100-row dry-run previews, ACF date-field support, age targeting and IndexNow submission.

Screenshots

The "All content" tab — one freshness pass across every post type.
The “All content” tab — one freshness pass across every post type.
Dry-run preview: current dates and proposed new dates, before anything is written.
Dry-run preview: current dates and proposed new dates, before anything is written.
A run in progress — batched processing with a live progress bar.
A run in progress — batched processing with a live progress bar.
Recent runs with one-click Undo.
Recent runs with one-click Undo.

Installation

  1. Upload the datesweep folder to /wp-content/plugins/, or install the zip via Plugins → Add New → Upload.
  2. Activate the plugin.
  3. Go to Tools → DateSweep, pick a tab, choose a range and click Update Dates.

FAQ

Will this time out on a large site?

No. Items are processed in batches of 100 over AJAX; the browser drives the queue and shows progress. Only the ID collection happens up front.

Can I undo an update?

Yes. Every run records the previous dates before writing, and the Recent runs list on the plugin page lets you undo your most recent run with one click. DateSweep Pro extends this to an undo history of your last 10 runs. A database backup before large operations is still good practice.

Does it change dates in the future?

No. The range is always capped at the current time.

Does it change my content?

No. Only the date columns of posts/pages (post_date, post_modified and their GMT counterparts) or comment dates are touched. Titles, content, excerpts, custom fields and settings are never modified.

Does it work with page builders like Elementor, Avada or Divi?

Yes. Builders store their layouts in content and meta fields, which DateSweep never touches — only the core date columns change. If your theme displays a date from a custom field instead of the WordPress date, see DateSweep Pro’s ACF integration.

Does it work with custom post types?

Yes, automatically. Every public custom post type — whether registered by a theme, a plugin or ACF — gets its own tab and is included in the “All content” pass.

Is it safe for SEO? Will Google penalize me?

DateSweep changes dates, not content. Search engines reward genuinely updated content; refreshing dates without any real changes can be ignored or, at worst, erode trust in your dates. Use it where the dates are genuinely misleading (imports, rebuilds, migrations) or alongside real content maintenance — not as a substitute for it.

Why did nothing change on my site after a run?

Your dates did change in the database — but a caching plugin or CDN may still serve old pages. Clear your page cache after a run. (Object caches are already flushed automatically.)

Where do I find the plugin after activating it?

Under Tools → DateSweep.

Can I schedule automatic refreshes?

That’s a DateSweep Pro feature: daily, weekly or monthly schedules with a “Save & Run Now” button, age targeting so recently edited content is left alone, and IndexNow submission so search engines re-crawl the refreshed URLs quickly.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“DateSweep – Bulk Update Post & Page Dates” is open source software. The following people have contributed to this plugin.

Contributors
  • digtiz

Translate “DateSweep – Bulk Update Post & Page Dates” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.6.1

  • Renamed internal prefixes to datesweep_ (from dsw_) to meet WordPress.org’s 4-character prefix guideline. Fresh installs only; no data migration. Removed bundled translation files and the manual textdomain load (WordPress.org handles translations automatically).

2.6.0

  • Undo history: the free plugin keeps your most recent run (previously 5). The new datesweep_keep_runs filter lets add-ons extend the history — DateSweep Pro keeps the last 10 runs.

2.5.2

  • The “no items match” check now runs after extensions filter the job, so add-ons that narrow the selection (e.g. age targeting) report empty results correctly.

2.5.1

  • Undo progress and success message now count items (posts/comments) instead of internal snapshot rows, so runs that include ACF fields report correct numbers.

2.5.0

  • Plugin renamed to DateSweep. Slug, text domain and all internal prefixes updated (datesweep_). No functional changes.

2.4.0

  • New extension seams for add-ons: datesweep_form_rows action (extra form rows), datesweep_job_data filter (attach data to a job), datesweep_batch_processed action (post-batch processing) and datesweep_restore_snapshot action (restore custom snapshot types).

2.3.0

  • Translations added: German (de_DE), Dutch (nl_NL, nl_BE) and French (fr_FR, fr_BE), plus a POT template.
  • The dry-run preview limit is now filterable (datesweep_preview_limit) for the Pro add-on.
  • New public helper DSW_Processor::range_from_preset() used by scheduled (Pro) runs.
  • Confirmation dialog now mentions that runs can be undone.

2.2.0

  • Undo/rollback: every run snapshots the previous dates before writing; the new “Recent runs” list restores them with one click (batched, with progress).
  • The last 5 runs are kept; snapshots are pruned automatically and removed on uninstall.
  • New action hook: datesweep_post_dates_restored.

2.1.0

  • New “All content” tab: one freshness pass across every public post type at once — ideal before launching a site built from an older template.
  • Dry-run preview: see current → proposed dates for a sample of matching items before committing.
  • Post status selection: optionally include drafts, pending and private items.
  • New extension filters: datesweep_collected_post_ids, datesweep_new_timestamp.

2.0.0

  • Complete rewrite: OOP architecture, batched AJAX processing with progress bar.
  • Native date pickers; removed all CDN dependencies (moment.js, daterangepicker).
  • Full sanitization, escaping, nonce and capability hardening.
  • Fixed: modified date can no longer be set before the published date (optional guard, on by default).
  • Object cache is now invalidated after every update.
  • Added datesweep_post_dates_updated action hook.
  • Uninstall cleanup.

Meta

  • Version 2.6.1
  • Last updated 11 hours ago
  • Active installations Fewer than 10
  • WordPress version 6.0 or higher
  • Tested up to 7.0.2
  • PHP version 7.4 or higher
  • Language
    English (US)
  • Tags
    bulk editchange datemodified datepost datepublished date
  • Advanced View

Ratings

No reviews have been submitted yet.

Your review

See all reviews

Contributors

  • digtiz

Support

Got something to say? Need help?

View support forum

  • About
  • News
  • Hosting
  • Privacy
  • Showcase
  • Themes
  • Plugins
  • Patterns
  • Learn
  • Support
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Five for the Future
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

Español de Honduras

  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
El código es poesía.
The WordPress® trademark is the intellectual property of the WordPress Foundation.