feat(seo): add Google Preferred Sources button + footer link

New self-contained preferred-source.js (referenced site-wide via
seo_inject GA_LINES):
- small "Add us on Google" text link in the footer (.legal-links) on
  every page, trilingual, using the domain deeplink;
- Google's official interactive pill (publisher.js) on the homepage,
  News hub and Blog hub only, localized (en/mk/sl).
Lets readers mark MSOS as a preferred source (Top Stories / Discover /
News / AI surfaces). Cache-bust bump included.

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 11:25:07 +02:00
1 parent ec6b4fa32d
commit abd9103500
262 files changed
+1500 -1177

No files matched your search

@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -61,7 +62,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Correct path to the main CSS file -->
<link rel="stylesheet" href="../../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../../css/main.css?v=cd97d474">
</head>
<body>
@@ -401,8 +402,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>
@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -61,7 +62,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Correct path to the main CSS file -->
<link rel="stylesheet" href="../../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../../css/main.css?v=cd97d474">
</head>
<body>
@@ -407,8 +408,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>
+5 -4
View File
@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -59,7 +60,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Link to the main CSS file -->
<link rel="stylesheet" href="../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../css/main.css?v=cd97d474">
</head>
<body>
@@ -374,8 +375,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>
@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -61,7 +62,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Correct path to the main CSS file -->
<link rel="stylesheet" href="../../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../../css/main.css?v=cd97d474">
</head>
<body>
@@ -407,8 +408,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>
@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -61,7 +62,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Correct path to the main CSS file -->
<link rel="stylesheet" href="../../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../../css/main.css?v=cd97d474">
</head>
<body>
@@ -399,8 +400,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>
@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -61,7 +62,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Correct path to the main CSS file -->
<link rel="stylesheet" href="../../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../../css/main.css?v=cd97d474">
</head>
<body>
@@ -389,8 +390,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>
@@ -24,6 +24,7 @@
<script src="/consent.js" defer></script>
<!-- Cloudflare Web Analytics (cookieless, no consent needed) -->
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "eff2ed428ab3495eb9d4605234f226e8"}'></script>
<script src="/preferred-source.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/">
@@ -61,7 +62,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media=&#39;all&#39;" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
<!-- Correct path to the main CSS file -->
<link rel="stylesheet" href="../../../css/main.css?v=a90a6258">
<link rel="stylesheet" href="../../../css/main.css?v=cd97d474">
</head>
<body>
@@ -386,8 +387,8 @@
</footer>
<!-- END_FOOTER -->
<script src="../../../main.js?v=a90a6258"></script>
<link rel="stylesheet" href="/assistant.css?v=a90a6258">
<script src="/assistant.js?v=a90a6258" defer></script>
<script src="../../../main.js?v=cd97d474"></script>
<link rel="stylesheet" href="/assistant.css?v=cd97d474">
<script src="/assistant.js?v=cd97d474" defer></script>
</body>
</html>