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

+18 -13
View File
@@ -16,15 +16,20 @@
<meta property="og:title" content="Macedonian Student Organisation in Slovenia">
<meta property="og:description" content="The first official Macedonian student organisation in Slovenia — support, events, community and a voice for Macedonian students from application to graduation.">
<meta property="og:url" content="https://msosorg.com/en/">
<meta property="og:image" content="https://msosorg.com/images/1-logo.png">
<meta property="og:image" content="https://msosorg.com/images/og-default.jpg">
<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="Macedonian Student Organisation in Slovenia">
<meta name="twitter:description" content="The first official Macedonian student organisation in Slovenia — support, events, community and a voice for Macedonian students from application to graduation.">
<meta name="twitter:image" content="https://msosorg.com/images/1-logo.png">
<meta name="twitter:image" content="https://msosorg.com/images/og-default.jpg">
<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>
<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">
@@ -220,7 +225,7 @@
<section class="meet-the-team-section">
<div class="video-container">
<img src="../images/3.activites.webp" alt="Team members collaborating" class="video-thumbnail">
<img loading="lazy" decoding="async" src="../images/3.activites.webp" alt="Team members collaborating" class="video-thumbnail">
<div class="video-overlay"></div>
<button class="play-button" aria-label="Play video"></button>
</div>
@@ -286,7 +291,7 @@
<div class="news-articles">
<article class="news-card" data-type="news">
<a class="news-card-media" href="../en/news/proof-of-means-updated-2026/">
<img src="../images/news-proof-of-means.jpg" alt="Proof-of-means amount updated to €507,43 per month" loading="lazy">
<img src="../images/news-proof-of-means.webp" alt="Proof-of-means amount updated to €507,43 per month" loading="lazy">
<span class="news-badge news-badge--news"><i class="fas fa-bullhorn" aria-hidden="true"></i> News</span>
</a>
<div class="card-content">
@@ -329,7 +334,7 @@
<h3>How collaboration makes us better</h3>
<p>Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra. Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra feugiat.</p>
<div class="author-info">
<img src="../images/7-graphicdesigner.webp" alt="Aleksandar Popovski">
<img loading="lazy" decoding="async" src="../images/7-graphicdesigner.webp" alt="Aleksandar Popovski">
<div>
<h4>Aleksandar Popovski</h4>
<p>Graphic designer at MSOS</p>
@@ -340,7 +345,7 @@
<h3>Consectetur vitae ac parturient massa</h3>
<p>Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra. Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra feugiat. Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra.</p>
<div class="author-info">
<img src="../images/11-boy.webp" alt="Another team member">
<img loading="lazy" decoding="async" src="../images/11-boy.webp" alt="Another team member">
<div>
<h4>Aleksandar Popovski</h4>
<p>Graphic designer at MSOS</p>
@@ -353,7 +358,7 @@
<h3>Proud partners</h3>
<p>Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra. Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra feugiat.</p>
<div class="author-info">
<img src="../images/12-girl2.webp" alt="Another partner">
<img loading="lazy" decoding="async" src="../images/12-girl2.webp" alt="Another partner">
<div>
<h4>Aleksandar Popovski</h4>
<p>Graphic designer at MSOS</p>
@@ -364,7 +369,7 @@
<h3>Our collaboration experience</h3>
<p>Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra. Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra. Dignissim senectus ut senectus curabitur condimentum gravida cras nibh ac. Lorem scelerisque tortor rhoncus viverra pharetra feugiat.</p>
<div class="author-info">
<img src="../images/10-girl1.webp" alt="Another team member">
<img loading="lazy" decoding="async" src="../images/10-girl1.webp" alt="Another team member">
<div>
<h4>Aleksandar Popovski</h4>
<p>Graphic designer at MSOS</p>
@@ -388,7 +393,7 @@
<div class="join-cta-collage">
<div class="join-cta-photo join-cta-photo--1"><img src="../images/event4-img-1.webp" alt="Meet Student Slovenia 2024" loading="lazy"></div>
<div class="join-cta-photo join-cta-photo--2"><img src="../images/msnl-1.webp" alt="Macedonian Student Night in Ljubljana" loading="lazy"></div>
<div class="join-cta-photo join-cta-photo--3"><img src="../images/handball-2025-1.png" alt="Cheering for Macedonia, watching handball together in Slovenia" loading="lazy"></div>
<div class="join-cta-photo join-cta-photo--3"><img src="../images/handball-2025-1.webp" alt="Cheering for Macedonia, watching handball together in Slovenia" loading="lazy"></div>
</div>
</section>
@@ -431,9 +436,9 @@
</div>
<div class="faq-footer">
<div class="avatar-group">
<img src="../images/11-boy.webp" alt="Avatar 1" class="avatar">
<img src="../images/10-girl1.webp" alt="Avatar 2" class="avatar large">
<img src="../images/12-girl2.webp" alt="Avatar 3" class="avatar">
<img loading="lazy" decoding="async" src="../images/11-boy.webp" alt="Avatar 1" class="avatar">
<img loading="lazy" decoding="async" src="../images/10-girl1.webp" alt="Avatar 2" class="avatar large">
<img loading="lazy" decoding="async" src="../images/12-girl2.webp" alt="Avatar 3" class="avatar">
</div>
<h3>Still have questions?</h3>
<p>Can’t find the answer you’re looking for? Please chat to our friendly team.</p>
@@ -449,7 +454,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>