Why you don't need the cbnet Ping Optimizer anymore

5
2.8K followers
Updated

This is the explanation I was given when I got the message that I didn't need that plugin anymore. I don't know about the recent hangout but Jay's wabinars happened before this came out:

Hello there! You may be wondering why you're reading this, instead of looking at Plugin settings. Well, the reason that you're not looking at Plugin settings is because there aren't any Plugin settings anymore. In fact, this Plugin doesn't have any functionality anymore.

Why? Because this Plugin's functionality is no longer needed. In fact, this Plugin's functionality may never have been needed in the first place. But regardless of that, it certainly isn't needed now.
How Pings Work in WordPress

Let me explain why, starting with a walkthrough of how pings work in WordPress, courtesy of @Otto42:

1. When a post gets created, updated, inserted, modified, etc., eventually, it always goes through wp_insert_post().
2. wp_insert_post() calls wp_transition_post_status().
3. wp_transition_post_status() does various actions, but importantly it does this:
do_action("{$new_status}_{$post->post_type}", $post->ID, $post);
So the action of new-status and new-post-type is called. In this case, we're interested in the publish status on the post post-type, so publish_post is the action hook.
4. In wp-includes/default-filters.php, we have this:
add_action( 'publish_post', '_publish_post_hook', 5, 1 );
So that causes publish_post to call _publish_post_hook().
5. _publish_post_hook(), among other things, adds the '_pingme' post meta to the post, and schedules the do_pings action for a one-time cron call, which will happen on the next page load (because it's hooked to time() for the schedule).
6. Again in wp-includes/default-filters.php, we have this:
add_action( 'do_pings', 'do_all_pings' );
The do_all_pings() function does all the pings for all the posts that are marked as needing them done at the moment.
Regarding draft, scheduled (future), and edited posts:

1. Draft posts have a post_status of draft, meaning that wp_transition_post_status() calls do_action() on draft_post rather than on publish_post. Scheduled posts have a post_status of future, meaning that wp_transition_post_status() calls do_action() on future_post rather than on publish_post. Thus, neither draft nor scheduled posts get pings sent for them until they actually transistion to publish, since that is when the publish_post action will get fired.

2.

3. Editing posts: editing an existing post will send pings for the post, but do_all_pings() is smart. It calls the pingback() function to send pingbacks to blogs, and that in turn calls the get_pung() function to get the URLs in the post that have already been successfully pinged once before. This is very old code - so old, in fact, that the list of pinged blogs is actually a primary column (pinged) in the wp_posts table.


Why the Ping Optimizer Plugin Isn't Needed

So consider again the Plugin description:

Do you know your WordPress blog pings unnecessarily every time you edit a post? Think how many times you click on "Save and Continue Editing" or "Save" button. Your blog will ping unnecessarily that many times you click on those buttons.

Save your blog from getting tagged as ping spammer by installing this plugin.

After you install cbnet Ping Optimizer:

1. When you create a new post, your blog will ping and notify all the ping services that it has been updated. This encourages search engines and different blog directories/services to index your updated blog properly.

2. When you edit an existing post, it won't send any unnecessary ping to ping services and saves your blog from getting banned by such services.

3. When you post a future post by editing the time stamp, it will ping only when your post appears in future. It won't unnecessarily ping many times when you schedule posts as WordPress does by default.

It should be obvious that most of that just isn't true anymore.

1. Think how many times you click on "Save and Continue Editing" or "Save" button. Your blog will ping unnecessarily that many times you click on those buttons.

As you see above, this isn't true. Saving a draft post does not fire the publish_post action; therefore, no pings are triggered.

2. When you create a new post, your blog will ping and notify all the ping services that it has been updated.

WordPress core functionality does this already.

3. When you edit an existing post, it won't send any unnecessary ping to ping services and saves your blog from getting banned by such services.

As you see above, WordPress intelligently fires pings when a post is edited, by keeping track of previous successful pings and not re-pinging them.

4. When you post a future post by editing the time stamp, it will ping only when your post appears in future. It won't unnecessarily ping many times when you schedule posts as WordPress does by default.

As you see above, scheduling a post fires the future_post action, and not the publish_post action. Thus, until a scheduled post actually transitions to publish, thereby firing the publish_post action, no pings are triggered.

So, none of this Plugin's functionality is needed. You can safely deactivate and uninstall it, with the understanding of why the core WordPress handling of pings works just fine.

Login
Create Your Free Wealthy Affiliate Account Today!
icon
4-Steps to Success Class
icon
One Profit Ready Website
icon
Market Research & Analysis Tools
icon
Millionaire Mentorship
icon
Core “Business Start Up” Training

Recent Comments

13

Thanks Stacy,
Great information!
Best... Jay

You're welcome, glad it helped!

Very helpful information. Thank you for sharing!

Thanks, good to know!

Here's the link to the info. on the Wordpress plug-in page: http://wordpress.org/extend/plugins/cbnet-ping-optimizer/

That was so much more efficient than what I did!

Yes but some of us need to read things twice before they really sink in.lol. So Kudos to you both for your quick help.

You're welcome! :)

Thanks Stacy

I'm not sure about what Jay said, but I got this info at least 2 weeks ago.

Interesting. Jay said to use this plugin, just a couple nights ago, in his Hangout, or, that it is one that he uses. It was part of the demonstration. Whatever he does, there's a good reason for it. I wonder what he has to say about this? Very good post!

It probably doesn't do any harm to keep it. I know some people *believe* there's an advantage in pinging a long list of search engines and directories. However, Google, Bing, Yahoo and Ask suffice for 99.99% of us which is what most SEO plug-ins already do. I've also read from the developer of one SEO plug-in that pinging a long irrelevant list can now be detrimental. Rich.

I can surely see where having the long list could cause trouble. It might even be taken as "gaming the system." I don't have a long list in my instance, just a few of the most important ones. I believe WP comes with these default and they are probably enough weather or not one uses the ping optimizer plugin.

See more comments

Login
Create Your Free Wealthy Affiliate Account Today!
icon
4-Steps to Success Class
icon
One Profit Ready Website
icon
Market Research & Analysis Tools
icon
Millionaire Mentorship
icon
Core “Business Start Up” Training