Self-host Google Fonts. An EU court adviser would deny damages only to crawler-made claims.

Ulf Aslak Lai photo Ulf Aslak Lai Published 8 Nov 2026 AI drafted 7 min read
Self-host Google Fonts. An EU court adviser would deny damages only to crawler-made claims.

A third of the Product Hunt launches I scanned this summer send each visitor's IP address to Google before the visitor has clicked anything. Of the 458 products in my August 2026 scan, 150 requested their fonts from Google's servers on the first load of the homepage. Since 2022 that one request has earned German website owners demand letters for 170 euros, many of them sent after a visit by a crawler built to find it. On 5 November 2026 an adviser to the EU Court of Justice said those crawler-made claims should get no damages 1. He did not say the font request is lawful. He said the IP address it sends is personal data whenever Google can identify the person behind it, and a German court that ruled on the request in 2022 found it unlawful without the visitor's consent 4.

When I first wrote up that scan, I did not count font requests as sending personal data to a vendor. After this opinion, I would. For a site that still loads Google Fonts, the opinion lowers the risk from crawler letters and leaves the risk from real visitors and regulators where it was. The change that removes both is small: serve the font files from the site's own domain, which Next.js does automatically through next/font and other stacks can do with an npm package. A site that already serves its own fonts can stop reading here.

What did the EU court adviser say about Google Fonts?

The adviser is Maciej Szpunar, one of the Advocates General who give the EU Court of Justice a written opinion before it rules. The case started with a German website owner who received a lawyer's letter in October 2022 demanding 170 euros, paid it, and then learned that the "visitor" was the letter sender's crawler. According to the German court handling the case, the same procedure was used more than 100,000 times 1. That court, Germany's highest civil court, asked the EU Court of Justice to rule on what an IP address is and on whether a crawler can claim damages. Szpunar's opinion answers both.

The IP address is personal data if Google can identify the person

The Court already held in 2016, in the Breyer case, that a dynamic IP address can be personal data for a website that has legal means to find out who was behind it 3. Szpunar asks the same question about the company receiving the address. If the recipient can reasonably identify the person, the address is personal data for the recipient. For Google, he points to its ability to combine the address with the other data it holds, and leaves it to the German court to check 1.

For the website that sent the address, he proposes his own condition: the address is personal data for the site as well if the site knew or should have known that the recipient can identify people. The Court's earlier case law has no such condition, and the Court may leave it out 1. If the Court keeps it, my own view is that a site owner will find it hard to claim in 2026 that they did not know, after four years of German rulings and demand letters about these fonts.

A crawler that provokes the transfer suffers no damage

The GDPR pays compensation to "any person who has suffered material or non-material damage as a result of an infringement" 2. Damage is a separate condition from the breach, and it is never presumed. The damage the Court has recognised in earlier cases is losing control of your data or a reasonable fear that it will be misused. A person who sends their own IP address to Google on purpose, with software, thousands of times, has lost control of nothing, because the data went exactly where they planned 1. So Szpunar's proposed answer is that no non-material damage can be recognised where someone "knowingly provoked a breach, in an automated and repeated manner, in order to obtain compensation" (my translation). If the Court disagrees, he says such a claim should fail anyway as an abuse of rights 1.

Does your legal documentation match what you ship?

Lawcel watches your product changes and flags the moment your terms or privacy policy fall out of sync, then proposes the edits for your team to approve and publish.

Get started

Is the Advocate General's opinion the law?

No. An Advocate General advises the Court of Justice before it rules. The Court gives its judgment later, is not bound by the opinion, and can decide differently. After that, the German court applies the answer to this case.

Until the judgment, a court or a lawyer handling a similar letter can still point to the opinion as the reasoning of the Court's own adviser.

Is loading Google Fonts from Google's servers illegal?

The adviser did not say. The German court did not ask him, and the opinion does not discuss consent or any other legal basis for sending the address to Google. It also says nothing about court orders to stop, or about what a data protection regulator may do 1.

One German court has answered. In January 2022 the Munich Regional Court ordered a website operator to stop sending a visitor's IP address to Google through Google Fonts, and to pay him 100 euros 4. The visitor had not consented, and the court rejected legitimate interest because Google Fonts "can also be used without a connection to a Google server being made when the website is called up" (my translation) 4.

That is one lower-court judgment, binding on no other court, and it used a broader test for personal data than Szpunar does 4. In my reading its result still stands for Google, which can most likely identify the visitor, though no court has found that yet.

If your site or app loads Google Fonts, what should you do?

If you run a website or web app used by people in the EU and it loads fonts from Google, you need to serve those fonts yourself, or else every page view sends the visitor's IP address to Google, which the Munich court held unlawful without consent.

  1. Check what your pages request. Open your site in a private window with the browser's network tab open, filter for fonts.googleapis.com and fonts.gstatic.com, and repeat on the logged-in app, the docs and the blog. Templates and third-party widgets add their own font links.
  2. Self-host the fonts. The fonts in Google's font collection on GitHub are under licences that allow redistribution, so you can download the files, serve them from your own domain and delete the link to Google. In Next.js, next/font self-hosts any Google Font so the browser sends no request to Google. For other stacks, Fontsource packages open-source fonts as npm packages for self-hosting. Loading Google's copy only after consent would also work, but every visitor who has not clicked yet would see your pages in a fallback font.
  3. Check your other Google embeds. Maps, video embeds and reCAPTCHA also make the browser contact Google. Any of them that stores or reads information on the visitor's device needs consent unless it is strictly necessary for something the visitor asked for 5. Where you can, load an embed only when the visitor clicks to open it, and name Google in your Privacy Policy for the ones you keep.
  4. Do not pay a demand letter about Google Fonts by reflex. Ask whether the visit came from a real person, and take legal advice: the opinion supports refusing payment for crawler-made claims, but until the Court rules it is advice. Remove the Google request either way.

Font links come back quietly: a new page template, a widget or a pasted snippet can add one in a pull request months after you removed the last. Lawcel, the tool we build, reads each pull request and flags changes that affect a company's legal documents, such as a new third party receiving visitor data.

FAQ

The EU Court of Justice has not said. One Munich court held in 2022 that it had no legal basis without consent, because the same fonts can be served from the site's own server.
Advocate General Szpunar says a person who provokes the transfer with automated visits to claim money suffers no damage. His opinion is not binding, so get legal advice on a letter.
Often. The Advocate General says it is when the recipient, such as Google, has reasonable means to identify the person, and for the sender when it knows or should know that.
No. It advises the EU Court of Justice, which gives its own judgment later and may decide differently.
Serve the font files from your own domain and remove the link to fonts.googleapis.com. Next.js does this for you with next/font.

References

  1. Opinion of Advocate General Szpunar delivered on 5 November 2026, Case C-654/25 Undelam (US, DR v KY), ECLI:EU:C:2026:948, provisional edition (French) - accessed 8 Nov 2026
  2. Regulation (EU) 2016/679 (General Data Protection Regulation) - accessed 8 Nov 2026
  3. Court of Justice of the EU, judgment of 19 October 2016, Case C-582/14 Breyer - accessed 8 Nov 2026
  4. Landgericht München I, judgment of 20 January 2022, 3 O 17493/20 (Google Fonts) - accessed 8 Nov 2026
  5. Directive 2002/58/EC (ePrivacy Directive), consolidated version of 19 December 2009, Article 5(3) - accessed 8 Nov 2026

About the author

Ulf Aslak Lai

Ulf Aslak Lai

Co-founder, Chief Technology Officer

Ulf is Co-founder and CTO at Lawcel. He leads engineering architecture for connectors, analysis pipelines, and the safeguards needed when automation touches regulated customer content.

  • Platform architecture
  • Data governance
  • ML/AI systems
Drift

60% of Product Hunt sites load a foreign vendor their policy never mentions

I scanned 458 products launched on Product Hunt over 30 days, loading each from inside the EU and reading its legal pages. 233 both publish a privacy policy and load a third-party service in the visitor's browser, but 139 of those (59.7%) say nothing at all about international transfers. The transfer starts when somebody pastes a snippet, not when somebody signs a contract.

GDPR

Your app sends personal data outside the EU. Each destination needs its own transfer mechanism.

Making personal data available to a separate company outside the EEA is a transfer, and GDPR Chapter V requires a named mechanism for each one: an adequacy decision, a safeguard such as the standard contractual clauses, or a narrow exception for one-off situations. Remote access counts even when the database never moves, and Article 13(1)(f) makes you publish which mechanism you used.

GDPR

GDPR limits what a tracking pixel sends from your app, even with cookie consent

Under EU law, a third-party script that runs after login, from an ad pixel to a session recorder, needs the user's consent unless the product cannot work without it, and the consent does not excuse what the script sends. Sweden fined Avanza Bank 15 million kronor over account data its Meta pixel sent from logged-in pages. Keep ad pixels out of the app and check what every other script sends.

GDPR

Only 45% of Product Hunt privacy policies name a legal basis

I scanned 458 products that launched on Product Hunt over 30 days in July and August 2026. 397 published a readable privacy policy, but 217 of those (54.7%) named no legal basis for processing and 258 (65.0%) said nothing about whether data leaves the EEA. The items that did survive are the ones a US privacy notice already has.