MSC Post Expiry
·
Automatically expire posts and pages on a schedule — trash, delete, draft, make private, recategorise or redirect. With notifications and analytics.
Set an expiration date on any post or page and MSC Post Expiry handles the rest — automatically.
When the date arrives, choose what happens: move to trash, permanently delete, revert to draft, make private, move to a different category, or keep the post live and redirect visitors. Perfect for limited-time offers, event announcements, job listings, seasonal content and legal notices that must come down on time.
Features:
- Schedule post expiration dates and times from the block editor sidebar or classic editor metabox
- Six expiration actions: move to trash, permanently delete, convert to draft, change to private, move to category, or redirect only
- Custom redirect URLs for expired posts
- Smart Expiry Rules: conditional actions by category, tag, author, post age, comment count, view count, or custom field — with priorities
- Bulk expiry scheduling from the Posts list
- Email notifications before posts expire (1–30 days ahead, to author, admin or both)
- SEO handling for expired posts (noindex/nofollow, canonical URL, 410 Gone status)
- Expiry analytics dashboard with charts (trends, action breakdown, top categories and authors) — Chart.js bundled locally, no CDN
- Action history log
- Works with any public post type, include or exclude mode
- Automatic processing via WordPress cron
- No external services, no tracking — GDPR-friendly
- Translated into 12 languages
- Developer-friendly with helper functions and hooks
Use Cases:
- Temporary promotional content that should disappear automatically
- Time-sensitive announcements
- Seasonal content management
- Event posts that should be archived
- Automatic content cleanup
- Redirect expired offers to current landing pages
- Notify authors before their content expires
The plugin adds a “Post Expiry” panel to the block editor sidebar and a metabox in the classic editor where you can set the expiration date and time. Once the scheduled time passes, the plugin automatically processes the post according to your configured settings.
