In a previous knowledgebase article, we discussed trackbacks. Today we want to talk about pingbacks, which are slightly different, even though both terms are thrown around together a lot. A pingback is basically an automated comment that gets created when another blog links to you. There can also be self-pingbacks which are created when you link to an article within your own blog.
How a Pingback Works
So what is a pingback exactly? Well, to better understand it here is an example of how a pingback works.
- Person A posts something on their blog and links to an article on person B’s blog.
- A pingback is automatically sent to person B’s blog and a comment is generated that person B can then approve.
Note: Both must have pingbacks enabled on their blogs for this to work. Depending upon the WordPress theme pingbacks normally show above or below the standard comments on a post. If you are running a 3rd party commenting system such as Disqus then pingback comments will not show up.
How to Disable Pingbacks
Pingbacks can be a great way to get notified of people linking to you, but they can also be annoying. There are much better tools out there now to track backlinks and mentions; such as Ahrefs, Buzzsumo, and SEMrush. So in most cases, you might want to simply disable pingbacks on your WordPress blog. Follow the steps below.
1. Disable Pingbacks from Other Blogs
Click into the “Discussion” area in your WordPress dashboard and uncheck the option “allow link notifications from other blogs (pingbacks and trackbacks) on new articles.”
2. Disable Self Pingbacks
When it comes to disabling self-pingbacks you have a couple options. You can use the free No Self Pings plugin. Or you can use a premium plugin like perfmatters (developed by a team member at Kinsta), which allows you to disable self-pingbacks, along with other optimizations for your WordPress site.
Or you can create a child theme, after making a backup of your site, and add the following to your child theme’s functions.php file.
function wpsites_disable_self_pingbacks( &$links ) {
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, get_option( 'home' ) ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'wpsites_disable_self_pingbacks' );