Jugendschutzlabel in grün auf weissem Hintergrund als Bebilderung zum thematisch passenden Blogartikel rund um Jugendschutz für Erotik Webseiten.

The Youth Protection Label - How to Properly Label Adult Websites

27.07.2026

In a nutshell

A youth protection label, an age.xml file that sits in the root folder of your site, tells youth protection programs whether they may access a page or not. The label is easy to create online and provides safety for minors and site operators alike.

What is a youth protection label & why do you need it for your domina website?

In Germany we place great importance on the protection of minors, and that includes the area of erotica and sexual services. The classification of whether a practice is considered pornographic or harmful to development often seems arbitrary and sometimes comes with a taste of sex work hostility. Fact is, the KJM monitors compliance with the Interstate Treaty on the Protection of Minors in the Media.

As a youth protection officer I look after a good number of colleagues regarding youth protection & legal notice compliance and I am well informed about how the KJM and the state media authorities operate.

Recently, complaints about missing youth protection labels have been piling up. While I generally recommend setting up a youth protection label in my youth protection review, not all colleagues implement it right away. Next thing you know, an official letter lands in the mailbox. So in this article I'll briefly summarize what a youth protection label is, who needs it, what it does, where to get it and how to install it.

Do I even need this?

Dear LVS, I only have a small website with my session offerings and a contact form, do I even need this? I'm not showing any porn?

This is a typical inquiry I receive every week. Short answer: Yes.

You run a website to offer your erotic and sexual services. This applies to escorts, dominas, subs, tantra masseuses, in short, anyone who advertises anything involving sex, no matter how discreetly worded.
Typically these portfolio sites don't show pornographic content, but describe services that the legislator classifies as "harmful to development", which primarily refers to the circumstance: anything involving erotica for money. This is derived from the Interstate Treaty on the Protection of Minors in the Media JMStV.

Ok fine, but do I actually need a youth protection label?

Where providers distribute or make accessible offerings that are suitable for impairing the development of children or adolescents into self-reliant and socially competent individuals, they must ensure that children or adolescents of the affected age groups do not ordinarily perceive them..

How exactly you do that is, within limits, up to you. You could for example hide your website behind a verified age check. Or only make the website accessible between 11 PM and 6 AM. Or not show any content harmful to development at all.

Or set up a simple youth protection label in 5 minutes.

Eine einfache Buttonabfrage ist kine Altersprüfung

I confirm that I am 18 years old - Yes/No

These gateways are very popular, but legally about as binding as lovingly hand-folded notes from 6th grade "Do you want to go out with me?"

Apart from annoying extra clicks they do absolutely nothing. Please do yourself and your users a favour and send them to eternal oblivion via the delete button.

Privileged status - Visible to the right people

Our advertising offerings typically fall under the age 16+ rating. So instead of completely giving up on visibility we can equip our offerings with a youth protection label - the KJM calls this "privileged status" (Privilegierung). "Can" is a bit euphemistic here, we must. Or we take the content down.

To make use of our privilege, we first set up our site so that it works for a 16+ rating - no graphic depictions in text, image or audio. And we "program" our site as required. To do this we place a very specific file, namely the youth protection label, on the website in a way that youth protection programs can read it and block the pages for minors.

How the youth protection label works technically

Technischer Jugendschutz mit einem Jugendschutzlabel

You need two different files: an age.xml (international version) & an age-de.xml. An .xml file is a text-based data format (eXtensible Markup Language), it simply makes text readable for various programs.

More information on the file structure can be found here: https://wiki.selfhtml.org/wiki/Altersklassifikation

Don't worry, you don't need to learn this, you just need to have the xml files created for you. This is free and automatic, for example here: https://www.fsk.de/label-generator/ or here: https://www.altersklassifizierung.de/fragebogen

Or you use these two templates:

age-de.xml

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<age-declaration>
  <ageblock-basic>
    <age-issuer>self-d</age-issuer>
    <last-change>2026-07-27</last-change>
    <country>de</country>
    <label-version>1.0</label-version>
    <revisit-after>30days</revisit-after>
  </ageblock-basic>
  <ageblock-labeltype>
    <xmlfile>true</xmlfile>
    <httpheader>false</httpheader>
    <htmlmeta>false</htmlmeta>
    <label-z>false</label-z>
    <default-age>18</default-age>
  </ageblock-labeltype>
</age-declaration>

Please adjust the date in this line

<last-change>2026-07-27</last-change>

and set the age to 16 or leave it at 18 in this line:

<default-age>18</default-age>

age.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- age classification (age-label.com) -->
<age-declaration>
  <ageblock-basic>
    <age-issuer>self-d</age-issuer>
    <last-change>2026-07-27</last-change>
    <label-version>2.0</label-version>
    <revisit-after>30days</revisit-after>
  </ageblock-basic>
  <ageblock-country>
    <country class="age.xml">
      <country-code>all</country-code>
    </country>
    <country-default>age.xml</country-default>
  </ageblock-country>
  <ageblock-labeltype>
    <httpheader>false</httpheader>
    <htmlmeta>false</htmlmeta>
    <phraselabel>false</phraselabel>
    <agesubmit>false</agesubmit>
    <label-z>false</label-z>
    <xmlfile>true</xmlfile>
    <default-age>18</default-age>
  </ageblock-labeltype>
  <ageblock-labeltype-definition>
    <labeltype-xmlfile>
      <label class="website">
        <scope>*.YOUR-DOMAIN.com/*</scope>
        <age>18</age>
      </label>
    </labeltype-xmlfile>
  </ageblock-labeltype-definition>
</age-declaration>

Hier bei der age.xml zusätzlich noch deine Domain hier eintragen:

<scope>*.YOUR-DOMAIN.com/*</scope>

Also zum Beispiel so:

<scope>*.best-domina-in-the-world.com/*</scope>

If your text editor can't create xml files, you can also use a free online editor, for example: https://onlinexmltools.com/edit-xml

Paste the file, make your changes, click download and save as age-de.xml or age.xml.

Where does the youth protection label go?

Congratulations, you have now created a youth protection label. Now you just need to upload it.
But where and how does that work?

The label needs to go in the root folder of your website. Somewhere on the internet your site is stored, that's usually your hosting provider. There you have rented a bit of storage space for your website. It sits in a folder. And that's where you upload the two xml files. This works either through your FTP access at your web host, or with your FTP login credentials using a program like Filezilla.

Once you've done that, you can test your files by opening them: www.your-domain.com/age.xml
You should now see the xml content displayed.

I'm using a website builder (e.g. Wix or Squarespace) and I can't add my youth protection label, what now?

Unfortunately this is where it gets tricky, because as you've noticed, you can't just access the root folder.
For Squarespace there is a workaround, you upload the file and then assign it a URL.

Here you can find a → Guide.

Or directly from Squarespace:

URL Mappings
Uploading and managing files (link editor)

Whether youth protection programs can actually read this and whether Squarespace still actively supports this trick is still unclear at this point. Regarding the youth protection program, I currently have an inquiry running and will update this article as soon as I have reliable information.

With Wix you currently have no workaround option. There is a somewhat elaborate method of routing the domain through Cloudflare and serving the file on the corresponding request, but that's a bit like shooting a tiny sparrow with a massive cannon. If you want to do that you find a guide here → https://forum.wixstudio.com/t/workaround-how-to-host-root-files-txt-md-json-on-wix-using-cloudflare-workers/75888

As a general rule I would recommend that all providers of erotic and domina websites avoid website builders like Wix and Squarespace entirely. With a bit of clarity and structure you can get your website built yourself, or have it built for you. I'm happy to support you with building your site, or to guide you if you're building it yourself.

I can help you as a youth protection officer

I can help you as a youth protection officer
As a qualified youth protection officer I take care of the legal requirements and advise you on your online offering. I also provide you with a legal notice address so your home stays anonymous.
Go to information and booking

FAQ

What is a youth protection label?

A small XML file that you place on your web server. Youth protection programs like JusProg read it and automatically block your site for minors.

Do I need this even if I don't show any nudity?

Yes. It's not about nudity, it's about erotic services for money. As soon as you offer sessions, companionship or massages with a sexual context, German law classifies that as potentially harmful to minors.

What is the difference between age.xml and age-de.xml?

The age-de.xml applies to Germany, the age.xml internationally. Ideally you upload both. The age-de.xml is the more important one.

How much does the youth protection label cost?

Nothing. Creating it through the JusProg label generator or the FSM is free. You upload it yourself.

How long does the setup take?

If your entire site has the same age rating, you're done in 5 to 10 minutes. Create the file, upload it, test it, done.

Should I rate my site as 16+ or 18+?

Most domina and escort sites without explicit content do fine with 16+. If you show harder content, go with 18+. If you're unsure, the FSM questionnaire on altersklassifizierung.de helps with the assessment.

Does the youth protection label replace age verification?

For erotic content below the pornography threshold, yes. For pornographic content as defined by §4 JMStV you need a proper age verification system. The label alone is not enough in that case.

I built my site on Wix. Can I still add the label?

I built my site on Wix. Can I still add the label?

What happens if I don't have a youth protection label?

The state media authorities send formal complaints. It starts with a friendly letter and can get expensive if you ignore it. Fines under the JMStV go up to 500,000 euros. In practice it rarely gets that extreme, but the mail is still no fun to receive.

I need a youth protection officer, what can I do?

I offer youth protection services for providers of erotic and sexual services. This includes reviewing your website, setting up the youth protection label and ongoing support as your designated youth protection officer