Disqus keeps your comments on its servers. Comment sync keeps a copy in your WordPress database too, as regular WordPress comments:
Your data stays yours. If you ever leave Disqus, the comments are already in WordPress.
Search engines can read them.SEO mode shows the synced comments to crawlers.
It's instant. Disqus pushes each new comment to your site as it's posted. There's no scheduled job and no polling, so it doesn't use up your Disqus API limit.
In Disqus → Settings → Comment sync, enter the Public key, Secret key and Admin access token.
Click Save Changes. The panel now shows Sync status.
Click Enable sync.
The status changes to Active, and the last event reads "Sync connection established with Disqus." once Disqus has confirmed your site. New comments posted on Disqus now appear under Comments in WordPress within seconds.
Upgrading from the official Disqus plugin?
If sync was already set up there, it keeps working — the webhook address and signing token are carried over. See Upgrading.
Under the status, Last event shows the most recent sync event and when it happened, for example "Synced comment 6123456789 from Disqus." or "Could not sync a comment from Disqus: …". Only the latest event is kept.
Disable sync tells Disqus to stop sending comments. The connection on Disqus's side is kept, so Enable sync turns it back on with one click. Comments already synced stay in WordPress.
A comment that is edited or moderated on Disqus is updated in WordPress, not duplicated. Synced comments are marked with the user agent Disqus Sync Host and the comment meta dsq_post_id (the Disqus comment ID); posts get the meta dsq_thread_id. These are the same keys the official plugin used, so its synced comments are recognised.
Disqus remains the source
Sync copies from Disqus to WordPress. Editing or deleting a synced comment in WordPress doesn't change it on Disqus — moderate on Disqus, and the change syncs back.
Sync only catches comments posted after it's turned on. To pull in older ones:
Under Sync past comments, choose a From and To date. They default to the last 30 days; the end date can't be in the future.
Click Sync past comments.
The tool works through your Disqus comments 100 at a time and shows progress: "250 comments synced, 0 failed." You can Stop at any time and run it again later — comments already in WordPress are updated, not duplicated.
Keep the tab open while it runs. For a site with years of comments, sync a year or so at a time.
A comment can fail when its thread can't be matched to a post — for example a post that was deleted, or a thread created by a different site. Failures are counted but don't stop the run.
The other direction: send comments that exist only in WordPress — from before you used Disqus, say — to Disqus, so they show up in the Disqus thread.
Under Export comments to Disqus, click Export comments.
Wait for "Done." Progress shows as "20 posts checked, 5 exported with 48 comments."
What is exported:
Posts: published posts of every public post type that supports comments, ten at a time.
Comments: approved comments and replies. Pingbacks, trackbacks and comments that came from Disqus are skipped.
Data: author name, email, URL and IP, date, content and reply structure, in the WordPress export (WXR) format Disqus imports.
The upload happens from your server, so your access token never reaches the browser. Posts that fail are listed under "Some posts could not be exported:" with the reason.
Run it once
Disqus processes imports in the background, and it can take a while before comments appear — don't export again in the meantime. Exporting the same comments twice may create duplicates on Disqus. See Disqus's guide About imports.
Status stays Off after Enable sync. Check the three keys — the error message comes from Disqus. The API application must allow writing to your forum.
Enabled, but comments don't arrive. Disqus must be able to reach https://your-site.com/wp-json/disqus/v1/sync/webhook:
Your site must be public — Disqus can't reach localhost or a site behind a password.
Security plugins and firewalls that block REST API requests or unknown POST requests can stop it. Allow that address.
A caching or CDN layer must not cache POST requests to /wp-json/.
Last event says the forum doesn't match. The comment came from a Disqus site with a different shortname than the one saved. Check the shortname.
"No post found for Disqus thread". The Disqus thread doesn't belong to a post on this site — usually a post that was deleted, or a thread created on a staging copy.
Comment Sync
Disqus keeps your comments on its servers. Comment sync keeps a copy in your WordPress database too, as regular WordPress comments:
Sync is optional and off until you turn it on. The Comment sync panel also has two one-off tools: pull in past comments and export WordPress comments to Disqus.
Set up sync
You need a Disqus API application — see API keys.
The status changes to Active, and the last event reads "Sync connection established with Disqus." once Disqus has confirmed your site. New comments posted on Disqus now appear under Comments in WordPress within seconds.
Upgrading from the official Disqus plugin?
If sync was already set up there, it keeps working — the webhook address and signing token are carried over. See Upgrading.
Sync status
Under the status, Last event shows the most recent sync event and when it happened, for example "Synced comment 6123456789 from Disqus." or "Could not sync a comment from Disqus: …". Only the latest event is kept.
Disable sync tells Disqus to stop sending comments. The connection on Disqus's side is kept, so Enable sync turns it back on with one click. Comments already synced stay in WordPress.
How comments are saved
Each Disqus comment becomes a normal WordPress comment on the matching post:
<post ID> <guid>)user-<id>@disqus.com, oranonymized-…@disqus.comfor guests. Disqus only shares real addresses with specially approved applications.A comment that is edited or moderated on Disqus is updated in WordPress, not duplicated. Synced comments are marked with the user agent
Disqus Sync Hostand the comment metadsq_post_id(the Disqus comment ID); posts get the metadsq_thread_id. These are the same keys the official plugin used, so its synced comments are recognised.Disqus remains the source
Sync copies from Disqus to WordPress. Editing or deleting a synced comment in WordPress doesn't change it on Disqus — moderate on Disqus, and the change syncs back.
Sync past comments
Sync only catches comments posted after it's turned on. To pull in older ones:
The tool works through your Disqus comments 100 at a time and shows progress: "250 comments synced, 0 failed." You can Stop at any time and run it again later — comments already in WordPress are updated, not duplicated.
Keep the tab open while it runs. For a site with years of comments, sync a year or so at a time.
A comment can fail when its thread can't be matched to a post — for example a post that was deleted, or a thread created by a different site. Failures are counted but don't stop the run.
Export comments to Disqus
The other direction: send comments that exist only in WordPress — from before you used Disqus, say — to Disqus, so they show up in the Disqus thread.
What is exported:
The upload happens from your server, so your access token never reaches the browser. Posts that fail are listed under "Some posts could not be exported:" with the reason.
Run it once
Disqus processes imports in the background, and it can take a while before comments appear — don't export again in the meantime. Exporting the same comments twice may create duplicates on Disqus. See Disqus's guide About imports.
While the official Disqus plugin is active
The official plugin and this one use the same webhook address, so only one can receive comments. While the official plugin is active:
Deactivate Disqus Comment System and sync picks up where it left off.
Troubleshooting
Status stays Off after Enable sync. Check the three keys — the error message comes from Disqus. The API application must allow writing to your forum.
Enabled, but comments don't arrive. Disqus must be able to reach
https://your-site.com/wp-json/disqus/v1/sync/webhook:localhostor a site behind a password./wp-json/.Last event says the forum doesn't match. The comment came from a Disqus site with a different shortname than the one saved. Check the shortname.
"No post found for Disqus thread". The Disqus thread doesn't belong to a post on this site — usually a post that was deleted, or a thread created on a staging copy.
Related
dcl_comment_syncedaction.