Comments – GraphComment | AI-Moderated Comment System
Hosted comments, without the usual price to pay Native WordPress comments are where discussions run aground: no live replies, no threading that scales, endless spam. And yet comments are worth fighting for — measured across the GraphComment platform, every commenter draws 21 readers who follow the discussion. That’s audience and engagement you already own, no ad budget required. Hosted comment platforms promise to fix the comment section — but usually at a hidden price: your readers get tracked and served ads, your comments end up locked in someone else’s silo, and your page speed pays for it. GraphComment 5.0 is built to fix the comment section without that price. Here is the deal, point by point — and every claim below is verifiable. 1. Spam never reaches your site. Spam bots don’t fill comment forms — they hammer WordPress’s native comment submission endpoint (wp-comments-post.php) directly, which is why the flood continues even when comments look closed. AI has made that spam cheap, fluent and endless — it no longer looks like spam. With GraphComment active, that endpoint is shut and every comment goes through a moderated pipeline instead: smart filtering, insult detection, trusted-member auto-approval — and AI Moderation Assist, included free for your first 100 AI analyses each month. The AI reads the article before judging the comment, so it catches what keyword filters can’t, then suggests a decision with its reasoning — you stay in control. 2. Actually free — and your readers are not the product. No ads next to your content, ever. No ad-tracking of your readers. The free plan is not a trial: it includes 1M data loads a month — far beyond a typical blog’s traffic — with guest commenting, media embedding, moderation tools and real-time discussions included. And because of point 3, there is no hostage scenario the day you outgrow it. 3. Your comments live in YOUR database — reviewers keep pointing this out. GraphComment continuously synchronizes every comment back into your WordPress database, author identity included — on a schedule, and instantly with the new webhook push. Deactivate the plugin tomorrow and your discussions are still there, in wp_comments, served natively. No export request, no ransom, no dead links. That’s why trying it is risk-free. 4. Your readers comment without creating an account. Guest commenting is on by default, social login is one tap, and your registered users can flow through SSO — included on every plan. Forcing readers to create yet another account is what empties a comment section — GraphComment never does. 5. Near-native performance — measured by independent tests, not just by us. An independent benchmark by Servebolt (2023, updated February 2026) found GraphComment adds as few HTTP requests as WordPress native comments. Our own Lighthouse benchmarks show the same LCP and zero main-thread blocking as a page with no comment plugin at all. 6. Make it yours — without paid add-ons. Your logo, your fonts, fine-grained themes with a beautiful dark mode, hundreds of settings — free. Even the philosophy of your discussion space is yours: Bubble Flow threading that keeps 300-comment debates readable, classic chronological, or flat — switch freely. Elsewhere, image uploads, extra spam protection or comment search come as paid add-ons; here they’re included. And the rest is there too: real-time commenting with instant reply notifications, inline images and videos, one-file import (WordPress WXR or Disqus XML, processed in the background), indexable comments with structured data for search engines, and your comments served as real HTML to the AI crawlers that don’t run JavaScript (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Amazonbot and more, as of September 2026 — your discussions show up in generative engines too), a widget in 21 languages with a back-office in 10 and a fully rebuilt RTL layout, and a two-click connection with a setup wizard that ends on your next action. Hosting in Europe, under GDPR, with you as the data controller. Leaving Disqus? Do it before it costs you your community. A fact worth knowing: Disqus’s own comment export contains no commenter email addresses. The longer you stay, the more of your community’s identity stays behind when you leave. GraphComment is the opposite trade: your commenters live in your WordPress database from day one. Migration is one file: export from Disqus (custom XML) or WordPress (WXR), upload it in the plugin, and large archives are processed in the background. No ads, EU hosting, GDPR — and your community stays yours. Everything essential is in the free plan — no paid add-ons The pieces other comment plugins often sell as paid add-ons — image uploads, extra spam protection, comment search, front-end moderation — are part of GraphComment’s free plan, not a growing bill. Spam is handled at the root, too: instead of filtering comments after bots reach your site, GraphComment closes WordPress’s native comment submission endpoint so automated spam never enters your moderation queue, with AI Moderation Assist included on every plan to catch what filters miss. Already have WordPress comments? They stay exactly where they are. What’s new in GraphComment 5.x Visible in AI engines (GEO) — your discussions are served as real HTML to AI crawlers (GPTBot, ClaudeBot, PerplexityBot and more) and show up in generative answers. Structural spam shield — WordPress’s native comment submission endpoint is closed while GraphComment is active: spam bots hit a wall instead of your moderation queue. AI Moderation Assist, now with a free tier — the AI reads the article, flags risky comments and suggests a decision; free for your first 100 AI analyses each month. Connection in two clicks — a simple popup links your site to GraphComment. No more OAuth forms; new users can create their GraphComment site without leaving wp-admin. Gutenberg block — place the comment area anywhere with the GraphComment block, on block themes and classic themes alike. Shortcode & developer filters — [graphcomment] plus graphcomment_init_args / graphcomment_should_apply filters for full control from your theme (see For Developers). WooCommerce support — enable GraphComment on product pages when you want it. Instant backup sync — a secure webhook wakes the synchronization the moment a new comment arrives, instead of waiting for the next cron run. Diagnostic page — one click runs 7 health checks (connectivity, cron, sync freshness…) and produces a copy-paste report for support. Import by file — WXR and Disqus XML upload for large archives, with background processing. Domain migration (Premium) — move your site to a new domain without losing a single thread; 10,000 threads migrated in seconds. 21 languages & rebuilt RTL — plugin admin translated in 21 languages, moderation back-office in 10, with a proper right-to-left layout for Arabic, Persian and Hebrew. Free customization — logo, fonts, fine-grained themes with dark mode, and free choice of discussion layout (Bubble Flow, chronological or flat). Hardened security — site credentials encrypted at rest, signed API calls, and a modernized PHP 8-ready codebase with automated tests. Everything in the free plan: Real-time discussions — Bubble Flow threading, chronological or flat, your choice Custom logo, fonts, fine-grained themes with dark mode, hundreds of settings Guest commenting, social login, automatic registration Single Sign-On with your WordPress user base — on the free plan too Media embedding, text formatting, badges, community profiles Smart moderation, insult filtering, banning tools, multi-moderators AI Moderation Assist for your first 100 AI analyses each month — the AI suggests, you decide One-file import (WordPress WXR, Disqus XML) — and continuous sync back to your database SEO-friendly indexable comments, structured data, analytics — AI crawlers included (GEO) Sliding sidebar panel, counter & Top widgets Widget translated in 21 languages, spam protection When your community grows — Premium: Domain migration — move your site to a new domain without losing a thread (10,000 threads migrated in seconds) Higher AI Moderation Assist volume — 2,000 AI analyses/month on Starter, 10,000 on Pro (extensions available) Fully automated AI moderation (Enterprise) Editorialize & pin best discussions Live PUSH discussions mode Keyword alerts Restricted right to comment Custom sender & ban emails PUSH notification center The Basic plan is free up to 1M data loads per month. Paid plans start at $29/month (Starter, 1.5M data loads — or $25/month billed annually); Pro is $59/month (5M data loads — or $51/month billed annually). See the full pricing and feature list. Support Search our Knowledge Base for solutions to common troubleshooting questions Check out our support community, Discuss GraphComment, to see if your question has been answered Talk to our Support team at support@graphcomment.com Help translate GraphComment into your language on translate.wordpress.org For Developers GraphComment 5.0 exposes a shortcode and two filters so you can place the widget outside the native comments area and adjust its behaviour from your theme or a small companion plugin, without editing the plugin. Full developer documentation ships with the plugin in HOOKS.md. Only one comment space is rendered per page (first render wins): a second [graphcomment], or a shortcode on a page that already shows the native comments, renders nothing. Shortcode [graphcomment] Place the comment widget anywhere in your content: [graphcomment] [graphcomment uid="my-custom-thread" readonly="true"] uid (optional): custom thread identifier, defaults to the post ID. Use it to share one discussion across several URLs. readonly (optional): readonly="true" forces read-only mode for this instance; otherwise the global setting applies. The shortcode obeys the same display conditions as the native integration (bots in SEO mode, plugin activation range, WooCommerce product exclusion). Filter graphcomment_init_args Adjust the widget parameters (a nested array) before the script is generated. It covers every rendering path (native template, block theme, Gutenberg block, shortcode): add_filter('graphcomment_init_args', function ($args, $post) { $args['behaviour']['uid'] = 'my-custom-thread'; return $args; }, 10, 2); Filter graphcomment_should_apply Enable or disable the widget from code — for example, re-enable WooCommerce product pages (excluded by default): add_filter('graphcomment_should_apply', function ($should, $post) { if ($post && get_post_type($post) === 'product') return true; return $should; }, 10, 2);
Kitgenix CAPTCHA for Cloudflare Turnstile
Kitgenix CAPTCHA for Cloudflare Turnstile adds Cloudflare Turnstile CAPTCHA and anti-spam protection to WordPress, WooCommerce and a wide range of form, membership, community and ecommerce plugins. Challenges are not treated as a client-side decoration: submitted Turnstile tokens are verified server-side with Cloudflare before a protected action is accepted. The plugin is designed for site owners who want to reduce automated login attempts, fake registrations, comment spam, bot-driven checkout abuse and unwanted form submissions while using Cloudflare’s privacy-oriented Turnstile challenge rather than a traditional image CAPTCHA. Configuration, integration controls, diagnostics and local verification metrics are managed inside WordPress. The only service required for CAPTCHA functionality is Cloudflare Turnstile itself; no Kitgenix verification proxy is used. Learn more about Kitgenix WordPress plugins at Kitgenix. Supported WordPress and Plugin Integrations The codebase contains dedicated integrations for: WordPress login. WordPress registration. Lost-password and password-reset flows. WordPress comments. Custom login forms produced with wp_login_form(). WooCommerce login, registration, lost password, checkout and related account flows supported by the integration. Easy Digital Downloads. Elementor forms. Contact Form 7. WPForms. Gravity Forms. Fluent Forms. Formidable Forms. Forminator. Ninja Forms. Jetpack Forms. JetFormBuilder. Kadence Forms. MailPoet. bbPress. BuddyPress. wpDiscuz. Ultimate Member. MemberPress. Paid Memberships Pro. Kitgenix Plugin Score integration points included in the codebase. Each integration is loaded conditionally and can use integration-specific display/validation behaviour rather than forcing one generic hook onto every form system. Server-Side Turnstile Verification The browser obtains a Turnstile response token from Cloudflare’s official widget. When a protected form is submitted, the plugin sends that token to Cloudflare’s official Siteverify endpoint using the WordPress HTTP API. The protected action is allowed only when the verification result satisfies the integration’s validation flow. This server-side step is important because simply placing a widget in the browser is not sufficient protection on its own. The plugin tracks the most recent verification response, error codes and latency for diagnostics and can record aggregate verification metrics locally. Setup Verification for Login-Sensitive Forms Login, registration and other account-sensitive protections can be gated behind a setup-verification state. The administrator can verify the configured Site Key and Secret Key before those protections are treated as ready. This reduces the risk of enabling a broken key pair on a login screen and accidentally locking legitimate administrators or customers out of the site. Site and secret keys can be supplied from plugin settings or from supported environment variables/constants, allowing security-conscious deployments to keep the secret outside the normal WordPress options table. Replay Protection Turnstile tokens are intended to be short lived and single use. The plugin includes optional replay protection that hashes accepted tokens and temporarily remembers that hash. A token that is submitted again during the replay window can be rejected rather than being accepted repeatedly. The replay window is filterable for developers. Stored replay information is a hash/temporary value, not the raw challenge token itself. Honeypot and Layered Anti-Spam Controls An optional honeypot can be rendered alongside Turnstile. This adds a second low-friction signal for simple bots that fill fields a normal visitor never sees. The plugin also supports whitelisting logic so trusted requests can bypass the challenge where appropriate. Whitelist decisions can take account of configured rules and developer filters rather than hard-coding one bypass mechanism for every site. Trusted Proxy and Client IP Handling Sites may sit behind Cloudflare, another reverse proxy or a load balancer. The client-IP component can be configured to trust proxy headers only when the request path matches the trusted-proxy configuration. This avoids blindly believing spoofable forwarding headers from arbitrary visitors. Administrators can also choose whether the resolved visitor IP is included in the Siteverify request to Cloudflare. A developer filter is available to change that behaviour when required by a site’s privacy or infrastructure policy. Widget Appearance and Placement The plugin supports central defaults plus integration-level overrides for Turnstile appearance. Depending on the supported integration, administrators can control options such as theme, size, appearance and language, and can choose placement behaviour where the integration exposes more than one suitable hook. A manual shortcode is also registered: [kitgenix_turnstile] The shortcode is useful when the site owner needs to render the widget in a supported custom workflow. Rendering a widget alone does not automatically secure arbitrary custom PHP processing; custom form handlers must still validate the submitted token server-side. Diagnostics, Metrics and Site Health The plugin includes diagnostics for configuration and verification health, local counters for passed/failed checks, latency information, recent verification events and integration-level metrics. Site Health integration can surface configuration or connectivity issues to administrators. Developer Mode adds additional troubleshooting detail without changing the fundamental requirement that live submissions be verified correctly when protection is active. Settings Portability Settings can be exported and imported for controlled migration between WordPress installations. The transfer system is designed for plugin configuration rather than for exporting visitor submissions or unrelated site data. Performance and Script Loading The public Cloudflare Turnstile script is loaded only for pages/contexts where the plugin determines that a Turnstile widget may be needed. The loader includes duplicate-script detection so multiple integrations do not intentionally enqueue several copies of the same Turnstile API script. Public assets are kept separate from the admin interface, and admin-only diagnostics/settings code does not need to run as part of every anonymous form request. Privacy and Data Flow Turnstile is an external service provided by Cloudflare, so challenge rendering and server-side verification necessarily communicate with Cloudflare. The plugin itself stores configuration and limited diagnostic/aggregate verification data locally. It does not require a Kitgenix account and does not send form contents to Kitgenix for verification. The exact Cloudflare data flow, WordPress.org Hub request and Google Fonts admin request are documented in the External Services section below. Common Uses Protect a WordPress login page from automated credential attacks. Reduce spam registrations on WordPress or WooCommerce. Add anti-bot verification to WooCommerce checkout and account forms. Protect Elementor and popular WordPress form plugins with one central Turnstile configuration. Add a challenge to membership, forum and community registration/login flows. Replace more intrusive CAPTCHA experiences with Cloudflare Turnstile while keeping server-side validation. Developer Notes Shortcode [kitgenix_turnstile] Main settings option kitgenix_captcha_for_cloudflare_turnstile_settings Useful filters Script and display: kitgenix_captcha_for_cloudflare_turnstile_script_url kitgenix_turnstile_freshness_ms kitgenix_turnstile_inline_style Verification: kitgenix_turnstile_siteverify_url kitgenix_turnstile_siteverify_timeout kitgenix_turnstile_siteverify_sslverify kitgenix_turnstile_siteverify_http_args kitgenix_turnstile_send_remoteip kitgenix_turnstile_remote_ip kitgenix_turnstile_token_from_request kitgenix_turnstile_error_codes kitgenix_turnstile_error_message kitgenix_turnstile_replay_message kitgenix_turnstile_skip_wp_login_validation Replay protection: kitgenix_turnstile_replay_ttl Whitelisting and proxy handling: kitgenix_turnstile_is_whitelisted kitgenix_turnstile_trust_headers kitgenix_turnstile_trusted_proxies Operational alerts: kitgenix_turnstile_alert_window_seconds kitgenix_turnstile_alert_failure_spike_min_failures kitgenix_turnstile_alert_failure_spike_failure_rate kitgenix_turnstile_alert_http_error_min_failures Developer logging action: kitgenix_turnstile_dev_log The plugin also exposes context-specific error-message filtering through kitgenix_captcha_for_cloudflare_turnstile_{context}_turnstile_error_message. Privacy and Local Data The plugin stores its configuration in the WordPress database. Depending on enabled features it also stores local operational data such as setup-verification state, aggregate integration metrics, the recent event log and replay-protection transients. The recent event log is limited to 50 events and contains operational fields such as time, integration, success/failure, error codes and Siteverify latency. It does not store raw form submissions, the raw Turnstile response token, the visitor’s raw IP address or the request URL in that log. Turnstile itself is an external Cloudflare service and receives data when a widget is loaded and when the server validates a token. See External Services below. External Services This plugin relies on third-party services for specific functionality. These connections are documented here so site owners can make an informed decision before enabling and using the plugin. Cloudflare Turnstile Cloudflare Turnstile is the CAPTCHA / bot-verification service that provides the plugin’s core protection. A Cloudflare account and Turnstile Site Key / Secret Key are required. When a protected widget is rendered, the visitor’s browser loads Cloudflare Turnstile from: https://challenges.cloudflare.com/turnstile/v0/api.js The browser communicates with Cloudflare as part of the Turnstile challenge. As with normal web requests, Cloudflare can receive network/request information such as the visitor’s IP address and browser/request metadata, and Turnstile evaluates browser signals to generate a verification token. When a protected form is submitted, the WordPress server sends a POST request to: https://challenges.cloudflare.com/turnstile/v0/siteverify By default, that request contains: The configured Turnstile Secret Key The Turnstile response token The visitor IP address as Cloudflare’s optional remoteip parameter when an address is available The remoteip value can be disabled by developers with the kitgenix_turnstile_send_remoteip filter. Cloudflare documentation: https://developers.cloudflare.com/turnstile/ Cloudflare Terms: https://www.cloudflare.com/website-terms/ Cloudflare Privacy Policy: https://www.cloudflare.com/privacypolicy/ WordPress.org Plugin API The shared Kitgenix Hub in wp-admin uses WordPress core’s plugins_api() functionality to request public WordPress.org plugin-directory information such as plugin details, active-install counts, ratings and media. These requests occur on Kitgenix administration screens. The plugin supplies WordPress.org plugin slugs to WordPress core; the outbound request itself is handled by WordPress and can include normal HTTP request metadata generated by WordPress. Responses are cached locally with WordPress transients to reduce repeat requests. WordPress.org: https://wordpress.org/ WordPress.org Privacy Policy: https://wordpress.org/about/privacy/ Google Fonts The Kitgenix administration stylesheet imports the Inter and Manrope font families from Google Fonts. This occurs on Kitgenix plugin administration screens, not as part of the Turnstile verification request itself. Loading those font resources causes the administrator’s browser to connect to Google-hosted domains such as fonts.googleapis.com and fonts.gstatic.com, which can receive normal request information such as IP address and browser headers. Google Fonts: https://fonts.google.com/ Google Privacy Policy: https://policies.google.com/privacy Google Terms: https://policies.google.com/terms Trademark Notice Cloudflare and Cloudflare Turnstile are trademarks or services of Cloudflare, Inc. This plugin is independently developed by Kitgenix and is not affiliated with or endorsed by Cloudflare, Inc. WordPress and WooCommerce trademarks belong to their respective owners. References are descriptive and identify supported integrations. Support Development Kitgenix CAPTCHA for Cloudflare Turnstile is free software. If the plugin is useful to you, you can support continued maintenance and development through the Donate link shown on the WordPress.org plugin page. More WordPress plugins and development resources are available from Kitgenix.