Family Encyclopedia >> Electronics

How to Delay Posts in WordPress RSS Feeds: Catch Errors and Outrank Scrapers

Recently, one of our readers asked if it's possible to delay posts from appearing in the WordPress RSS feed. This technique prevents accidental errors from reaching subscribers and helps you outpace content scrapers for better SEO. In this guide, we'll walk you through the process step by step.

How to Delay Posts in WordPress RSS Feeds: Catch Errors and Outrank Scrapers

Why Delay Posts in Your WordPress RSS Feed?

A common issue: you publish a post with a grammar or spelling mistake, and it's instantly sent to RSS and email subscribers.

How to Delay Posts in WordPress RSS Feeds: Catch Errors and Outrank Scrapers

Delaying the feed gives you a brief window to spot and correct errors on your live site before feeds update.

Content scrapers also rely on RSS feeds to copy your posts the moment they go live.

For newer sites with limited authority, these scrapers often outrank the originals in search results.

How to Delay Posts in WordPress RSS Feeds: Catch Errors and Outrank Scrapers

By delaying at the source, you allow search engines time to crawl and index your content first.

Now, let's implement this simple solution.

How to Delay WordPress RSS Feed Posts

This method involves adding a short code snippet to WordPress. If you're new to this, see our beginner's guide on how to paste code snippets into WordPress.

Add the following to your theme's functions.php file or a site-specific plugin:

function publish_later_on_feed( $where ) {
    global $wpdb;
    if ( is_feed() ) {
        // Timestamp in WP format
        $now = gmdate( 'Y-m-d H:i:s' );
        // Wait time in integer
        $wait = '10'; // minutes
        // https://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
        $unit = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
        // Add SQL syntax to $where
        $where .= " AND TIMESTAMPDIFF( {$unit}, post_date_gmt, '{$now}' ) > {$wait} ";
    }
    return $where;
}
add_filter( 'posts_where', 'publish_later_on_feed' );

This code activates only on feed requests. It modifies the query's WHERE clause to exclude posts newer than your specified delay (here, 10 minutes).

Customize $wait freely—try 60 for one hour or 120 for two.

We hope this helps you control your WordPress RSS feed effectively. For more, check our guide on displaying content only to RSS subscribers.

If you found this useful, subscribe to our WordPress YouTube channel for video tutorials. Follow us on Twitter and Facebook too.