SEO polish: OG image, favicons, 404, article schema, image optimization

- Add branded 1200x630 og-default.jpg; article pages use their hero as
  og:image, others use the default
- Wire the existing (previously unlinked) favicon set into every page
- Add branded 404.html with root-absolute paths + noindex
- Emit Article + localized BreadcrumbList JSON-LD on all article pages
- Convert 74 heavy served photos to WebP (28MB -> 8.5MB, -70%), rewrite
  references, add loading=lazy/decoding=async to below-fold images and
  fetchpriority=high to heroes (protect LCP)
- Stop tracking images/original/ (458MB of unused source masters; kept on
  disk, gitignored) and ignore .playwright-mcp/

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
popovskikandClaude Opus 4.8 committed 2026-08-02 12:15:53 +02:00
1 parent b393859467
commit 314667f692
429 files changed
+2559 -1106

No files matched your search

@@ -16,15 +16,22 @@
<meta property="og:title" content="Humanitarian Sports Tournament: Playing with Heart, Together for Kočani - MSOS">
<meta property="og:description" content="Over 200 students gathered in Maribor, raising €1.000 through sport to support families hit by the Kočani tragedy.">
<meta property="og:url" content="https://msosorg.com/en/projects/humanitarian-tournament-in-maribor/">
<meta property="og:image" content="https://msosorg.com/images/maribor-tournament-1.png">
<meta property="og:image" content="https://msosorg.com/images/maribor-tournament-1.webp">
<meta property="og:locale" content="en_GB">
<meta property="og:locale:alternate" content="mk_MK">
<meta property="og:locale:alternate" content="sl_SI">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Humanitarian Sports Tournament: Playing with Heart, Together for Kočani - MSOS">
<meta name="twitter:description" content="Over 200 students gathered in Maribor, raising €1.000 through sport to support families hit by the Kočani tragedy.">
<meta name="twitter:image" content="https://msosorg.com/images/maribor-tournament-1.png">
<meta name="twitter:image" content="https://msosorg.com/images/maribor-tournament-1.webp">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Macedonian Student Organisation in Slovenia","alternateName":"MSOS","url":"https://msosorg.com/en/","logo":"https://msosorg.com/images/1-logo.png","email":"info@msosorg.com","address":{"@type":"PostalAddress","streetAddress":"Masarykova cesta 24","postalCode":"1000","addressLocality":"Ljubljana","addressCountry":"SI"},"sameAs":["https://www.facebook.com/msos.org","https://www.instagram.com/msosorg_com","https://www.linkedin.com/company/msos-org","https://www.youtube.com/@msosorg"]}</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"Humanitarian Sports Tournament: Playing with Heart, Together for Kočani","description":"Over 200 students gathered in Maribor, raising €1.000 through sport to support families hit by the Kočani tragedy.","image":"https://msosorg.com/images/maribor-tournament-1.webp","inLanguage":"en","author":{"@type":"Organization","name":"Macedonian Student Organisation in Slovenia","url":"https://msosorg.com/en/"},"publisher":{"@type":"Organization","name":"Macedonian Student Organisation in Slovenia","logo":{"@type":"ImageObject","url":"https://msosorg.com/images/1-logo.png"}},"mainEntityOfPage":"https://msosorg.com/en/projects/humanitarian-tournament-in-maribor/"}</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://msosorg.com/en/"},{"@type":"ListItem","position":2,"name":"Events & projects","item":"https://msosorg.com/en/projects/"},{"@type":"ListItem","position":3,"name":"Humanitarian Sports Tournament: Playing with Heart, Together for Kočani","item":"https://msosorg.com/en/projects/humanitarian-tournament-in-maribor/"}]}</script>
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<!-- SEO:END -->
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
@@ -173,14 +180,14 @@
</header>
<figure class="article-main-image">
<img src="../../../images/maribor-tournament-1.png" alt="The MSOS Maribor team at the humanitarian sports tournament">
<img fetchpriority="high" src="../../../images/maribor-tournament-1.webp" alt="The MSOS Maribor team at the humanitarian sports tournament">
</figure>
<div class="article-body">
<p>On April 5, 2025, MSOS Maribor organized the first humanitarian sports tournament in the history of our organization. The idea came naturally. After the tragic events in Kočani, many of us felt powerless, but we also knew we had to do something. As students, maybe we could not solve everything, but we could do what we do best: bring people together. Sports became the perfect way to channel our emotions and energy into solidarity.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-2.png" alt="A snapshot of the MSOS Maribor team.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-2.webp" alt="A snapshot of the MSOS Maribor team.">
<figcaption>A snapshot of the MSOS Maribor team.</figcaption>
</figure>
@@ -189,14 +196,14 @@
<p>The event took place at the Leon Štukelj Sports Hall, which came alive with cheering, laughter, and the sound of basketballs and futsal balls bouncing across the courts. From the very beginning, you could feel that this was not just about competition. It was about community.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-3.png" alt="Teams lined up and ready for the start of the tournament.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-3.webp" alt="Teams lined up and ready for the start of the tournament.">
<figcaption>Teams lined up and ready for the start of the tournament.</figcaption>
</figure>
<p>We welcomed 12 basketball teams and 4 futsal teams, made up not only of Macedonian students but also of friends from Serbia, Bosnia and Herzegovina, and Spain. That mix of cultures and languages created a special vibe, proof that solidarity does not stop at national borders. Teams supported each other, rivalries ended in handshakes, and every goal or basket felt like a small victory for the cause we were all there for.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-4.png" alt="Students giving their all on the futsal court, turning competition into energy, laughter, and unforgettable moments.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-4.webp" alt="Students giving their all on the futsal court, turning competition into energy, laughter, and unforgettable moments.">
<figcaption>Students giving their all on the futsal court, turning competition into energy, laughter, and unforgettable moments.</figcaption>
</figure>
@@ -207,12 +214,12 @@
<p>At the end of the tournament, symbolic prizes were awarded to the winners. They were not just trophies. They were a way to honor everyone who gave their time and energy to be part of the event.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-5.png" alt="When victory means more than a game, lifted high by the team.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-5.webp" alt="When victory means more than a game, lifted high by the team.">
<figcaption>When victory means more than a game, lifted high by the team.</figcaption>
</figure>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-6.png" alt="Warming up before the basketball games, both men’s and women’s teams getting ready for action.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-6.webp" alt="Warming up before the basketball games, both men’s and women’s teams getting ready for action.">
<figcaption>Warming up before the basketball games, both men’s and women’s teams getting ready for action.</figcaption>
</figure>
@@ -221,7 +228,7 @@
<p>The most important result was not on the scoreboard but in the donations box. Together, we raised €1.010, which was split between two Macedonian families whose children were undergoing treatment in Slovenia. It was not just money. It was a message that they were not alone, that the student community stood with them during the hardest of times.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-7.png" alt="High-fives, trophies, and smiles, celebrating victory on and off the court.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-7.webp" alt="High-fives, trophies, and smiles, celebrating victory on and off the court.">
<figcaption>High-fives, trophies, and smiles, celebrating victory on and off the court.</figcaption>
</figure>
@@ -232,7 +239,7 @@
<p>And maybe most importantly, this was just the beginning. With "Playing with Heart, Together for Kočani", we did not only create a successful humanitarian action. We set the foundation for a tradition that will continue to remind us that together, we can make a difference.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-8.png" alt="A memorable moment with the organizing team and the victorious basketball and futsal squads.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-8.webp" alt="A memorable moment with the organizing team and the victorious basketball and futsal squads.">
<figcaption>A memorable moment with the organizing team and the victorious basketball and futsal squads.</figcaption>
</figure>
@@ -241,14 +248,14 @@
<p>The tournament would not have been possible without the support of our partners and community. We are grateful to the University of Maribor for providing the entire Leon Štukelj Sports Hall free of charge, to Macedonia Trade for taking care of the refreshments and gifts for the winning teams, and to Radenska for supplying water for all participants.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-9.png" alt="Thanks to Macedonia Trade and Radenska for supporting the tournament with drinks and refreshments for the players.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-9.webp" alt="Thanks to Macedonia Trade and Radenska for supporting the tournament with drinks and refreshments for the players.">
<figcaption>Thanks to Macedonia Trade and Radenska for supporting the tournament with drinks and refreshments for the players.</figcaption>
</figure>
<p>A huge thank you also goes to our MSOS Maribor team and volunteers, who worked tirelessly to make this event a reality. And of course, to all the students who showed up not only as players but also as fans, supporters, and friends. Their cheering, laughter, and energy filled the hall and transformed the tournament into more than a competition. It became a moment of unity, solidarity, and joy that none of us will forget.</p>
<figure class="article-inline-image">
<img src="../../../images/maribor-tournament-10.png" alt="The MSOS Maribor team celebrating together after a successful tournament.">
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-10.webp" alt="The MSOS Maribor team celebrating together after a successful tournament.">
<figcaption>The MSOS Maribor team celebrating together after a successful tournament.</figcaption>
</figure>
</div>
@@ -276,7 +283,7 @@
<div class="footer-main">
<div class="footer-info">
<div class="footer-logo">
<img src="../../../images/13-whitelogo.png" alt="Macedonian Student Organisation in Slovenia Logo">
<img loading="lazy" decoding="async" src="../../../images/13-whitelogo.png" alt="Macedonian Student Organisation in Slovenia Logo">
</div>
<p class="footer-legal-name">Društvo Makedonska Študentska Organizacija v Sloveniji za študentsko podporo in kulturno sodelovanje</p>
<p>