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.
- 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.
- 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).
- 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.
- 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.
- 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.phpare recorded. If it is a false positive, check your hosting company's guidance on whether you can exclude only the matching rule. - 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.
- 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.
- PHP errors: If you get a white screen, enable
WP_DEBUGandWP_DEBUG_LOGinwp-config.phpand check the errors written towp-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
- How to prevent WordPress comment spam (Akismet, honeypot, reCAPTCHA)
- How to set up Akismet and review spam decisions
- How to fix WordPress emails not being sent
Questions about WordPress? The publisher of this site is based in Japan and replies in Japanese. Contact (Japanese)