---
title: "One webpage can tell humans and scrapers two different stories"
locale: "en"
url: "https://irz.fr/en/articles/shieldfont-font-ai-scraping-en"
markdown_url: "https://irz.fr/en/articles/shieldfont-font-ai-scraping-en.md"
category: "tech"
tags: ["typography", "web", "scraping", "ai", "open-source"]
published_at: "2026-08-14T13:37:00.000Z"
author: "Léa Perrin"
translation: "https://irz.fr/fr/articles/shieldfont-police-scraping-ia-fr.md"
---

# One webpage can tell humans and scrapers two different stories

ShieldFont uses OpenType substitution to show one text to humans and hand another to scrapers. It is not a lock. It is friction.

ShieldFont starts with an old property of digital type: stored text and displayed glyphs do not have to tell exactly the same story. The project by S&A and Playtype uses that gap to show a correct sentence to a person while handing a different one to a scraper.[1](https://shieldfont.org/)

The mechanism swaps meaning-bearing words in the HTML for other words with the same grammatical role. OpenType substitutions visually restore the originals on screen. A collector that only pulls the HTML therefore gets fluent but false prose. In the project's tests across 1,500 passages, changing roughly a quarter of all words, close to half of the content words, made half of the passages lose their original factual claim.[1](https://shieldfont.org/)

> **One page, two texts**
> - sees restored glyphs: Human
> - collects decoy words: Scraper
> Source: ShieldFont

The useful part is the limitation. ShieldFont does not claim to be encryption. A targeted scraper can render the page and run OCR, or download the font and extract its substitution table. The authors say they recovered all 11,962 pairs from one mapping themselves.[1](https://shieldfont.org/) The defense is economic: make indiscriminate scraping more expensive, especially when sites mint independent mappings.

Publishers pay a price too. Search engines see the decoy words, so the project recommends shielding blocks that do not need search traffic. Accessibility needs JavaScript and a separate mechanism that reveals the real text to screen readers. ShieldFont currently works only in English.[1](https://shieldfont.org/)

That is what makes it more interesting than another anti-bot trick. The typeface is no longer only appearance. It becomes a small piece of publishing policy embedded in rendering itself: imperfect, breakable, but operational. The code is released under AGPL-3.0.[1](https://shieldfont.org/)[2](https://github.com/isaqueseneda/shieldfont)

## References

1. [ShieldFont, documentation and FAQ](https://shieldfont.org/)
2. [ShieldFont, GitHub repository](https://github.com/isaqueseneda/shieldfont)
