diff --git a/app/assets/stylesheets/admin/design-system/layout.sass b/app/assets/stylesheets/admin/design-system/layout.sass
index 4ddf7561f22c5479fb5fb6b328f4354b8e00f070..66765752820ce5295745d0850992c93dd73fbe66 100644
--- a/app/assets/stylesheets/admin/design-system/layout.sass
+++ b/app/assets/stylesheets/admin/design-system/layout.sass
@@ -5,7 +5,7 @@ body
     padding-left: var(--bs-gutter-x)
     padding-right: var(--bs-gutter-x)
     @media (min-width: 768px)
-        --bs-gutter-x: 4rem
+        #{--bs-gutter-x}: 4rem
 
 main
     min-height: 70vh
diff --git a/app/models/communication/website/page/organization.rb b/app/models/communication/website/page/organization.rb
index f510c62c10dd05c65b283e8cb92c910377e61fa7..010ac0bbec3b4fc05ea53ba969f919a3b7eaae9f 100644
--- a/app/models/communication/website/page/organization.rb
+++ b/app/models/communication/website/page/organization.rb
@@ -4,11 +4,22 @@ class Communication::Website::Page::Organization < Communication::Website::Page
   def dependencies
     super +
     [website.config_default_languages] +
+    explicitly_connected_organizations
+  end
+
+  # https://developers.osuny.org/docs/admin/sites-web/git/dependencies/iteration-9/
+  def references
     website.connected_organizations.where(language_id: language_id)
   end
 
+  # For implicit connections, direct_source_type is "Communication::Website::Page"
+  # Whereas for explicit, it will be "Communication::Website::Page::Organization"
   def explicitly_connected_organizations
-    ids = website.connections.where(indirect_object_type: 'University::Organization', direct_source_type: 'Communication::Website::Page::Organization', direct_source_id: self.id).pluck(:indirect_object_id)
+    ids = website.connections.where(
+            indirect_object_type: 'University::Organization',
+            direct_source_type: 'Communication::Website::Page::Organization',
+            direct_source_id: self.id
+          ).pluck(:indirect_object_id)
     University::Organization.where(id: ids)
   end
 
diff --git a/app/models/communication/website/page/person.rb b/app/models/communication/website/page/person.rb
index 55fd76d311b09e0eb8c3dd2962ed5742aedbcf0c..1a984b3606778735d042e73c93d2d9504805e965 100644
--- a/app/models/communication/website/page/person.rb
+++ b/app/models/communication/website/page/person.rb
@@ -3,11 +3,22 @@ class Communication::Website::Page::Person < Communication::Website::Page
   def dependencies
     super +
     [website.config_default_languages] +
+    explicitly_connected_people
+  end
+
+  # https://developers.osuny.org/docs/admin/sites-web/git/dependencies/iteration-9/
+  def references
     website.connected_people.where(language_id: language_id)
   end
 
+  # For implicit connections, direct_source_type is "Communication::Website::Page"
+  # Whereas for explicit, it will be "Communication::Website::Page::Person"
   def explicitly_connected_people
-    ids = website.connections.where(indirect_object_type: 'University::Person', direct_source_type: 'Communication::Website::Page::Person', direct_source_id: self.id).pluck(:indirect_object_id)
+    ids = website.connections.where(
+            indirect_object_type: 'University::Person',
+            direct_source_type: 'Communication::Website::Page::Person',
+            direct_source_id: self.id
+          ).pluck(:indirect_object_id)
     University::Person.where(id: ids)
   end
 
diff --git a/app/models/communication/website/page/research_publication.rb b/app/models/communication/website/page/research_publication.rb
index 87ee86a6c6ecae761344b2d7b2f3bdcef1b11feb..b59cbb11bafa46763e9f7b385f1f1bff9e65c8f0 100644
--- a/app/models/communication/website/page/research_publication.rb
+++ b/app/models/communication/website/page/research_publication.rb
@@ -14,7 +14,11 @@ class Communication::Website::Page::ResearchPublication < Communication::Website
 
   def dependencies
     super +
-    [website.config_default_languages] +
+    [website.config_default_languages]
+  end
+
+  # https://developers.osuny.org/docs/admin/sites-web/git/dependencies/iteration-9/
+  def references
     website.connected_publications
   end
 
diff --git a/app/models/communication/website/with_connected_objects.rb b/app/models/communication/website/with_connected_objects.rb
index 15cbd6ddda42cd4c467885306b807ea975c3e7f8..c756cd9e3b686b73db359c9c1ad4778907c8ec2f 100644
--- a/app/models/communication/website/with_connected_objects.rb
+++ b/app/models/communication/website/with_connected_objects.rb
@@ -2,6 +2,11 @@ module Communication::Website::WithConnectedObjects
   extend ActiveSupport::Concern
 
   included do
+    CONNECTIONS_BLACKLIST = [
+      # Les blobs ne sont jamais modifiés, donc on n'a aucun besoin de savoir à quoi ils sont connectés
+      'ActiveStorage::Blob'
+    ].freeze
+
     has_many :connections
 
     after_save :connect_about, if: :saved_change_to_about_id?
@@ -62,8 +67,13 @@ module Communication::Website::WithConnectedObjects
   end
 
   def connect(indirect_object, direct_source, direct_source_type: nil)
-    connect_object indirect_object, direct_source, direct_source_type: direct_source_type
-    return unless indirect_object.respond_to?(:recursive_dependencies)
+    # https://developers.osuny.org/docs/admin/sites-web/git/dependencies/iteration-9/
+    connect_object(
+      indirect_object,
+      direct_source,
+      direct_source_type: direct_source_type
+    ) if should_connect?(indirect_object, direct_source)
+    return unless should_connect_recursive_dependencies?(indirect_object)
     indirect_object.recursive_dependencies.each do |dependency|
       connect_object dependency, direct_source
     end
@@ -163,7 +173,18 @@ module Communication::Website::WithConnectedObjects
     # On ne connecte pas les objets directs (en principe ça n'arrive pas)
     !indirect_object.try(:is_direct_object?) &&
     # On ne connecte pas des objets qui ne sont pas issus de modèles ActiveRecord (comme les composants des blocs)
-    indirect_object.is_a?(ActiveRecord::Base)
+    indirect_object.is_a?(ActiveRecord::Base) &&
+    # On ne connecte pas certains types d'objets, listés dans une black list
+    !indirect_object.class.to_s.in?(CONNECTIONS_BLACKLIST)
+  end
+
+  def should_connect_recursive_dependencies?(indirect_object)
+    # On ne suit pas les objets inexistants
+    indirect_object.present? &&
+    # On ne suit pas les objets qui n'ont pas de dépendances
+    indirect_object.respond_to?(:recursive_dependencies) &&
+    # On ne suit pas les objets directs
+    !indirect_object.try(:is_direct_object?)
   end
 
   # On passe par les connexions pour éviter d'analyser des objets directs qui n'ont pas d'objets indirects du tout