Platform guide

DPDP Act compliance for WordPress

WordPress powers a large share of Indian business websites, and almost every one of them runs at least one tracker: Google Analytics through Site Kit, a Facebook pixel from a marketing plugin, an embedded YouTube video that drops cookies before anyone presses play.

Under the DPDP Act each of those is processing personal data, and each needs consent that is specific, informed and withdrawable. The existing GDPR cookie plugins in the WordPress repository mostly model EU categories and produce no DPDP-shaped audit record.

Check this site free — DPDP, GDPR & CCPA score in 10 seconds

No signup for the score. Takes about 10 seconds. We only read your homepage.

What valid consent looks like under the DPDP Act

Section 6 of the DPDP Act is unusually specific about consent. It must be free, specific, informed, unconditional and unambiguous, given by a clear affirmative action, and limited strictly to the personal data necessary for the stated purpose. Bundled consent — one checkbox covering analytics, advertising, marketing email and profiling — does not satisfy this test.

The Act also requires that withdrawal be as easy as giving consent. In practice that means if a visitor could accept tracking with one click on a banner, they must be able to withdraw it with roughly one click too, at any time, from any page. A buried link in a privacy policy is not equivalent.

  • No pre-ticked boxes and no implied consent from continued browsing
  • Separate opt-in per purpose: analytics, marketing, functional, advertising
  • A notice, in plain language, available in English and the Eighth Schedule languages
  • A standing, always-reachable way to withdraw consent
  • A record of what was consented to, when, and against which notice version

Installing a DPDP-ready consent banner on WordPress

The mechanics on WordPress are deliberately boring: AssentRepo is a single script tag under 3KB that loads asynchronously, blocks non-essential scripts until consent is recorded, and posts every decision to an audit log. There is no build step and no plugin conflict surface.

  • Download the AssentRepo plugin zip from your dashboard or the /wordpress page
  • Plugins → Add New → Upload Plugin → choose the zip → Activate
  • Settings → AssentRepo → paste your site key
  • Optionally tick 'Hide for logged-in admins' while you test
  • Drop the [assentrepo_dsar] shortcode on your privacy page for a public data-request form

Blocking scripts before consent, not after

A banner that appears while Google Analytics has already fired is decorative. The AssentRepo script installs early and holds non-essential tags until a decision is recorded, then releases exactly the categories the visitor accepted.

If you use a caching plugin, exclude the banner script from any HTML minification that reorders head tags, and purge the cache after install so the tag actually ships to visitors.

Data Principal rights and the request queue

Chapter III of the Act gives every Data Principal the right to access a summary of their personal data and the processing performed, the right to correction and completion, the right to erasure, and the right to nominate someone to exercise those rights on their behalf. You must publish a way to make those requests and you must respond within a reasonable period.

For a small team, the failure mode is not refusing a request — it is losing one. Requests arrive by email, WhatsApp, a contact form and Instagram DM, and nobody owns the spreadsheet. A single intake endpoint with an auditable status trail removes that risk entirely, which is why the AssentRepo banner ships a built-in DSAR form alongside the cookie controls.

You have to be able to prove it

The obligation that catches most teams out is evidentiary. Under Section 8, the Data Fiduciary — you — is responsible for demonstrating compliance, including that valid consent was obtained. If the Board asks and your answer is "our banner was live", that is not evidence.

A defensible consent record contains, at minimum: a stable visitor identifier, the categories accepted and rejected, a UTC timestamp, the version of the notice shown, the policy text hash, and enough network context to establish the request was genuine without storing raw personal identifiers. AssentRepo writes exactly this record for every consent event and one-way hashes the IP address with a server-side salt, so the log is useful to an auditor and useless to an attacker.

Frequently asked questions

Does the plugin slow my site down?

The script is under 3KB gzipped, loads asynchronously from a CDN edge, and renders in well under 50ms. It does not enqueue jQuery or any framework.

Will it conflict with an existing GDPR cookie plugin?

Run one consent manager at a time. Deactivate the old plugin before activating AssentRepo, otherwise visitors see two banners and your audit log has gaps.

What are the penalties for non-compliance?

Section 33 of the DPDP Act allows the Data Protection Board to impose penalties of up to ₹250 crore for failing to take reasonable security safeguards, and up to ₹50 crore for failing to meet obligations to Data Principals.

Get DPDP-ready in five minutes

One script tag: consent banner, audit log, DSAR queue. Free up to 1,000 consent events a month.