AI-transparantielabel voor WordPress
Artikel 50 van de Europese AI-verordening, Verordening (EU) 2024/1689, vraagt in een aantal gevallen dat mensen te horen krijgen dat iets met AI is gemaakt of bewerkt. Deze plugin doet het praktische deel daarvan: je legt per bericht of pagina vast hoeveel AI erbij betrokken was, je toont dat aan je bezoeker in een zin die je zelf schrijft, en je publiceert hetzelfde feit in een vorm die een machine kan lezen. Het is een boekhoudinstrument, geen advocaat en geen detector.
Je zet een vinkje, en er kunnen drie dingen tegelijk uit komen
Je maakt de keuze precies een keer, in het zijpaneel van de editor. Wat daarmee gebeurt hangt af van drie schakelaars die los van elkaar staan en die na installatie alle drie uit staan. Een verse installatie verandert dus niets aan je openbare pagina's, en dat is met opzet.
Het label in de pagina
Een zin die jij hebt geschreven, boven of onder de inhoud, of via een blok of de shortcode [theseo_ai_label] op de plek die jij kiest.
Je schrijft twee versies, een Nederlandse en een Engelse. De taal van de site bepaalt welke er wordt afgedrukt.
Het meta-element in de kop
Een regel in de <head> van de pagina:
<meta name="ai-content-declaration" content="ai-assisted">
Die naam is een afspraak van deze plugin en geen geregistreerde standaard. De readme zegt dat er letterlijk bij.
Het JSON-LD blok
Een schema.org CreativeWork knooppunt met een eigen @id die eindigt op #ai-declaration, met jouw labeltekst in creditText.
Het staat naast de gestructureerde data van Yoast of Rank Math: de plugin voegt een eigen blok toe en past het hunne niet aan. Getest met beide plugins tegelijk in een draaiende WordPress is die combinatie nog niet.
De vraag die vanzelf opkomt zodra je AI gebruikt
Het punt is zelden of je AI gebruikt. Bijna elke redactie doet dat inmiddels ergens in het proces. Het punt is dat niemand kan navertellen bij welk stuk het wel gebeurde en bij welk stuk niet, en dat die vraag steeds vaker gesteld wordt: door een klant, door een opdrachtgever die de tekst afneemt, en sinds artikel 50 van de Europese AI-verordening in een aantal gevallen ook door de wet.
Wat er dan gebeurt is bijna altijd hetzelfde
Iemand zet een regel onder een artikel, vergeet hem bij de volgende twintig, en een halfjaar later is er geen enkele manier meer om te achterhalen hoe het zat. Dat is geen kwade wil, dat is het ontbreken van een plek waar de keuze hoort.
Deze plugin maakt die plek
Hij staat in het zijpaneel van de editor, hij vraagt een ding, en hij houdt bij welke stukken de vraag nog niet beantwoord hebben.
Wat de plugin precies doet
Vier onderdelen.
Het paneel in de editor
Een paneel in de blokeditor en een blok in de klassieke editor, met de drie standen en twee optionele velden: welk model of gereedschap, en wie het gecontroleerd heeft.
Het overzicht
Elk gepubliceerd item met de stand die het draagt, met de items zonder keuze bovenaan, en een bulkactie om er veel tegelijk te zetten. Optioneel een teller in de adminbalk die het aantal items zonder verklaring toont.
Het label
De zin die je bezoeker leest is jouw zin, niet een vertaling van ons. Je schrijft een Nederlandse en een Engelse versie op het instellingenscherm en de taal van de site kiest. Plaatsing boven de inhoud, onder de inhoud, of zelf via het blok of de shortcode [theseo_ai_label].
Het machineleesbare deel
Twee dingen met elk een eigen schakelaar: het meta-element in de kop en het JSON-LD blok. Wat er in beide staat is te lezen in FIG.01.
Drie keuzes, en wat elk van de drie oplevert
Er zijn drie standen en er komt geen vierde. De reden is dat een schaal met zeven treden in de praktijk niemand consequent invult, en een keuze die niet consequent wordt ingevuld is geen boekhouding maar een gevoel. Naast de stand kun je per bericht twee dingen optioneel invullen: welk model of gereedschap, en wie het gecontroleerd heeft.
compositeWithTrainedAlgorithmicMedia.trainedAlgorithmicMedia. Dat is de woordenlijst die in de branche voor precies deze vraag wordt gebruikt.Zo installeer je hem, in vier stappen
Er is geen account nodig, geen sleutel en geen registratie. Een gewone WordPress waar je beheerder bent is genoeg.
manage_options nodig, dus beheerder.Klik hierboven op de downloadknop. Je krijgt theseo-ai-transparantie-1.0.0.zip, 40 KB. Pak hem niet uit: WordPress wil de zip zelf.
In je WordPress: Plugins, Nieuwe plugin, Plugin uploaden. Kies het bestand en klik op Nu installeren.
Klik op Plugin activeren. Er verschijnt een nieuw onderdeel in je beheermenu. Je site verandert er op dat moment nog niet van.
Open het instellingenscherm en loop de standen langs. Alles wat aan je openbare site raakt staat uit tot je het zelf aanzet.
Wat hij niet doet, en waarom dat belangrijk is
Hier zitten de twee beweringen waar deze categorie plugins meestal onderuit gaat.
- Hij maakt je niet AI Act compliant, en wees voorzichtig met elke plugin die dat wel zegt. Artikel 50 legt de zwaarste transparantieplichten bij aanbieders van AI-systemen, niet bij iedereen die een blog schrijft. Of en hoe een publicatieplicht in jouw geval geldt hangt af van wat je publiceert en van je rol, en dat is juridisch werk. Deze plugin legt een keuze vast en toont hem. Dat is een nuttig deel van het werk, niet het hele werk.
- Hij herkent geen AI-tekst. Er wordt niets gescand en niets geraden. Detectie van AI-tekst werkt niet betrouwbaar, dus deze plugin doet niet alsof. De stand is jouw verklaring, niet een oordeel van software over jouw tekst.
- De naam van het meta-element is geen standaard.
ai-content-declarationis een afspraak van deze plugin. De IPTC-waarden in de JSON-LD zijn dat wel: die woordenlijst wordt in de branche voor precies deze vraag gebruikt.
Vier waarden per bericht, en niets over wie je site leest
Alles staat in de post meta van het item dat je verklaart, plus een instellingenrij met jouw labelteksten. Er is geen tabel, geen log en geen tweede plek. De rechterkolom is niet een belofte maar de reden dat deze plugin buiten je verwerkingsregister blijft.
_theseo_ai_stand, een van drie vaste waarden_theseo_ai_tool, het model of gereedschap dat je zelf typt, hoogstens 200 tekens_theseo_ai_controleur, de persoon die je zelf typt, hoogstens 200 tekens_theseo_ai_gewijzigd, het moment waarop je de keuze voor het laatst veranderde- Een optierij met je instellingen en je labelteksten
- Iets over de bezoeker die de pagina leest
- Een cookie of iets in localStorage of sessionStorage
- Een IP-adres
- Een verzoek naar een server buiten je eigen site
- De tekst van je bericht, ergens anders dan waar WordPress hem al bewaart
uninstall.php. Zoek in de code op wp_remote_get of curl en je vindt niets, want dit is een plugin die alleen in je eigen redactie iets doet.Privacy: wat er wel en niet wordt vastgelegd
Dit is de eenvoudigste privacyparagraaf van alle acht onze plugins, want er is geen bezoeker in het spel.
Er wordt niets over je bezoeker vastgelegd
Geen IP-adres, geen cookie, geen browseropslag, geen user agent, geen teller. De plugin kijkt niet naar je bezoekers; hij kijkt naar je redactie.Geen uitgaand verzoek
Zoek in de uitgepakte zip opwp_remote_get, curl of file_get_contents. Nul treffers. Er is geen account, geen sleutel en niets dat naar buiten praat.Alles blijft in je eigen WordPress
Vier meta-sleutels per bericht en een optierij, meer niet. De vier sleutels staan met naam in FIG.03.Verwijderen laat niets achter
uninstall.php haalt de meta-sleutels en de optierij weg. Deactiveren laat ze staan, zodat je niets kwijt bent als je hem even uitzet.Niets staat standaard aan op je front end
Het label, het meta-element en het JSON-LD blok staan alle drie uit na installatie. Een plugin die begint met zinnen op je site zetten omdat je hem hebt geinstalleerd is een plugin die je niet wilt.Wat wij zelf publiceren over ons eigen AI-gebruik staat op onze AI-transparantieverklaring. Die pagina is met de hand geschreven en niet met deze plugin gemaakt, want deze site draait niet op WordPress.
Veelgestelde vragen
Krijg ik twee JSON-LD blokken als ik Yoast of Rank Math gebruik? Nee. Het knooppunt van deze plugin heeft een eigen @id die eindigt op #ai-declaration en staat naast de gestructureerde data van je SEO-plugin. Er wordt niets van hen aangepast of overschreven.
Kan ik het label zelf plaatsen in plaats van boven of onder de tekst?
Ja, met het blok of met de shortcode [theseo_ai_label]. De instelling die zegt welke standen een label krijgen geldt daar ook voor.
Werkt het op aangepaste berichttypen?
Ja. Op het instellingenscherm kies je zelf welke berichttypen het paneel krijgen.
Wat gebeurt er met berichten die al bestonden?
Die dragen geen stand tot je er een geeft. Ze staan bovenaan in het overzicht en de bulkactie zet ze in een keer op de stand die klopt.
Is de interface Nederlands?
De interface is vertaald en volgt de taal van je site. De labeltekst die je bezoeker leest is geen vertaling maar jouw eigen zin, in beide talen door jou geschreven.
Verandert er iets aan mijn site zodra ik hem activeer?
Nee. Alle drie de uitgangen staan uit. Je ziet alleen een paneel in de editor.
Wat je er de eerste week aan hebt
De praktische volgorde is: installeren, het overzicht openen, de bulkactie gebruiken voor wat er al staat, en daarna het label pas aanzetten als je tevreden bent over je eigen zin. Wil je het breder trekken naar wat AI met je content doet nadat hij is opgehaald, dan zit dat in de AI crawler log. Wat wij zelf over ons AI-gebruik publiceren staat op onze eigen verklaring. Wil je erover doorpraten, plan dan een gesprek.