Guide · Rules and requirements

GDPR for websites and apps: how to do it in practice

The short answer: GDPR requires you to know which personal data your website and app collect, to have a lawful basis for each, to have a data processing agreement with every supplier that processes data on your behalf, and to be able to delete and export data when a user asks. Most of it can be solved in how the solution is built. Here you get a data map, a checklist and the technical measures we use ourselves.

11 min read · Updated 1 October 2026

It often starts with a single email. A former customer writes and asks to have all their data deleted. The owner looks into it and finds the customer’s name in the booking system, the newsletter tool, the shared inbox where the contact form lands, the accounting software, an old spreadsheet and a recording from a heatmap tool that marketing installed three years ago. Nobody knows exactly which of these may be deleted and which must be kept. That is GDPR in real life: a question of overview.

This guide is about GDPR in the software you have built or already run: website, webshop, customer portal and app. We are developers and designers, so we focus on the practical and technical parts. The legal assessment of your specific processing belongs with a lawyer, and the guidance from Datatilsynet is a good place to start.

What does GDPR require of a website or app?

GDPR sets out a number of principles that all processing of personal data must follow. Translated into software, they mean you should be able to answer six questions for every type of data: Why do we collect it? What is the lawful basis? Do we need every field? How long do we keep it? Who has access, including at suppliers? And how do we protect it? If you can answer those, you are well on your way.

  • Lawfulness and transparency: a lawful basis for each processing activity and a privacy policy that explains it in language customers understand.
  • Purpose limitation: data collected for a booking is used for the booking. Using it for marketing requires its own basis.
  • Data minimisation: ask only for what you need. A date of birth is rarely necessary for a newsletter.
  • Storage limitation: fixed deletion deadlines built into the system, independent of someone remembering.
  • Integrity and confidentiality: encryption, access control, logging and backups that match the risk.
  • Accountability: you must be able to document that you comply, and that is where records and agreements come in.

How do you make a data map for your website?

A data map is the most important document you can make. Walk through the website and app page by page and write down where personal data comes in: forms, login, payments, chat, analytics, newsletter, job applications and integrations with other systems. For each, note where the data ends up and who processes it. The table below shows a typical extract from a service company with online booking.

Example of a data map. Lawful bases and retention periods are typical examples that must be assessed for your specific business.

DataPurposeTypical basisRetentionProcessor
Name, address, phone on bookingDeliver the serviceContractFor the customer relationship, then deleted or anonymisedHosting and operations supplier
Invoice and paymentBookkeepingLegal obligationAs required by bookkeeping lawAccounting system, payment provider
Email for newsletterMarketingConsentUntil consent is withdrawnNewsletter tool
Contact form enquiryAnswer the questionLegitimate interestE.g. 6–12 monthsEmail provider
Server logs with IP addressSecurity and debuggingLegitimate interestE.g. 30–90 daysHosting supplier
Analytics and behaviourImprove the siteConsent, where cookies are usedPer the tool’s settingAnalytics tool

Once the map is done, most people discover two things. There are more tools than anyone thought, and some of them are no longer used. The easiest GDPR measure you can take is to remove the scripts and integrations that create no value. Every extra supplier is an agreement to maintain and a possible route out for data.

Which suppliers need a data processing agreement?

Every supplier that processes personal data on your behalf. That is typically hosting, the operations supplier and a developer with access to production data, email provider, newsletter tool, CRM, support system, analytics tool, chat widget and payment solution where it is not itself a controller. Large SaaS providers have a standard agreement you accept in their terms. Smaller suppliers often need to be asked. The key content is instructions, security, confidentiality, use of sub-processors, transfers outside the EU, help with breaches and deletion or return of data when the relationship ends.

Where data is stored matters a great deal, because transfers to countries outside the EU and EEA require a specific legal basis. We go through the options in our guide to hosting data in the EU. The short advice is that EU hosting makes the agreements simpler, and that you should always know the list of sub-processors.

When do you need consent, and when not?

Many people think GDPR means consent for everything. Consent is one of six lawful bases, and for most core features of a website or app another basis is the right one. When a customer books an appointment, you process her address to fulfil the contract. When you keep an invoice, you do so because the law requires it. Consent is used where the customer genuinely can opt in and out without losing the service itself: newsletters, non-essential cookies, sharing with partners and similar.

Consent

  • Freely given, specific, informed and unambiguous
  • Active choice, no pre-ticked boxes
  • Must be as easy to withdraw as to give
  • Used for newsletters, marketing cookies and similar

Contract or legal obligation

  • Data is necessary to deliver what the customer asked for
  • Or the law requires you to keep it, e.g. bookkeeping
  • The customer must be informed but does not have to consent
  • Used for orders, bookings, delivery and invoices
Two typical bases in a web solution. Always assess the specific purpose.

Cookies have their own rules on top of GDPR, and there consent is the main rule for everything that is not strictly necessary. We cover that in our guide to cookie banner rules.

How do you handle access and deletion requests?

Users have the right to access their data, have it corrected, have it deleted when there is no longer a basis for keeping it, and in some cases receive it in a machine-readable format. As a rule you must respond within one month. In a solution with ten customers a year that can be handled manually. In an app with thousands of users it should be a feature. Apple also requires apps that offer account creation to let users delete their account inside the app, which we explain in our guide to App Store approval.

1

Verify identity

The request comes from a logged-in user or is confirmed by email, so nobody can delete someone else’s data.

2

Find every location

The system knows the tables and integrations where the user exists, thanks to the data map.

3

Delete or anonymise

Profile and content are deleted. Data the law requires you to keep, such as invoices, is anonymised or isolated.

4

Pass it on

Integrations with newsletter, CRM and support are notified via API, so the data disappears there too.

5

Log and confirm

The action is logged without personal data, and the user receives a confirmation.

How we build deletion into a solution.

What about backups?

Backups are the question we hear most often. It is rarely practical to delete one person from an encrypted backup, and it is not what is normally done either. Instead, backups rotate with a fixed lifetime, for example 30 days, and if a backup is ever restored, the deletions are replayed. Describe this in the data processing agreement and in the privacy policy so it is transparent.

Logs, access and security: what does GDPR require technically?

GDPR requires security appropriate to the risk, and it must be built in from the start: privacy by design and by default. For a typical business solution that means encryption in transit and at rest, login with strong passwords or MitID and two-factor authentication for administrators, roles so staff only see what they need, logging of who viewed and changed data, and tested backups. Logs themselves need care: log events and IDs, and avoid writing names, CPR numbers or message content into them.

Our software security checklist goes into detail with 30 concrete checks. If you process sensitive data such as health information or CPR numbers, the requirements increase, and we then recommend a proper impact assessment with a lawyer involved from the start.

GDPR checklist for your website and app

  1. Make a data map of every place personal data comes in.
  2. Record purpose, lawful basis and retention for each type of data.
  3. Remove form fields, scripts and tools you do not need.
  4. Get data processing agreements from every supplier and store them in one place.
  5. Check where data is stored and which sub-processors are used.
  6. Write a privacy policy in plain language and link to it from every form.
  7. Use consent only where it is the right basis, and make withdrawal just as easy.
  8. Build automatic deletion after fixed deadlines into the system.
  9. Make access and deletion a feature, or describe a manual procedure that can be completed within a month.
  10. Turn on two-factor authentication for all administrators, and assign least-privilege roles.
  11. Log access to personal data without writing personal data into the log.
  12. Agree a data breach procedure with your supplier so the 72-hour deadline can be met.

What does it cost to make a solution GDPR-ready?

Built in from the start, the extra cost is small. Deletion after fixed deadlines, roles, logging and an export feature are typically a few days of work in a new solution. It gets expensive when it has to be retrofitted into a system where customer data is scattered across unstructured tables, or where nobody knows which integrations pass data on. A realistic example: a service company with 20 employees gets a new booking solution with customer login. The data map and privacy policy take a workshop of a couple of hours. Automatic deletion of inactive customers after a fixed period, a delete-account button and export of personal data are three of the features in the package, and the data processing agreement with the developer is signed together with the contract. None of it requires a separate GDPR project.

With us, security and backups are part of the fixed monthly plan, and you own both code and data, which makes it easy to document where everything lives. Read more about ownership in our guide who owns the code. If you are starting a new solution, describe it in a short request and we will send a fixed price within 24 hours with the GDPR features listed.

Which GDPR mistakes do we see most often in practice?

Contact forms that send everything to a shared inbox that is never cleaned up. Test environments with a copy of the real customer database that several developers can access. Former employees who still have admin access. Analytics and marketing scripts that load before the user has consented. And newsletter lists where nobody can document when and how people signed up. All five can be fixed in a day or two once someone owns the task. We recommend putting a yearly GDPR review in the calendar together with your supplier.

Questions about GDPR on websites and in apps

Is an IP address personal data?
Yes, in most cases. The EU Court of Justice has held that an IP address can be personal data when it can be linked to a person by reasonable means. GDPR therefore also applies to server logs, analytics tools and security systems that store IP addresses. You may still log them, provided you have a purpose, for example security, a fixed retention period and a supplier with a data processing agreement. Many tools can truncate or anonymise the IP address, and that is a good default setting.
Does a small company need records of processing activities?
GDPR has an exemption for companies with fewer than 250 employees, but it is narrow. It does not apply if the processing is more than occasional, and it rarely is: customer data, newsletters and employee data are processed continuously. In practice almost every company with a website, an app or employees should keep records. They do not need to be complicated. A spreadsheet listing the processing, purpose, categories of data, recipients, retention and security is a good starting point. Datatilsynet (the Danish Data Protection Agency) offers templates and guidance worth using.
What do we do if there is a data breach?
A personal data breach must as a rule be reported to Datatilsynet within 72 hours of you becoming aware of it, unless it is unlikely to result in a risk to the people affected. If the risk is high, the affected individuals must also be informed. Every breach must be documented internally, including those that are not reported. Agree with your supplier in advance who detects, who assesses and who reports. Three days pass quickly, especially when a breach is discovered on a Friday afternoon.
Can we use customer data to train or feed an AI?
It requires a lawful basis and clear information to customers, and the purpose must be compatible with the one the data was originally collected for. If you send data to an external AI service, the provider is typically a processor, so you need a data processing agreement and to know where the data is processed and whether it is used to train the provider’s own models. Many business agreements switch that off by default. Our advice is to minimise: send only the fields the task needs, and strip names and contact details where you can. Involve a lawyer before using sensitive data.
Who is responsible: us or our developer?
As a starting point you are the controller, because you decide why and how customer data is processed. Your developer or hosting supplier is a processor and may only process data on your instructions, as set out in the data processing agreement. The supplier has its own obligations, including security and helping you with breaches and requests. But responsibility towards your customers and Datatilsynet sits with you. That is why you need visibility of what the supplier does, and why the agreement should describe security, sub-processors and deletion when the contract ends.
What can a GDPR breach cost?
GDPR allows for high fines, and in Denmark fines are decided by the courts following a referral from Datatilsynet. The size depends on the nature of the infringement, the size of the company and what you did to prevent it. For small and medium-sized companies, though, the largest costs are often elsewhere: time spent on a case, a rebuild under time pressure and lost customer trust. A documented, well-considered setup is the cheapest insurance. If you are unsure about a specific case, contact a lawyer specialising in data protection law.

Want us to build it for you?

You get a fixed-price proposal within 24 hours.

Dennis Nielsen

Dennis Nielsen

Head of Operations, Ceptiv

Free consultation

One free hour of advice before you start.

Describe your project and I will contact you as soon as possible, so we can schedule a no-obligation meeting. You leave with practical advice on how to get your project off to a good start.

  • Free
  • 1 hour
  • No obligation