diff --git a/config.toml b/config.toml
index a634a5dacb8895f1102e09007c251795da5e85d8..6216e688214bcd5ed70357106776cdcbc8224a51 100644
--- a/config.toml
+++ b/config.toml
@@ -56,9 +56,14 @@ tree = "https://edugit.org/Teckids/team-pr/teckids.org/-/tree/master/content"
 issues = "https://edugit.org/Teckids/team-pr/teckids.org/-/issues"
 
 [extra.footer]
-address = "Kennedyallee 18<br/>53175 Bonn"
+address.street = "Kennedyallee 18"
+address.postal_code = "53175"
+address.city = "Bonn"
 bank = "<b>IBAN:</b> DE31 3705 0198 1933 0485 46<br/><b>BIC:</b> COLSDE33XXX<br/>Sparkasse KoelnBonn"
-license = "CC-BY-SA"
+
+[extra.footer.license]
+name = "CC-BY-SA"
+url = "https://creativecommons.org/licenses/by-sa/4.0/"
 
 [[extra.footer.menu]]
 label = "Kleingedrucktes"
diff --git a/content/blog/2024/04/2024-04-07_glt-2024/index.md b/content/blog/2024/04/2024-04-07_glt-2024/index.md
index fecfd8d5bcd29c616f3b152f0b8a26726c904e90..50af760e8b81e0da692e69a833c15e383230dde7 100644
--- a/content/blog/2024/04/2024-04-07_glt-2024/index.md
+++ b/content/blog/2024/04/2024-04-07_glt-2024/index.md
@@ -2,6 +2,9 @@
 title = "Teckids bei den Grazer Linux-Tagen 2024"
 authors = ["krfl9500", "codecraft"]
 
+[extra.microdata]
+about = ["https://ticdesk.teckids.org/app/paweljong/event/froglabs-2024-glt"]
+
 [extra.depiction]
 image = "collage.jpg"
 alt = "Collage mit einem Blick vom Schlossberg auf den Uhrturm und die Stadt im Hintergrund; im Vordergrund ein Foto von Kindern, die ein Breadboard bestücken und eines von Kindern, die an einem Laptop ein Spiel ausprobieren"
diff --git a/templates/base.html b/templates/base.html
index e34f29647361ee9c9cc2c626ced854d9cc8ecfc5..9490a4ee18dbe6f6746415a6ccdfa80eebbcde39 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -8,6 +8,7 @@
     <head>
         <meta charset="utf-8" />
         <meta name="viewport" content="width=device-width, initial-scale=1" />
+	<meta property="schema:publisher" href="https://teckids.org/" />
 
         {% block meta %}
           <meta name="description" content="{{ thing.description | default(value=config.description) }}" />
diff --git a/templates/blog/author_media.html b/templates/blog/author_media.html
index 0fbdefabdd78df727fb3e098b86e2265bdcc965d..df16b9f1cd3cd0556cae387de8d6ba22a8cbc53e 100644
--- a/templates/blog/author_media.html
+++ b/templates/blog/author_media.html
@@ -1,12 +1,12 @@
-<div class="media author-section is-flex">
+<div class="media author-section is-flex" resource="{{ post.permalink }}" typeof="schema:BlogPosting">
   <div class="media-left author-images is-align-self-center">
 {% set authors_data = load_data(path="authors.json") -%}
 {% for author in post.authors -%}
-    <figure class="image is-48x48 is-inline-block">
+<figure class="image is-48x48 is-inline-block" property="schema:contributor" resource="https://teckids.org/authors/{{ author }}/" typeof="schema:Person">
       {% set meta = get_image_metadata(path="authors/" ~ author ~ ".jpg", allow_missing=true) -%}
       {% if meta -%}
         {% set image = resize_image(path="authors/" ~ author ~ ".jpg", width=48, height=48) -%}
-        <img class="is-rounded" src="{{ image.url }}" alt="Benutzerbild von {{ authors_data[post.authors.0].display_name }}" />
+        <img property="schema:image" class="is-rounded" src="{{ image.url }}" alt="Benutzerbild von {{ authors_data[post.authors.0].display_name }}" />
       {% else -%}
       <div class="is-flex is-fullheight">
         <span class="fa-stack fa-lg is-block is-align-self-center">
@@ -21,7 +21,7 @@
   <ul class="media-content is-align-self-center">
     <div class="title is-5">
 {% for author in post.authors -%}
-      <span class="is-text-nowrap">{{ authors_data[author].display_name }}</span>{% if not loop.last %}, {% endif %}
+<span resource="https://teckids.org/authors/{{ author }}/" typeof="schema:Person" class="is-text-nowrap"><span property="schema:name">{{ authors_data[author].display_name }}</span></span>{% if not loop.last %}, {% endif %}
 {% endfor %}
     </div>
   </ul>
diff --git a/templates/blog/card.html b/templates/blog/card.html
index 2c73af03d8e2e8babfcb43ea60e08beb8fb5df0a..d15c73c65e789eef61d3b3ba09ef1a04bb751623 100644
--- a/templates/blog/card.html
+++ b/templates/blog/card.html
@@ -1,4 +1,9 @@
-          <div class="card is-flex is-flex-direction-column is-fullheight is-justify-content-space-between">
+          <div class="card is-flex is-flex-direction-column is-fullheight is-justify-content-space-between" typeof="schema:BlogPosting" resource="{{ post.permalink }}" property="schema:blogPosting">
+            {% if post.extra.microdata.about %}
+            {% for about in post.extra.microdata.about %}
+              <meta property="schema:about" href="{{ about }}" />
+            {% endfor %}
+            {% endif %}
             <div class="card-image">
               <a href="{{ post.permalink }}">
                 <figure class="image is-4by3">
@@ -11,10 +16,10 @@
               </a>
             </div>
             <div class="card-content is-fullheight">
-                <a href="{{ post.permalink }}"><h3 class="title is-4">{{ post.title }}</h3></a>
+                <a href="{{ post.permalink }}"><h3 class="title is-4" property="schema:headline">{{ post.title }}</h3></a>
                 <div class="content">
                   {% include "blog/meta_line.html" -%}
-                  {{ post.summary | safe }}
+                  <span propery="schema:abstract">{{ post.summary | safe }}</span>
                 </div>
             </div>
             <div class="card-footer">
diff --git a/templates/blog/meta_line.html b/templates/blog/meta_line.html
index 7da4a02f83530c09c918df04278562390ea45a0b..87d40f931b27f7f6047e1d1cd99af0bb6bbb396f 100644
--- a/templates/blog/meta_line.html
+++ b/templates/blog/meta_line.html
@@ -1,5 +1,5 @@
 <p class="subtitle is-7 py-2">
-  <span title="Veröffentlicht am"><i class="fa-solid fa-calendar-days"></i> {{ post.date }}</span> ·
+  <span title="Veröffentlicht am"><i class="fa-solid fa-calendar-days"></i> <time datetime="{{ post.date }}" property="schema:datePublished">{{ post.date }}</time></span> ·
   <span title="Lesezeit"><i class="fa-solid fa-hourglass-start"></i> {{ post.reading_time }} min</span>
 </p>
 
diff --git a/templates/blog/post.html b/templates/blog/post.html
index d493fd8ef1081850d43ef91e1ce72f5f957bb956..dfd04c3d86f4b41d3d11a4c7dada0c298f22f4de 100644
--- a/templates/blog/post.html
+++ b/templates/blog/post.html
@@ -1,10 +1,17 @@
 {% extends "page.html" %}
 
 {% block content %}
+  {% set blog_section = get_section(path="blog/_index.md") %}
   {% set post = page -%}
-  <div class="columns mt-4">
+  <div class="columns mt-4" typeof="schema:BlogPosting">
+	  <meta property="schema:isPartOf" href="{{ blog_section.permalink }}" />
+    {% if post.extra.microdata.about %}
+    {% for about in post.extra.microdata.about %}
+      <meta property="schema:about" href="{{ about }}" />
+    {% endfor %}
+    {% endif %}
     <div class="column is-three-quarters">
-      <div class="content">
+      <div class="content" property="schema:articleBody">
         {{ page.content | safe }}
       </div>
     </div>
diff --git a/templates/footer.html b/templates/footer.html
index 4cd9aa95f541477d8db51734c8ad35f0c72bdb4f..0681c6a1e59fce042b7f60683c655e0b6c27feee 100644
--- a/templates/footer.html
+++ b/templates/footer.html
@@ -1,8 +1,10 @@
-  <div class="columns is-multiline">
+  <div class="columns is-multiline" resource="https://teckids.org/" typeof="schema:Organization">
     <div class="column is-one-fourth">
-      <p class="title is-5">Teckids e.V.</p>
-      <address>
-        {{config.extra.footer.address|safe}}
+      <p class="title is-5" property="schema:name">Teckids e.V.</p>
+      <address property="schema:address" typeof="schema:PostalAddress">
+        <span property="schema:streetAddress">{{config.extra.footer.address.street|safe}}</span><br/>
+        <span property="schema:postalCode">{{config.extra.footer.address.postal_code|safe}}</span>&nbsp;
+        <span property="schema:addressLocality">{{config.extra.footer.address.city|safe}}</span>
       </address>
       <aside class="mt-5">
         <p class="title is-6">Spendenkonto</p>
@@ -13,9 +15,10 @@
       <p class="title is-5">Unterstützer und Partner*innen</p>
       <div class="columns is-centered is-vcentered is-multiline">
         {% for sponsor in config.extra.footer.sponsor %}
-          <div class="column is-one-quarter">
+          <div class="column is-one-quarter" property="schema:sponsor" typeof="schema:Organization">
             <figure class="image">
-              <a href="{{sponsor.link}}">
+              <meta property="schema:name" content="{{sponsor.alt}}" />
+              <a property="schema:url" href="{{sponsor.link}}">
                 <img src="/images/sponsoren/{{sponsor.logo}}" alt="{{sponsor.alt}}" />
               </a>
             </figure>
@@ -48,7 +51,7 @@
     </div>
   </div>
   <aside class="section has-text-centered is-size-7">
-    © {{ config.author }} · Lizenziert unter {{ config.extra.footer.license }} (sofern nicht anders angegeben)<br/>
+    © {{ config.author }} · Lizenziert unter <a property="schema:license" href="{{ config.extra.footer.license.url }}">{{ config.extra.footer.license.name }}</a><br/>
     Erstellt mit <a href="https://www.getzola.org/">Zola</a> und <a href="https://bulma.io/">Bulma</a><br/>
     {% if thing.path %}Diese Seite kann <a href="{{ config.extra.repo.web.tree }}/{{ thing.relative_path }}">auf EduGit editiert werden</a> oder <a href="{{ config.extra.repo.web.issues }}">eine Verbesserung vorgeschlagen werden</a>.<br/>{% endif %}
   </aside>
diff --git a/templates/frontpage/blog.html b/templates/frontpage/blog.html
index 3bd6fe570303f6967eb88c30ab1162e6859d9744..f02416b1bdd5afbd1f74dc95840cdb14f90683ce 100644
--- a/templates/frontpage/blog.html
+++ b/templates/frontpage/blog.html
@@ -1,9 +1,10 @@
 {% set blog_section = get_section(path="blog/_index.md") %}
-<section class="section">
+<section class="section" resource="{{ blog_section.permalink }}" typeof="schema:Blog">
+  <meta property="schema:publisher" href="https://teckids.org/" />
   <div class="container">
     <h2 class="title is-2">{{ title | default(value="Aus dem Teckids-Blog") }}</h2>
     <div class="columns is-multiline is-same-height mt-4">
-      {% for post in blog_section.pages | slice(end=6) %}
+      {% for post in blog_section.pages | slice(end=9) %}
         <div class="column is-one-third">
           {% include "blog/card.html" %}
         </div>
diff --git a/templates/frontpage/claim.html b/templates/frontpage/claim.html
index e2572a1e44014af1cab2ea5eacdf0cecd8704c0f..bb681ccfb535becf7f3cdb88e948f40d042907a1 100644
--- a/templates/frontpage/claim.html
+++ b/templates/frontpage/claim.html
@@ -1,10 +1,11 @@
 <section
   class="hero is-fullheight-with-navbar has-teckids-orange-light-bg"
   id="frontpage-claim-block"
+  resource="https://teckids.org/"
 >
   <div class="hero-body">
     <div class="container">
-      <p class="title is-1 has-text-centered">{{ config.description }}</p>
+      <p class="title is-1 has-text-centered" property="schema:slogan">{{ config.description }}</p>
       <div class="columns is-same-height mt-4">
         {% for claim in section.extra.claims %}
         <div class="column is-one-third">
diff --git a/templates/frontpage/projects.html b/templates/frontpage/projects.html
index 296af3b678b7a94a5561f6072aa8fa37dae7cb8f..936fe3499a47c9456cdfe5efdf5b14d1da4e1126 100644
--- a/templates/frontpage/projects.html
+++ b/templates/frontpage/projects.html
@@ -1,12 +1,12 @@
 {% set projects_section = get_section(path="projekte/_index.md") %}
 
-<section class="section">
+<section class="section" resource="https://teckids.org/">
   <div class="container">
     <h2 class="title is-2">Unsere Projekte</h2>
     <div class="columns is-same-height mt-4">
       {% for project_section_path in projects_section.subsections %}
       {% set project_section = get_section(path=project_section_path) %}
-      <div class="column is-one-third">
+      <div class="column is-one-third" property="schema:brand" resource="{{ project_section.permalink }}" typeof="schema:Brand">
         <div class="card is-shadowless">
           <div class="card-image">
             <figure class="image is-70p">
@@ -14,9 +14,9 @@
             </figure>
           </div>
           <div class="card-content">
-            <a href="{{ project_section.permalink }}"><h3 class="title is-3">{{ project_section.title }}</h3></a>
+            <a href="{{ project_section.permalink }}"><h3 class="title is-3" property="schema:name">{{ project_section.title }}</h3></a>
             <div class="content">
-              {{ project_section.description }}
+	      <span property="schema:description">{{ project_section.description }}</span>
               <ul>
                 {% for thesis in project_section.extra.theses %}
                   <li>{{ thesis }}</li>
diff --git a/templates/project.html b/templates/project.html
index 1658e6944daaf7d7f4d80703c719a5171a230120..8dc99ae477e2f6d053c0d52935ab762eb45e7c71 100644
--- a/templates/project.html
+++ b/templates/project.html
@@ -14,10 +14,10 @@
 
 {% block main %}
   <section class="hero hero-main is-fullheight-with-navbar project-background-{{ section.extra.project_slug }} roboto-black">
-  <div class="hero-body">
+  <div class="hero-body" typeof="schema:Brand">
     <div class="container">
-      <div class="columns is-centered project-title-{{ section.extra.project_slug }}">
-      <h1 class="title is-1">{{ section.title }}</h1>
+      <div class="columns is-centered project-title-{{ section.extra.project_slug }}">i
+      <h1 class="title is-1" property="schema:name">{{ section.title }}</h1>
     </div>
     <div class="container">
       <div class="columns is-vcentered">
diff --git a/templates/shortcodes/teckids_event.html b/templates/shortcodes/teckids_event.html
index 06772adc4c06e406fa9e18397c39a1254a1bbd60..eeff94d398c51668c8441cca61ea397b8ea37cf1 100644
--- a/templates/shortcodes/teckids_event.html
+++ b/templates/shortcodes/teckids_event.html
@@ -1,28 +1,25 @@
 {% set events_data = load_data(path="events.json") -%}
 {% set event = events_data[slug] -%}
 {% if not no_title %}<h2 class="title is-2">{{ title | default(value="Informationen und Anmeldung") }}</h2>{% endif %}
-<section class="section event-section">
+<section class="section event-section" resource="https://ticdesk.teckids.org/app/paweljong/event/{{ slug }}" vocab="http://schema.org/" typeof="Event">
+  <meta property="organizer" href="https://teckids.org/"/>
   <div class="card event-card">
     <div class="card-content">
       <div class="columns is-vcentered">
         <div class="column is-two-thirds event-info">
-          <h3 class="title is-5">{{ event.display_name }}</h3>
-          <p class="subtitle is-6">{{ event.description }}</p>
+          <h3 class="title is-5" property="name">{{ event.display_name }}</h3>
+          <p class="subtitle is-6" property="description">{{ event.description }}</p>
           <div class="notification is-primary is-light mt-4 mb-4">
             <div class="columns">
               <div class="column is-one-third">
                 <h4 class="title ">Wo?</h4>
                 <i class="fa-regular fa-location-dot mr-3"></i>
-                <address class="is-inline-block">
-                  {{ event.location }}
-                </address>
+                <address class="is-inline-block" property="location">{{ event.location }}</address>
               </div>
               <div class="column is-one-third">
                 <h4 class="title">Wann?</h4>
                 <i class="fa-regular fa-calendar-days mr-3"></i>
-                <time datetime="{{ event.date }}">
-                  {{ event.date | date }}
-                </time>
+                <time datetime="{{ event.date }}" property="startDate">{{ event.date | date }}</time>
               </div>
               <div class="column is-one-third">
                 <h4 class="title">Preis?</h4>
@@ -40,6 +37,7 @@
           </div>
         </div>
       {% if event.fully_booked %}
+        <meta property="remainingAttendeeCapacity" content="0"/>
         <div class="message is-danger">
           <div class="message-body">
             Die Veranstaltung ist ausgebucht. Für weitere Anmeldungen oder Plätze auf der