---
title: How to disable comments in WordPress, completely
description: Settings → Discussion only stops new comments. How to disable comments in WordPress completely — existing posts, leftover UI, bots, and a deletion trap.
pubDate: 2026-08-08
source: https://wpproadmin.com/guides/disable-comments-wordpress/
---

Search "disable comments wordpress" and most answers stop at one screen: Settings → Discussion, uncheck a box, done. That screen is real and it is a start, but it only ever changes what happens to posts you haven't published yet. Every post and page you already have keeps its comments open, exactly as before, because that setting governs new content only. Getting this right takes a few more steps than most guides mention — and one wrong step can quietly destroy money.

## Settings → Discussion: what it actually changes

Open **Settings → Discussion** and the top of the page has a checkbox: "Allow people to submit comments on new posts." Turn it off and every post you publish from now on is born with comments closed. It changes a default, nothing more. Nothing already on your site is touched.

Two boxes lower down on the same screen look like they might help and don't. "Allow link notifications from other blogs (pingbacks and trackbacks)" controls a different field entirely — `ping_status`, not `comment_status` — and it has the same new-content-only limit. "Automatically close comments on posts older than \_\_ days" gets closer, but it closes comments by age, not by choice, so anything younger than your cutoff stays open regardless of whether you wanted it commentable.

<!-- screenshot: Settings → Discussion page with "Allow people to submit comments on new posts" unchecked -->

This is the opposite problem from [changing a WordPress slug](/guides/change-wordpress-slug-redirect/), where core quietly does more than people expect and redirects the old URL for you. Here core does less than the settings page implies. Turning the default off is step one, not the whole job.

## Close comments on what you already have

For existing content, the tool is bulk edit, and it has to be run once per post type. Go to **Posts**, select every post (or filter to the ones you want), open the **Bulk actions** dropdown, choose **Edit**, and apply. In the panel that opens, the **Comments** dropdown has three states — leave as-is, allow, do not allow. Set it to **Do not allow** and click **Update**.

<!-- screenshot: Posts list bulk-edit panel open, Comments dropdown set to "Do not allow" -->

Closing comments this way stops new submissions — the comment form disappears from the post. It doesn't touch the comments already there. Anything already approved keeps showing on the page exactly as before; closing changes intake, not display.

Pages are a separate post type with their own list screen, so this has to be repeated at **Pages**, even though the panel looks identical. If you run a store, custom post types matter here too — WordPress's `wp_comments` table isn't reserved for blog comments. Plugins reuse the same table for pingbacks, trackbacks, and, on a WooCommerce site, for order notes (more on that below). Bulk-closing a post type only touches the `comment_status` field on posts of that type; it has no effect on rows attached to something else.

## What's still there after every thread is closed

Closing comments stops new submissions. It does not remove the leftover admin UI built around commenting, and an honest checklist has to include it:

- The **Comments** menu item stays in the sidebar, showing every comment you've ever had (now just uneditable to add to).
- The **Recent Comments** dashboard widget and the "At a Glance" comment count keep reporting on old data.
- The speech-bubble icon in the admin bar sticks around.
- **Widgets and blocks** are the one people forget. A "Recent Comments" widget in a sidebar, or a Latest Comments block in a template, reads directly from the comments table and displays whatever's approved there — closed status doesn't hide it. If your theme or a template shows recent comments anywhere on the front end, that display keeps working after you've closed every thread, and it has to be removed separately from **Appearance → Widgets** or the block it lives in.

None of this is dangerous, but a site that's "disabled comments" and still shows a Recent Comments list in the footer looks unfinished, because it is.

## The part most guides skip: bots don't use the form

A common shortcut is hiding the comment form — a theme edit, a CSS rule, removing the `comment_form()` call from a template. It looks finished. It changes nothing that matters to a bot.

Comment submission on WordPress goes to one endpoint, `wp-comments-post.php`, and a script that wants to post spam sends a `POST` request straight to that URL. It never loads your page, never sees your template, never notices that the form is hidden. What it does hit is the same server-side check WordPress runs for every submission: `wp-comments-post.php` looks up the post's `comment_status` and rejects the request if comments are closed. This is exactly why the bulk-edit method above matters more than any front-end hiding trick — a post with `comment_status` actually set to closed rejects a direct bot POST on its own, at the database level, with no form involved. A post that only *looks* closed because the form was hidden in a template still has `comment_status` set to open, and still accepts it.

## Never delete comments on a store

Here's the mistake that matters more than any of the above. Once comments are closed everywhere, it's tempting to reach for a "clean up all comments" tool and empty the table for good. On a WooCommerce site, don't.

We caught this ourselves, on a site we worked on. Its front end showed three comments. A cleanup tool inspecting the actual `wp_comments` table offered to delete 122 rows. The gap between "3" and "122" was WooCommerce: 118 of those rows were order notes — payment confirmations, refund records, "shipped" notes a support agent had typed into an order — stored as comments because WooCommerce uses the same table for everything else, distinguished only by a `comment_type` of `order_note`. One more row was a webhook delivery log written the same way. The remaining three matched what the front end actually showed — and one of those three was itself a genuine product review, not a blog comment, filed under a different `comment_type` again.

Deleting "all comments" on that site wouldn't have touched three blog comments. It would have erased the order history for every customer who'd ever bought something.

The fix is the one this guide has already made: **close, never delete.** Setting `comment_status` to closed on a post touches nothing but that post's own new-comment behavior — every existing row stays exactly where it is, recoverable the moment you change your mind. Deleting rows from `wp_comments` doesn't know the difference between an old spam comment and an order note, because at the database level there isn't one. That respect for what's already on your site is the rule the whole plugin is built on, and this is the sharpest version of it we've seen in practice.

## Disable Comments in WP Pro Admin

Disable Comments in WP Pro Admin does the complete version of this in one toggle, live now — no waiting on a future release. Turning it on closes comments across existing content, not just new posts, so there's no separate bulk-edit pass to remember. It also goes a step further than closing alone: where the manual method above leaves already-approved comments showing on the page, this hides those too, without writing a single change to the database. It rejects direct `POST` requests to `wp-comments-post.php` the same way a correctly-closed post does, so the bot gap above is covered without any form-hiding involved. And it follows the rule from the story above to the letter: comments are hidden, never deleted. Turn the feature off and every comment — and every WooCommerce order note sitting in the same table — is exactly where it was, visible again immediately.

<!-- screenshot: WP Pro Admin dashboard, Disable Comments toggle switched on -->

WP Pro Admin is a [free download](/), GPL, and every one of its features is fully reversible — switch it off and your site is exactly as it was.