diff --git a/app/models/communication/block/template/person.rb b/app/models/communication/block/template/person.rb
index 9a01a2d608b7e3112e81302ca2a0e75b1e225ec7..8cfbb025523ccd6baf8261e403158212fa580c66 100644
--- a/app/models/communication/block/template/person.rb
+++ b/app/models/communication/block/template/person.rb
@@ -14,8 +14,12 @@ class Communication::Block::Template::Person < Communication::Block::Template::B
     end
     @elements
   end
+
+  def people
+    @people ||= elements.collect(&:person).compact.uniq
+  end
   
   def children
-    elements
+    people
   end
 end
diff --git a/app/models/concerns/backlinkable.rb b/app/models/concerns/backlinkable.rb
index 255131c6727ba904cbf1713f6e4c2072a2fc198f..4a5b6b2388ab9840f4da3035c16b8fd173d56663 100644
--- a/app/models/concerns/backlinkable.rb
+++ b/app/models/concerns/backlinkable.rb
@@ -26,14 +26,18 @@ module Backlinkable
   protected
 
   def backlinks(kind, website)
-    connections
-      .where(
-        direct_source_type: kind.to_s,
-        website_id: website.id
-      )
-      .collect(&:direct_source)
-      .compact
-      .select { |source| source.published? }
-      .select { |source| source.language == language }
+    backlinks_blocks(website).published.map { |block|
+      block.about if backlink_in_block?(block, kind)
+    }.compact
+  end
+
+  def backlink_in_block?(block, kind)
+    block.about.is_a?(kind) && # Correct kind
+    self.in?(block.template.children) && # Mentioning self
+    block.about.published? # About published
+  end
+
+  def backlinks_blocks(website)
+    raise NotImplementedError
   end
 end
\ No newline at end of file
diff --git a/app/models/university/organization.rb b/app/models/university/organization.rb
index e05c4178c8c8808c3bf561aff6ef86c6c544e050..3d2ed70191a43be0f59aede521971f4a02822e9b 100644
--- a/app/models/university/organization.rb
+++ b/app/models/university/organization.rb
@@ -130,6 +130,10 @@ class University::Organization < ApplicationRecord
 
   protected
 
+  def backlinks_blocks(website)
+    website.blocks.organizations
+  end
+
   def explicit_blob_ids
     [
       logo&.blob_id,
diff --git a/app/models/university/person.rb b/app/models/university/person.rb
index 930ef5a1dfd5409f5098d6fc2d20c83a86b2c873..8f7e1823e9eb277c60dde5972d576a8231dbc321 100644
--- a/app/models/university/person.rb
+++ b/app/models/university/person.rb
@@ -232,6 +232,10 @@ class University::Person < ApplicationRecord
 
   protected
 
+  def backlinks_blocks(website)
+    website.blocks.persons
+  end
+
   def explicit_blob_ids
     [picture&.blob_id]
   end