Add technical SEO foundation, MK/SI about-us + timeline, content fixes

SEO (all 201 pages, en/mk/si):
- Inject canonical, hreflang (en/mk/sl + x-default), Open Graph, Twitter
  cards and Organization JSON-LD via idempotent SEO:START/END block
- Generate multilingual sitemap.xml (xhtml:link alternates) + robots.txt
- Curated meta descriptions for lead-less pages (home, become-a-member,
  faq, news hub, my-route); every page now has a description
- Absolute URLs target final domain msosorg.com, not the temp host
- Add reusable tools/seo_inject.py (+ README)

Content fixes:
- Translate about-us and timeline-and-milestones into MK + SI, wire up
  their pages, and repair the previously-dead "Who We Are" nav links
  across all mk/si pages
- Remove duplicate en/projects/makedonska-studentska-vecer-vo-ljubljana
  (unreferenced; already covered by macedonian-student-night-in-ljubljana)

Locale correctness:
- Normalise Slovene pages to <html lang="sl"> (correct ISO 639-1)
- Map sl->si in main.js so the language-switcher highlight and newsletter
  i18n keep working on Slovene pages (data-lang="si" still maps to /si/)

MK/SI translations and descriptions are AI-drafted; flag for native review.

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 11:43:10 +02:00
1 parent 31487ad83e
commit b393859467
208 files changed
+8319 -1388

No files matched your search

+22 -1
View File
@@ -4,7 +4,28 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>From Macedonia to Slovenia, step by step - MSOS</title>
<!-- SEO:START -->
<meta name="description" content="Your complete route from a Macedonian secondary school or first degree to enrolled student life in Slovenia.">
<link rel="canonical" href="https://msosorg.com/en/student-welcome-guide/">
<link rel="alternate" hreflang="en" href="https://msosorg.com/en/student-welcome-guide/">
<link rel="alternate" hreflang="mk" href="https://msosorg.com/mk/student-welcome-guide/">
<link rel="alternate" hreflang="sl" href="https://msosorg.com/si/student-welcome-guide/">
<link rel="alternate" hreflang="x-default" href="https://msosorg.com/en/student-welcome-guide/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Macedonian Student Organisation in Slovenia">
<meta property="og:title" content="From Macedonia to Slovenia, step by step - MSOS">
<meta property="og:description" content="Your complete route from a Macedonian secondary school or first degree to enrolled student life in Slovenia.">
<meta property="og:url" content="https://msosorg.com/en/student-welcome-guide/">
<meta property="og:image" content="https://msosorg.com/images/1-logo.png">
<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="From Macedonia to Slovenia, step by step - MSOS">
<meta name="twitter:description" content="Your complete route from a Macedonian secondary school or first degree to enrolled student life in Slovenia.">
<meta name="twitter:image" content="https://msosorg.com/images/1-logo.png">
<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>
<!-- SEO:END -->
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>