Publish a blog post that links to another post on your own site. Check your comments queue an hour later. You’ll find a pingback — from your own site, to your own site. WordPress just notified itself that it linked to itself.
This happens every single time you create an internal link. On a site with active internal linking (which is SEO best practice), you can end up with dozens of self-referential pingback “comments” cluttering your moderation queue and database.
It’s one of the oldest WordPress annoyances, and it still exists in 2026.
What are self-pingbacks?
Pingbacks are an automated notification system. When you publish a post that contains a link, WordPress sends a ping to the linked site saying “hey, I just linked to you.” The receiving site can then display this as a comment, creating a sort of cross-blog conversation.
The problem: WordPress doesn’t check whether the link points to your own site. It sends the ping regardless. So linking to yoursite.com/another-post/ from yoursite.com/new-post/ triggers the same mechanism as linking to an external site.
The result is a pingback comment on your own post, from your own site, saying essentially “this post was mentioned in [your other post].” It shows up in your comment moderation queue, adds a row to your wp_comments database table, and requires manual action to dismiss.
Why should you care?
Comment spam from yourself. Self-pingbacks appear as pending comments. If you have comment moderation enabled, you have to manually approve or trash each one. If moderation is off, they appear publicly as comments on your posts — looking spammy to visitors.
Database bloat. Every self-pingback creates a comment record and associated metadata. On a site with heavy internal linking, this adds up. I’ve cleaned client databases with hundreds of self-pingback comments that served zero purpose.
Wasted server resources. Each pingback triggers an HTTP request from your server to your own server. WordPress loads the full stack to process each one — sending the ping, receiving it, validating it, creating the comment. For a post with 10 internal links, that’s 10 unnecessary round-trip requests.
It breaks nothing to remove. Unlike some WordPress features, there’s zero downside to disabling self-pingbacks. You’re not losing any functionality — you’re stopping a bug-like behavior that WordPress has never bothered to fix in core.
The quick fix
// Disable self-pingbacks
add_action( 'pre_ping', function( &$links ) {
$home = home_url();
foreach ( $links as $l => $link ) {
if ( strpos( $link, $home ) === 0 ) {
unset( $links[$l] );
}
}
});
This intercepts the pingback process before any requests are sent. Any link pointing to your own site is removed from the ping list. External pingbacks to other sites (if you use those) still work normally.
Four lines of actual logic. That’s all it takes to fix a behavior that’s annoyed WordPress users for over a decade.
The one-click solution
OvKit includes Disable Self-Pingbacks under Features → Cleanup. One toggle, zero self-referential pingbacks. External pingbacks remain unaffected if you want to keep those.
What happens after you fix this?
- No more self-referential comments appearing in your moderation queue
- Fewer unnecessary HTTP requests when publishing posts with internal links
- Cleaner comments database — only real comments from real people
- Internal linking stays perfectly functional — links work normally, only the pingback notification is removed
FAQ
Will this affect pingbacks from other websites?
No. This only stops pingbacks where the source and destination are both your own site. If another blog links to you and sends a pingback, it still comes through. If you want to disable all pingbacks entirely, uncheck “Allow link notifications from other blogs” in Settings → Discussion.
Should I also disable trackbacks?
Yes, if you’re cleaning up. Trackbacks are the older, manual version of pingbacks and are almost exclusively used for spam in 2026. You can disable them in Settings → Discussion by unchecking “Allow link notifications from other blogs (pingbacks and trackbacks).”
Can I delete existing self-pingback comments?
Yes. In your WordPress admin, go to Comments, filter by type “Pingback,” and bulk-delete the ones from your own domain. Or run this SQL query (back up first): DELETE FROM wp_comments WHERE comment_type = 'pingback' AND comment_author_url LIKE '%yourdomain.com%';
Related reads: