How to Publish Scheduled WordPress Posts at The Right Time

James Parsons by James Parsons • Updated May 31st, 2022

0:00 Listen to audio podcast

Missed Scheduled Date

You're done! You've spent hours upon hours over the last few days creating a fantastic, top-tier blog post. You've got the writing optimized and packed with value. You've added in a dozen great, unique images. You've filled out all the meta fields and even implemented relevant Schema. There's just one thing left to do: hit publish.

There's just one problem.

It's three in the morning. If you publish it now, who's going to see it?

Scheduling your WordPress blog posts for publication at an ideal time is a surprisingly helpful technique. The actual act of scheduling is easy (unless it goes wrong; more on that later), but you have to know when to schedule your posts to be published.

So, let's talk about it!

Are Scheduled Blog Posts Important?

The first question you might ask is whether or not you even need to schedule blog posts.

Scheduling and timing are essential for social media, of course. But, social media is a lot more direct and time-sensitive than blogging. People generally check your blog on their schedules, and most of your traffic comes from long-term, evergreen visits. Unless you're a news site, it's less about the timing of any specific post and more about always having something fresh and new.

The truth is, the exact timing of your blog posts doesn't matter to most of your visitors.

Most people who show up on your site show up to older posts, days, weeks, months, or even years after they were initially published. They won't care if you published at 10 AM or 11 PM, or 3:48 PM.

Moreover, since a good portion of your traffic comes from Google, you must acknowledge that Google's indexation process takes time - just because you published it at 10 AM on Friday doesn't mean it'll be added to the search index and appropriately ranked at 10 AM. More likely, there will be delays from hours to days (or even weeks).

That's not to say that you shouldn't schedule your posts. There are three main reasons to do so, in my view.

1. The first reason is that having a regular schedule "trains" the Google bots to check your site at the correct times to pick up your content immediately. Google doesn't like spending processing cycles sending their bots out for no reason.

Index Coverage Report

They try to develop schedules for when they should check different domains for updates. A large part of that is building an awareness of content publication patterns.

You can help influence this schedule in two ways. First is, of course, scheduling your blog posts. When you plan them for consistent times and spreads throughout the week, Google will see the patterns and can know to check shortly after those times. The second is to use a sitemap that identifies when content is posted or updated, so Google can check the sitemap rather than reindexing your site every time.

2. The second reason is that those users who like to be among the first to read your content will be ready to go when it shows up. The majority of your users won't be in this category, but some will, and giving them a pattern they can feel good about following is a pretty small ask for a decent amount of benefit.

Email Newsletter Template

Inconsistency makes it harder for those users to become invested in your site, and they may start to forget about you over time.

3. The third reason is to build out an editorial calendar since you should be finishing and setting a schedule for your posts well before they go live. The more of a backlog you build, the easier it is to maintain a consistent schedule in publishing, with the flexibility to move things around if you want to prioritize specific topics.

Example Content Calendar

So, even if you don't get as much direct benefit from scheduling a blog post as you would a social media post, it's still worth doing.

When Should You Schedule Posts?

If you're going to schedule posts, you have to decide when to publish them. I always maintain that consistency is the most critical factor, but how granular do you need to be?

To me, consistency means specific days of the week regularly. I publish a new post every three days, like clockwork. It doesn't work out to a perfect, even distribution across weeks – no simple Monday and Friday publishing – but it's worked out for me.

I don't usually care about a specific, to-the-minute schedule. I always publish at some odd minute throughout the hour; 3:48, 2:51, 12:13, etc. Why? It probably looks weird if all of my posts are scheduled at noon every day.

Does it have a significant impact? Probably not. Again, a tiny proportion of your audience will be waiting for new content to drop. Most people will get it long after it was published or via a social media feed, newsletter, or another source.

Scheduled Post

If you want, you can dig into the peak active hours for your users and find the ideal times of day and days of the week to publish for the maximum chance to capture traffic and go viral. I haven't seen the difference to be truly meaningful at "small business" levels of traffic. Maybe if you're a large enough company that the difference between publishing at 10 AM versus noon is tens of thousands of hits, then you can worry about it.

I focus more on evergreen traffic and longevity in my content than I do on immediately viral content, so it's less impactful. You can decide for your own business which is more important, and that's fine! There are also many resources out there to dig into it, like Monster Insights and Blogging Wizard tutorials on the subject:

Three Scheduling Issues to Watch For

I've seen a handful of problems crop up with scheduled WordPress posts in all my time running blogs.

Typically, with WordPress sites, scheduling posts is easy. When you publish a post, instead of clicking on the publish button to make it live immediately, you click to publish at a specific time. Set the future date, set the time, click the blue schedule button, and you're good to go.

Z
Z
Z
Is your blog earning you business? If not, let's fix that.

We create blog content that converts - not just for ourselves, but for our clients, too.

We pick blog topics like hedge funds pick stocks. Then, we create articles that are 10x better to earn the top spot.

Content marketing has two ingredients - content and marketing. We've earned our black belts in both.

If you run an internet-based business and are looking to scale, schedule a call to speak with our founder:
Sometimes when you click schedule, it will publish at the wrong time, display the wrong date, or miss your scheduled time entirely.

I've encountered three main issues between my blog and the blogs I manage for my clients, and I've compiled the solutions here.

Issue 1: Time Zone Disconnect

Time zones can be a pain when you're scheduling posts. A simple example is planning an article when you're in Pacific Time will often still result in the post-publication date being listed in Eastern Time. In rare cases, this can misfire and publish a post much earlier or later than you intended.

Timezone Selection

Luckily this one is pretty easy; you need to make sure you schedule posts appropriately for the time zone. Then, you need to adjust for the time difference between your time zone and your audience. That, or change your default time zone in your WordPress dashboard so it all displays and functions correctly for you.

Issue 2: Update Versus Publish Date

Many blogs recently, my own included, have started to switch away from displaying the date the post was published and more towards the date it was last updated. Some blogs decide to show both, and that's fine. I prefer just the "Updated" date.

For SEO purposes, Google doesn't necessarily care. They know when you created a post based on the time they indexed it, so they still have that verification in place if someone scrapes content, backdates a stolen copy, or otherwise tries to scam the algorithm. They can also see when and how often you've updated it.

Displaying Updated Date

It's beneficial for users, though. When browsing search results, you can generally see the date the post was last updated in the results listing. Users can then find the most updated resource, rather than gambling on older resources and hoping one has been more recently updated. It could improve your click-through rate and give your readers more confidence in your content.

This practice is acceptable, but what happens when you have your site set to display the last updated date and then schedule a post for the future?

Unfortunately, it doesn't work quite right. In my experience, if you schedule a post today for next week, with the "last updated" date as your preferential display date, it records the date you scheduled it in WordPress, not the date it was scheduled to be posted.

Your "last updated" date will be today, not next week.

It's not difficult to fix this, but you need to know your way around your WordPress website. Specifically, you need to know how to add some custom code.

Here's the code block:

/**
 * Scheduled posts should update modified date when published
 */
 
function update_modified_date_to_post_date( $post ) {
	$updated_data = [
		'ID'                => $post->ID,
		'post_modified'     => $post->post_date,
		'post_modified_gmt' => $post->post_date_gmt
	];
	wp_update_post( $updated_data );
}
add_action( 'future_to_publish', 'update_modified_date_to_post_date', 10, 1 );

Here are the instructions to implement it:

  • Log into your WordPress admin dashboard.
  • Click Appearance.
  • Click Theme File Editor.
  • Choose Functions.php.
  • Copy the code listed above to the bottom of your functions.php file.
  • Click Update File to save your changes.
  • Test your site to make sure it didn't break.

A quick note:

This upgrade isn't perfectly safe. If you miss a semicolon or accidentally commit a code error to your functions.php file, it can temporarily break your site. Ensure you have a backup of the file to replace it if it fails.

Many sites, like WP Beginner, recommend using a custom WordPress plugin or a code snippets plugin to manage your code injections without having to edit a file directly. This technique is safer and is less likely to get overwritten when your WordPress theme or WordPress itself updates, but it's slightly more complicated to set up.

Either way, this code syncs the date of scheduling and the date last updated. This code solves your problem quickly and easily. I copied this code from my functions.php file, and it's in use on this website.

Issue 3: Crons Don't Run

A "cron" is a task set to execute at a specific time. It's been used throughout computing for about as long as programs have existed, and it's not unique to WordPress. It is, however, how WordPress executes time-delayed operations like, for example, publishing a scheduled post.

In 99% of the cases, this works fine. Occasionally, though, some issue will crop up, and the cron job won't run. When you next log into your dashboard, you find a big glaring "scheduled post didn't publish" error. You'll miss your published post schedule, and the whole house of cards that was set up to promote it failed to execute. That's part of the problem with automation; if any step fails, the entire thing fails.

Why do cron jobs fail? WordPress uses the wp-cron.php file to determine when to execute a cron job. That file is checked when a user visits your site and loads it up, which can be inconsistent. Some web hosts have issues with executing what's in the file, and if you get a sudden surge of visitors, it can even run more than once simultaneously. It's a mess, in a hacky way.

One option to solve this is the Scheduled Post Guardian plugin. This WordPress plugin checks your scheduled posts to make sure they get appropriately published. If they don't, it will re-schedule them, and hopefully, it will work the next time. It checks every three minutes unless you have no scheduled posts, in which case it checks every 15 minutes.

Scheduled Post Guardian

Unfortunately, it doesn't always work. It didn't fix my problem; it just retries until it either works or gives up, so if something broke the scheduled date the first time around, it's just going to hit the same error again. I haven't had good luck with it, but it has many good reviews. I see it more as a bandaid than a solution to the unreliable WordPress cron.

My go-to solution is a third-party service called EasyCron. Instead of relying on WordPress to correctly generate and execute a cron job, you create a "real" cron job and let the EasyCron servers fire your cron manually without skipping a beat. You can also set up notifications in-case your cron fails and you need to start troubleshooting. It's worked great for me; your mileage may vary.

EasyCron

To use it, you'll need to disable the wp-cron service, learn how to make your cron jobs, and use the service to run them. Ideally you want to run that cron job every minute, and it would be for the following URL (replace the example domain with yours):

https://www.example.com/wp-cron.php

Hopefully, once you've sorted out those issues, you should be able to schedule your posts correctly. From there, it's just a matter of determining when, exactly, you want your posts to be scheduled.

Written by James Parsons

James Parsons is the founder and CEO of Content Powered, a content creation company. He’s been a content marketer for over 10 years and writes for Forbes, Entrepreneur, Inc, and many other publications on blogging and website strategy.