Compliance guide
Do I Need a Privacy Policy for My Website?
Short answer: if your site collects any personal data — email addresses, analytics cookies, contact form submissions, even server logs — you almost certainly do. Here's which laws require it, what triggers the obligation, and exactly what the policy must say.
- Which laws require it
- What triggers the requirement
- What happens without one
- What it must say
- Generate yours free
- FAQ
Which laws require a privacy policy
No single global law requires a privacy policy, but several major frameworks do — and most public websites fall under at least one of them. The critical point these laws share: they apply based on where your visitors are, not where your server or company is located.
| Law | Who it covers | Size threshold |
|---|---|---|
| GDPR (EU / UK) | Any site that processes personal data of EU or UK residents | None. A one-person side project serving EU visitors is covered. |
| CalOPPA (California) | Any commercial website or online service collecting personal info from California residents | None. "Commercial" is broadly interpreted — free tools with any commercial intent qualify. |
| CCPA / CPRA (California) | For-profit businesses serving California residents | Must meet one of: $25M+ annual revenue, data on 100k+ consumers, or 50%+ revenue from selling data. Most small sites don't meet this — but CalOPPA still applies. |
| COPPA (US) | Any site that knowingly collects data from children under 13 | None. Requires a privacy policy plus verifiable parental consent before any data collection. |
| CAN-SPAM / email ESPs | Any commercial email sender; required by Mailchimp, Klaviyo, and other ESPs as a condition of service | None. If you send marketing email, your privacy policy must cover those practices. |
The practical takeaway: if your site is publicly accessible and collects any personal data, CalOPPA and GDPR are almost certainly in play simultaneously — and neither has a size or revenue threshold that would let a small site opt out.
What triggers the requirement
The requirement kicks in when you collect "personal data" — any information that can identify or be linked to a specific individual. This is broader than most people assume. You are almost certainly collecting personal data if your site has any of the following:
- A contact form — collects names, email addresses, and message content.
- Google Analytics, GA4, Plausible, Fathom, or any analytics tool — collects IP addresses and cookie identifiers. An IP address alone is personal data under GDPR.
- User accounts or login — collects email, password hash, profile data, and session identifiers.
- A newsletter or mailing list signup — collects email addresses and, via link tracking, open and click behavior.
- Payments (Stripe, PayPal, Lemon Squeezy, etc.) — even if you never touch card data, you receive the billing name, email, and country from the processor.
- A live-chat widget (Intercom, Crisp, Tawk, etc.) — these services set third-party cookies and log visitor data by default.
- Server-side hosting with access logs — Vercel, Netlify, Render, and most hosts log every HTTP request with the visitor's IP address and user-agent string.
If your site has any one of these, it is collecting personal data and you need a privacy policy. The only genuine exception is a completely static page with no analytics, no forms, no third-party scripts, and access logs disabled at the hosting level. Even then, if the page has any commercial purpose, CalOPPA likely applies.
What happens without one
The consequences are real and apply to small sites as well as large ones:
- GDPR fines — supervisory authorities (the ICO in the UK, the DPA in Germany, the CNIL in France) can issue fines up to €20 million or 4% of global annual turnover. Enforcement against small operators happens; it most often follows a user complaint.
- CalOPPA enforcement — the California AG can bring action against any commercial site without a conspicuous privacy policy link. Most enforcement targets larger operators, but the statute has no size floor.
- ADA demand letters — serial ADA filers who scan business websites for accessibility failures frequently bundle a CCPA allegation (missing privacy policy, missing "Do Not Sell" link) in the same demand. The two claims arrive together in a single letter. A missing policy is on the automated checklist alongside missing
langattributes and unlabeled form fields. - App store rejection — both Apple App Store and Google Play reject submissions for any app that collects user data but doesn't link a privacy policy URL in the store listing.
- Google Ads policy violation — sending paid traffic to a landing page that collects data without a visible privacy policy link violates Google's advertising policies and can result in account suspension.
What your privacy policy must say
A legally adequate policy needs to cover the following. The list below satisfies the intersection of GDPR and CalOPPA/CCPA requirements — the two frameworks most likely to apply to a typical public website. For a detailed, section-by-section breakdown of each requirement, see What should a privacy policy include?
- What data you collect The categories of personal information — email, name, IP address, usage events, payment info. Be specific to what you actually collect; vague language creates the same liability as omitting a category.
- Why you collect it (purpose and legal basis) Under GDPR, each type of processing needs a stated legal basis — typically: legitimate interest (analytics), performance of a contract (order fulfillment), or consent (marketing email). Under CCPA, you disclose the "business or commercial purpose" for each category.
- Who you share it with (third-party processors) Name the processors and describe what they do: Google for analytics, Stripe for payments, Mailchimp for email, your hosting provider for server logs. Under CCPA, this section also discloses any "selling" or "sharing" of personal data for cross-context advertising.
- How long you keep it Retention periods by data type — e.g., account data until deletion request, server logs for 90 days, marketing email addresses until unsubscribe.
- User rights and how to exercise them Under GDPR: right to access, correct, delete, port, restrict processing, and object. Under CCPA: right to know, delete, correct, and opt out of data selling. Include a contact method for submitting requests — typically an email address.
- Contact information for the data controller Your name (or company name) and a reachable email address for privacy inquiries. GDPR requires a Data Protection Officer for certain organizations; most small sites are exempt, but the contact requirement is universal.
- Last updated date CalOPPA explicitly requires this. Update it whenever your data practices change — a new analytics tool, a new payment processor, expansion into a new region.
Generate yours free with ComplyKit
ComplyKit generates a privacy policy, terms of service, and cookie notice from a short questionnaire — entirely in your browser, with no data sent anywhere. You toggle on what your site actually does (analytics, user accounts, payments, which regions you serve), and the matching clauses are written in. Every item in the "what it must say" list above is covered in the output.
The generated documents are a genuine starting point, not generic boilerplate — every clause is conditional on your answers. For a complex situation (multiple regulated jurisdictions, sensitive data categories, a regulated industry), have a lawyer review before you publish. For most indie apps, side projects, and small business sites, the output covers what regulators and users expect to see.
Generate my privacy policy free →
/privacy.html (or equivalent), and add a link in your site footer. Re-run ShipSafe to confirm the finding is cleared.
Frequently asked questions
Do I need a privacy policy if my website is free and doesn't sell anything?
Almost certainly yes. Whether your site charges money is irrelevant to privacy law — what matters is whether you collect personal data. A free tool running Google Analytics collects IP addresses and cookie identifiers. A portfolio site with a contact form collects email addresses. Under GDPR, either of these is data processing that requires a privacy policy. Under CalOPPA, "commercial intent" — including a free tool you might monetize in the future — is enough to trigger the requirement.
Does GDPR apply to me if I'm not based in Europe?
Yes. GDPR applies based on where your visitors are, not where your business is located. If your site is accessible to people in the EU or UK and you process their personal data, GDPR applies — regardless of where your server is, where you're incorporated, or where you live. The law explicitly covers businesses established outside the EU that offer goods or services to, or monitor the behavior of, EU data subjects. A freelancer in Austin or a solo founder in Singapore with EU traffic owes GDPR obligations for that traffic.
What counts as "collecting personal data"?
More things than most people expect. Personal data is any information that can identify or be singled out to a specific individual. Under GDPR, an IP address alone qualifies — it can be combined with other data to identify a person. This means Google Analytics, server access logs, contact forms, newsletter signups, login systems, and third-party chat widgets all constitute personal data collection. If your site does any of these things, you're collecting personal data, whether or not you ever intended to.
What happens if I don't have a privacy policy?
Consequences vary by framework. GDPR supervisory authorities can fine up to €20 million or 4% of global annual revenue — enforcement against small sites happens most often following a user complaint. The California AG can act under CalOPPA against any commercial site without a conspicuous policy link. Serial ADA demand-letter firms scan for missing privacy policies as a CCPA violation and bundle it into the same letter as accessibility allegations — a missing policy is on the automated checklist alongside missing lang attributes. Google Ads and both major app stores also require a visible privacy policy link as a condition of use.
Is a generated privacy policy template legally valid?
A template is a legally valid starting point when it accurately reflects what your site actually does. The risk is a mismatch: a policy that says you don't use analytics when Google Analytics is installed, or omits a payment processor you use, is worse than no policy — it is a false representation that creates additional liability. Generate from your real data practices. For a simple site, a well-generated template is adequate. For anything complex — multiple jurisdictions, sensitive data categories, regulated industry — have a qualified lawyer review before you publish.
Where on my site does the privacy policy link need to appear?
In the footer of every page — this is the standard, expected location that both regulators and users look for. CalOPPA requires the link to be "conspicuous"; a footer link visible on every page satisfies this. Also link it from any signup or contact form ("By submitting, you agree to our Privacy Policy") and from your cookie-consent banner. Placing it only in a sub-menu or burying it under an about page likely does not meet CalOPPA's conspicuousness standard.
Also in the Copper Bay Labs ship-safety suite
A privacy policy is one of several things to audit before you ship. These free tools cover security, accessibility, and exposed secrets:
Checks your live site for accessibility and privacy-law gaps that attract ADA demand letters.
Secret scanning LeakCheckPaste code or a config file and see exposed API keys and tokens flagged before they reach the repo.
Security headers HardenCheckScan your live site's HTTP headers for missing CSP, HSTS, and other security hardening flags.
Post-deploy ExposureCheckScan your live URL for exposed .env files, .git directories, and bundled secrets.