fix(seo): add endDate, performer, offers to Event structured data

Clears the 3 non-critical Events issues in Search Console
("Missing field endDate/performer/offers") across all /projects/
recap pages. These are free, single-day events, so endDate mirrors
startDate, performer is MSOS (host org), and offers is a zero-price
Offer. Generated centrally in tools/seo_inject.py and re-injected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
popovskikandClaude Opus 4.8 committed 2026-08-30 09:40:14 +02:00
1 parent 0a1971efad
commit 508cb79334
260 files changed
+311 -308

No files matched your search

@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="The food matters, but so do the order of the plates, the people around them, and the fact that nobody leaves after the first course.">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/a-table-full-of-macedonia/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/a-table-full-of-macedonia/">
@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="Stobi, Heraclea, Kokino, and Krusevo do not belong to the same century or tell the same story. That is exactly why they belong in the same journey.">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/history-you-can-still-walk-through/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/history-you-can-still-walk-through/">
+1 -1
View File
@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="Macedonia is not only a place on the map. It is a table that always has room for one more person, music that brings everyone closer, mountains on the horizon…">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/">
@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="In Macedonia, music is often not something performed in front of a room. It is what changes the room and brings people into the same rhythm.">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/music-dance-and-the-moments-that-bring-us-together/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/music-dance-and-the-moments-that-bring-us-together/">
@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="The lake attracts the first look. The old streets, wooden houses, churches, neighbourhoods, and evening conversations are what make people return.">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/ohrid-more-than-a-postcard/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/ohrid-more-than-a-postcard/">
@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="A city best understood by crossing the river, changing neighbourhoods, and noticing what each period left behind.">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/skopje-a-city-of-many-layers/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/skopje-a-city-of-many-layers/">
@@ -21,7 +21,7 @@
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<script src="/consent.js?v=f95de694" defer></script>
<script src="/consent.js" defer></script>
<meta name="description" content="A country of mountains, open tables, long conversations, and stories that remain close wherever we go.">
<link rel="canonical" href="https://msosorg.com/en/get-to-know-macedonia/welcome-to-macedonia/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/get-to-know-macedonia/welcome-to-macedonia/">