How to Disable Comments in WordPress (2026) — 4 Methods Without a Plugin

WordPress comments attract more spam than conversation, slow down page load with Gravatar requests, and clutter pages where you never wanted them in the first place. Here are the four methods that actually disable them — site-wide, per post type, or per post — including the one-line filter that overrides everything else.

mysite.com/blog/hello-world/
SimpleReview extension
W My WP Site Edit Post 12 🔍 AI Review
Howdy, admin
HomeBlogAboutContact
Hello World — My First Post
12 Comments
cheap_meds_bot Buy v1agra cheap online click here…
seo_link_farm Great post! Visit my casino site…
Leave a Reply
✓ Comments are closed.
Comment×
Disable comments site-wide|
Fix it ✓ Done
waiting for selection…
Element detected
Hookcomments_open
Filefunctions.php
Fix plan
Add comments_open filter returning false for all post types
Result
Comments disabled site-wide. Existing spam hidden.
✓ Auto-deployed
fix: disable WP comments site-wide
functions.php +4 lines
Click SimpleReview → select the comments section → Fix it → comments disabled
Already drowning in spam comments? → SimpleReview reads your theme, picks the safest disable method for your setup, and sends a PR — no Discussion settings hunt, no broken pages.

Key Takeaways

  • Discussion → Settings only affects new posts — existing posts keep their original setting.
  • To disable comments on all existing posts: Bulk Edit in Posts → All Posts, or one WP-CLI command.
  • The most reliable method is a comments_open filter that returns false — overrides every per-post setting.
  • The popular Disable Comments plugin (by WPDeveloper, 2M+ installs) does all of this through a UI, including removing the comments admin menu.
  • CSS hide tricks leave the comment markup in the HTML source — search engines and screen readers still see it. Use a real filter instead.

Method 1: Discussion Settings (New Posts Only)

The simplest way to stop comments on future posts:

  1. Go to Settings → Discussion in your WordPress dashboard.
  2. Uncheck "Allow people to submit comments on new posts".
  3. Click Save Changes.
This only affects new posts. Every post created before you unchecked the box keeps its previous setting. You'll need Method 2 or 3 to disable comments on existing posts.

Method 2: Bulk Edit (Disable on All Existing Posts)

Use this to retroactively disable comments on posts you already published:

  1. Go to Posts → All Posts.
  2. Click Screen Options (top right) → set Number of items per page to a number larger than your post count (e.g., 999).
  3. Check the top checkbox in the table header to select every post.
  4. From the Bulk actions dropdown, choose Edit → click Apply.
  5. In the bulk edit panel, set Comments to Do not allow → click Update.

Repeat for the Pages screen if you want to disable comments on pages too. For sites with thousands of posts, use WP-CLI instead:

# Disable comments on every post
wp post update $(wp post list --post_type=post --format=ids) --comment_status=closed

# Same for pages
wp post update $(wp post list --post_type=page --format=ids) --comment_status=closed

Method 3: Code Snippet (The Definitive Fix)

For total control, add this to your child theme's functions.php or to a Code Snippets entry:

// 1. Disable comments and pings on all post types, ignoring per-post settings
add_filter( 'comments_open', '__return_false', 20, 2 );
add_filter( 'pings_open',    '__return_false', 20, 2 );

// 2. Hide existing comments from the front-end (return empty array)
add_filter( 'comments_array', '__return_empty_array', 10, 2 );

// 3. Remove the Comments admin menu item
add_action( 'admin_menu', function() {
    remove_menu_page( 'edit-comments.php' );
} );

// 4. Remove Comments from the admin bar
add_action( 'wp_before_admin_bar_render', function() {
    global $wp_admin_bar;
    $wp_admin_bar->remove_menu( 'comments' );
} );

This four-block snippet covers every surface where comments appear: the front-end form, existing comment listings, the WP-Admin sidebar, and the top admin bar counter. Because comments_open is filtered with priority 20, it overrides the per-post Discussion meta box and any plugin that sets it earlier.

Why a filter beats Discussion settings: the Discussion setting writes a meta value to each post when it's created. A comments_open filter intercepts every call site-wide at runtime, so it works even on posts that were saved with comments allowed years ago.

Method 4: Disable Comments Plugin

If you'd rather not edit code, the Disable Comments plugin by WPDeveloper (2M+ active installs) does the same thing through a settings panel:

  1. Install Disable Comments from Plugins → Add New.
  2. Go to Settings → Disable Comments.
  3. Choose Everywhere to disable site-wide, or On certain post types to keep comments on, e.g., posts but not pages.
  4. Click Save Changes. The plugin also offers a one-click Delete Comments tool to wipe existing spam from the database.

The plugin is multisite-aware, has no settings page bloat, and unlike a code snippet it can be reverted by deactivating. For most non-developers, it's the right choice.

What Not to Do — CSS Hide

Tutorials sometimes suggest:

#comments, #respond { display: none; }

This hides the visual section but the comment HTML and form action still ship to the browser. Spambots scrape the markup and submit anyway, search engines index the spam, and screen readers announce it. Use Method 3 or 4 to remove it from the server-side render.

Method Comparison

MethodAffects existing posts?Removes admin menu?Survives theme updates?Best for
Discussion settings❌ No❌ No✅ YesBrand-new sites
Bulk Edit / WP-CLI✅ Yes❌ No✅ YesOne-time cleanup
functions.php filter✅ Yes (overrides)✅ Yes✅ Yes (child theme)Developers, permanent fix
Disable Comments plugin✅ Yes✅ Yes✅ YesNon-coders, multisite
CSS hide❌ Visual only❌ No✅ YesDon't use

How SimpleReview Handles This

If your site is already loaded with thousands of spam comments and you don't trust yourself to pick the right method, SimpleReview can do it in three clicks:

  1. Install the Chrome extension and open any post on your WordPress site.
  2. Click the SimpleReview icon, then click the comments section below the post.
  3. Type "Disable comments site-wide" and click Fix it. SimpleReview adds the four-block comments_open snippet to your child theme's functions.php, opens a PR, and (optionally) runs a WP-CLI command to delete existing spam.

It's particularly useful when you have a custom theme with comment templates spread across multiple files, or when a previous developer added their own filters that you'd rather not break.

Disable WordPress Comments in 3 Clicks

Click on any element on your site — SimpleReview identifies the right hook, writes the snippet, and opens a PR.

Install SimpleReview Chrome Extension →

Prefer a WordPress plugin? Download SimpleReview for WordPress → — installs in 30 seconds, no Chrome required.

Frequently Asked Questions

How do I disable comments on all posts at once?
Use Posts → All Posts → check the top checkbox → Bulk actions → Edit → set Comments to "Do not allow" → Update. For sites with hundreds of posts, run wp post update $(wp post list --post_type=post --format=ids) --comment_status=closed in WP-CLI instead.
Why are comments still showing after I disabled them in Discussion settings?
The Discussion setting only affects posts created after the change. Existing posts keep their previous comment status. Use Bulk Edit (Method 2) or the comments_open filter (Method 3) to override per-post settings retroactively.
What's the difference between disabling and closing comments?
"Closed" stops new comments but keeps existing ones visible. "Disabled" hides the entire section, including past comments and the reply form. The comments_array filter returning an empty array (Method 3) removes existing comments from the front-end without deleting them from the database.
Can I disable comments only on pages, not on blog posts?
Yes — wrap the filter in a post-type check: add_filter('comments_open', function($open, $post_id){ return get_post_type($post_id) === 'page' ? false : $open; }, 20, 2); Or use the Disable Comments plugin's "On certain post types" option.
Will disabling comments hurt my SEO?
No direct ranking penalty. Comments can add long-tail content, but they also load Gravatar requests, comment-reply JavaScript, and spam links — all of which hurt Core Web Vitals. If your comments are mostly empty or spam, disabling them improves page speed without affecting rankings.

Related WordPress Fixes

Sources