2026年11月13日

2026年11月13日

WordPress Comments Not Posting: Error Messages, Causes and Fixes

This article is a localized edition of the Japanese original. Read the Japanese original

When comments cannot be posted in WordPress, the cause falls into one of four groups: WordPress is returning an error, the comment was sent but is waiting for approval, the form itself is not shown, or the server or a plugin is stopping the submission. The message you see narrows down the cause, so check the message first.

The messages and behavior in this article were confirmed by actually submitting comments on WordPress 7.1.3 (Japanese) as of November 2026. The messages below are those of the Japanese admin; the English UI shows the corresponding English messages.

Step 1: Identify the cause from the error message

Comments are sent to wp-comments-post.php. When WordPress does not accept a submission, the message appears on a page titled "Comment Submission Failure".

Message shown HTTP status Cause and fix
Error: Please fill the required fields. 200 The name or email is empty. Shown when Comment author must fill out name and email is on
Error: Please enter a valid email address. 200 The email address is not in a valid format
Error: Please type your comment text. 200 The comment text is empty
Error: Your comment is too long. 200 The text is too long (exceeds what the database column can hold)
Duplicate comment detected; it looks as though you've already said that! 409 A comment with the same content already exists on the same post, including double submissions
You are posting comments too quickly. Slow down. 429 Another comment was sent within 15 seconds of the previous one
Sorry, comments are closed for this item. 403 Comments on that post are closed (Step 3)
Sorry, you must be logged in to comment. 403 Users must be registered and logged in to comment is on

The posting-too-quickly limit (15 seconds) applies to comments from the same IP address (or the same user when logged in) or the same email address. It does not apply to logged-in users who can manage comments (administrators and editors).

If you see a screen not in this table (an error page from your hosting company, a blank white screen, a bare "403 Forbidden" and so on), the submission is most likely being stopped before it reaches WordPress; go to Step 4.

In your browser's developer tools, the Network tab shows the status code of the POST to wp-comments-post.php. When the comment is accepted, the response is a 302 redirect back to the post.

Step 2: If the comment was sent but does not appear, check “Pending”

If, after sending, you are taken back to the post and see "Your comment is awaiting moderation. This is a preview; your comment will be visible after it has been approved." where the comment would be, the submission succeeded. Other visitors will not see it until it is approved.

Open Comments in the admin and click Approve on the comment in the Pending list to publish it.

With the default settings, the following Discussion settings (Settings → Discussion) can put comments on hold.

Setting Default When comments are held
Comment author must have a previously approved comment On Comments from people with no previously approved comment (a first-time commenter's comment is held)
Comment must be manually approved Off When on, every comment is held
Number of links to allow in a comment before holding for moderation 2 Two or more links in the text and URL field
Comment Moderation (word list) Empty Comments containing a word in the list

Comments that match Disallowed Comment Keys go to the trash instead of being held. If you use a spam plugin such as Akismet, also check Spam under Comments.

With WP-CLI you can check and approve comments like this:

# List comments awaiting moderation
wp comment list --status=hold --fields=comment_ID,comment_post_ID,comment_author,comment_date

# Approve comment ID 123
wp comment approve 123

# Check the related settings (1 = on, 0 = off)
wp option get comment_previously_approved
wp option get comment_moderation
wp option get comment_max_links

Step 3: If the comment form is missing or comments are closed

If the comment form does not appear at all, or "Comments are closed." is shown, check the following.

  1. Per-post setting: In Posts → All Posts, open Quick Edit for the post and check that Allow Comments is ticked. In the block editor, you can change it under Discussion in the post settings sidebar.
  2. Automatically close comments on old posts: When this setting under Settings → Discussion is on, comments close on posts older than the given number of days (the field's default value is 14).
  3. Default for new posts: Allow people to submit comments on new posts is the default for posts you create from now on. Changing it does not affect existing posts.
  4. Theme: If the theme's templates do not include a comments area (comments_template() in a classic theme, the Comments block in a block theme), the form will not appear even when comments are open.

With WP-CLI you can check and change the state per post:

# Check the comment status of posts (open / closed)
wp post list --post_type=post --fields=ID,post_title,comment_status

# Open comments on post ID 45
wp post update 45 --comment_status=open

Step 4: If something before WordPress is stopping it (WAF, plugins)

If you get a screen not in the table above, or nothing happens when you submit, check in this order.

  1. Server WAF: A hosting company's WAF (web application firewall) may judge comments containing code or URLs as attacks and return 403. Look at the WAF log in your server control panel and check whether submissions to wp-comments-post.php are recorded. If it is a false positive, check your hosting company's guidance on whether you can exclude only the matching rule.
  2. Security and anti-spam plugins: Plugins that add a CAPTCHA or similar check to comments stop the submission when that check fails. Review the plugin's settings and logs.
  3. Plugin or theme conflicts: If you cannot deactivate plugins one by one on a live site, the troubleshooting mode of the official "Health Check & Troubleshooting" plugin lets you test with plugins disabled for your own login session only.
  4. PHP errors: If you get a white screen, enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php and check the errors written to wp-content/debug.log. Revert the settings when you are done.
<?php
// Add above the require_once ABSPATH . 'wp-settings.php'; line in wp-config.php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); // Do not show errors on screen

Make sure you notice new comments

Turning on Anyone posts a comment and A comment is held for moderation under Email me whenever in Settings → Discussion makes it harder to leave held comments unattended. If notification emails do not arrive, check how your site sends email.

Related articles

Questions about WordPress? The publisher of this site is based in Japan and replies in Japanese. Contact (Japanese)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲