Privacy & GDPR
Better Messages is designed with privacy in mind and provides the tools needed for GDPR compliance.
Data Storage#
All message data is stored on your own server in your WordPress database. No message content is stored on external servers.
When the WebSocket version is used for real-time delivery, data is transmitted encrypted and is not stored on external servers. An additional end-to-end encryption (E2EE) option is available in the WebSocket version for maximum privacy — messages are encrypted on the sender's device and can only be decrypted by the intended recipients.
Browser-cached data (IndexedDB) stays on the user's device and is not shared with anyone. Users can clear it at any time by clearing their browser data. In the WebSocket version, cached data can be additionally encrypted for extra protection.
No Cookies or Tracking#
The plugin does not set any cookies. No analytics or tracking scripts are loaded. No user behavior data is collected or sent to third parties.
WordPress Privacy Tools Integration#
Better Messages integrates with the WordPress built-in privacy tools:
- Personal Data Export (Tools → Export Personal Data) — exports all messages sent by the user
- Personal Data Erasure (Tools → Erase Personal Data) — anonymizes the user's message content and optionally deletes their file attachments
- Suggested Privacy Policy (Settings → Privacy & GDPR) — provides a ready-to-use privacy policy text that adapts based on your plugin configuration
Third-Party Services#
Better Messages minimizes third-party connections. The following external services may be used depending on your configuration:
Emoji Images#
By default, emoji spritesheet images are loaded from a CDN (jsdelivr.net). You can switch to self-hosted delivery in the plugin settings (Privacy & GDPR tab) to download emoji images to your server, eliminating external requests.
Video Embeds (oEmbed)#
When users share YouTube, Vimeo, or other video links, embedded players may load directly from those services. You can enable Privacy-friendly oEmbeds in the plugin settings — this shows a static preview with a play button, and the actual video loads only after the user clicks.
GIFs and Stickers#
If GIF (Giphy) or Sticker (Stipop) integrations are enabled, images are loaded from their respective servers when displayed in conversations. These features are optional and can be disabled by removing the API keys in the settings.
Real-Time Messaging (WebSocket Version)#
The WebSocket version routes real-time events through the relay servers of WordPlus Cloud for instant message delivery: ws.wordplus.cloud and rest.wordplus.cloud from Better Messages 3.1, cloud.better-messages.com before it. Message content is AES-256 encrypted on your server before it reaches the relay, which cannot read it and does not store it.
Voice and Video Calls (WebSocket Version)#
Private one-on-one calls are established directly between users (peer-to-peer). Group calls are routed through a cloud service to connect multiple participants.
Background blur, virtual backgrounds and AI Noise Removal run in each person's browser, so no video or sound is sent anywhere for them. A picture a person uses as their own background stays in their browser and is never uploaded.
Call Recording (WebSocket Version)#
Call recording is off until an administrator turns it on. When a moderator records a group call, WordPlus Cloud's recorder receives the call to make the video and the transcript, and your site downloads the files to its uploads folder or your cloud storage. Choose how people in the call are told, up to asking everyone to agree first, and mention in your privacy policy that calls can be recorded. Group calls with end-to-end encryption are never recorded.
AI Chat Bots#
If AI chat bots are enabled, messages in bot conversations are sent to the configured AI provider (OpenAI, Anthropic, or Google) to generate responses. This only applies to conversations with AI bots, not regular user conversations.
Privacy Settings#
All privacy-related settings are consolidated in the Privacy & GDPR tab in the plugin settings:
- Emoji Sprite Delivery — choose between CDN or self-hosted
- Privacy-friendly oEmbeds — click-to-play video embeds
- Delete attachments on data erasure — remove uploaded files when a user requests data erasure
Guest Chat#
If guest chat is enabled, the following data is collected from guest users:
- Display name (required)
- Email address (optional)
- IP address (for identification purposes)
This data is stored in the site database and is not shared with third parties.
Frequently asked questions#
Is the cloud WebSocket version GDPR-compatible?#
Yes. The cloud WebSocket relay stores no message content — per message it records the thread, message and sender ids plus an unread flag, and nothing is retained beyond that. All message data lives only in your WordPress database, so for most sites the cloud version is GDPR-compatible by default. The relay cannot read what it routes either, because message content reaches it AES-256 encrypted with a key that stays on your site. End-to-end encryption adds protection from your own server and database. See where messages are stored for exactly what the relay sees.
Do you provide a Data Processing Agreement (DPA)?#
Yes. For the WebSocket version's realtime servers, WordPlus Cloud acts as your data processor under GDPR Article 28, and its Data Processing Agreement is part of its terms, so it applies without anything to sign. You can download a copy signed by both sides from your WordPlus Cloud account. See the Data Processing Agreement page. The free/AJAX version and a self-hosted realtime server send no data to WordPlus Cloud, so no DPA is needed for them.
When should I consider the self-hosted plan?#
For stricter cases — GDPR Article 9 regulated data (health, biometric, racial origin), HIPAA-adjacent workloads, jurisdictional rules about which servers may transit data — the self-hosted plan lets you run the WebSocket layer on infrastructure you control. Contact support for the build.
Does AI chat bot use exempt my site from GDPR claims?#
The AI provider (OpenAI / Anthropic / Google) sees messages routed to a bot. Disclose this in your privacy policy. To avoid third-party AI, disable AI bots or use a self-hosted AI provider via the AI add-on's custom-provider hook.
Are guest IP addresses subject to GDPR?#
Yes — IP addresses are personal data under GDPR. The value is recorded once, when the guest registers, into the ip column of the bm_guests table. Nothing about a guest's identity depends on it: the synthetic Guest role comes from the plugin's own roles table, and an AI bot is recognised by its bot_id column. (Bot identity used to be keyed on a client-supplied IP header, which a security improvement replaced — it is no longer how it works.)
If you would rather not keep the address, overwrite it after registration rather than altering the column — hook the better_messages_guest_registered action and update that row's ip to a hash or an empty string.
How do I respond to a "right to be forgotten" request?#
Use WordPress's built-in Tools → Erase Personal Data. Better Messages integrates with this — message content is anonymized and (optionally) file attachments are deleted.
Questions?#
If you believe we missed something or have a suggestion to improve privacy compliance, please contact us at support@better-messages.com.
See also#
- Data Processing Agreement (DPA) — GDPR Article 28, for the WebSocket version's realtime servers
- Auto-delete messages — retention policy configuration
- End-to-end encryption — content encryption (WebSocket version)
- GDPR-compliant messaging blog post — feature overview
- Guest access — privacy considerations for guests
- User-to-user block — user-controlled privacy
- Export transcripts — download one conversation in full, as an administrator