Index: src/services/StatsService.js
===================================================================
--- src/services/StatsService.js	(revision 2a17f0a714ea476a1c6090cbbad470e9a2d46104)
+++ src/services/StatsService.js	(revision 0f48411a45b8908eb1849b383af40a3b658f68c9)
@@ -47,8 +47,14 @@
 // Skip known bots/crawlers + link-preview fetchers + scripts so they don't inflate
 // view/visitor-day counts. Empty UA = almost always automated.
-const BOT_RE = /bot|crawl|spider|slurp|mediapartners|bingpreview|facebookexternalhit|whatsapp|telegram|discord|twitter|linkedin|embedly|pinterest|redditbot|applebot|petalbot|yandex|baidu|duckduckbot|semrush|ahrefs|mj12|dotbot|uptimerobot|pingdom|statuscake|headless|lighthouse|gptbot|claude|ccbot|perplexity|bytespider|amazonbot|googleother|google-read-aloud|python-requests|scrapy|curl|wget|axios|node-fetch|go-http|java\/|okhttp|libwww|httpclient/i;
+const BOT_RE = /bot|crawl|spider|slurp|mediapartners|bingpreview|facebookexternalhit|whatsapp|telegram|discord|twitter|linkedin|embedly|pinterest|redditbot|applebot|petalbot|yandex|baidu|duckduckbot|semrush|ahrefs|mj12|dotbot|uptimerobot|pingdom|statuscake|headless|lighthouse|gptbot|claude|ccbot|perplexity|bytespider|amazonbot|googleother|google-read-aloud|python-requests|scrapy|curl|wget|axios|node-fetch|go-http|java\/|okhttp|libwww|httpclient|mastodon|pleroma|akkoma|misskey|calckey|firefish|friendica|hubzilla|lemmy|pixelfed|peertube|gotosocial|honk|http\.rb|activitypub/i;
 function isBot(req) {
   const ua = (req && req.headers && req.headers['user-agent']) || '';
   if (!ua) return true;          // empty UA = script/bot
+  // A signed request or an ActivityPub content-negotiation is BY DEFINITION a
+  // server fetching, not a reader (Robins vraag, 31-7): one boosted post made
+  // every fediverse instance's link-preview fetch count as a unique visitor.
+  const h = (req && req.headers) || {};
+  if (h['signature']) return true;
+  if (/application\/(activity|ld)\+json/i.test(String(h['accept'] || ''))) return true;
   return BOT_RE.test(ua);
 }
