diff --git a/app/models/communication/website/imported/page.rb b/app/models/communication/website/imported/page.rb
index bfe5a63224e39ab7f9b5a344e32445e0c9a348ba..ccdaa3d6c424273669b50a6ff4f41a3f1ff8e1b8 100644
--- a/app/models/communication/website/imported/page.rb
+++ b/app/models/communication/website/imported/page.rb
@@ -44,13 +44,13 @@ class Communication::Website::Imported::Page < ApplicationRecord
   belongs_to :page,
              class_name: 'Communication::Website::Page',
              optional: true
-  alias_attribute :generated_object, :category
+  alias_attribute :generated_object, :page
   belongs_to :featured_medium,
              class_name: 'Communication::Website::Imported::Medium',
              optional: true
 
   before_validation :sync
-  after_save :sync_attachments
+  after_commit :sync_attachments, on: [:create, :update]
 
   default_scope { order(:path) }
 
@@ -84,7 +84,7 @@ class Communication::Website::Imported::Page < ApplicationRecord
       # Continue only if there are remote changes
       # Don't touch if there are local changes (page.updated_at > updated_at)
       # Don't touch if there are no remote changes (page.updated_at == updated_at)
-      # return unless updated_at > page.updated_at
+      return unless updated_at > page.updated_at
     end
     puts "Update page #{page.id}"
     sanitized_title = Wordpress.clean_string self.title.to_s
@@ -97,6 +97,7 @@ class Communication::Website::Imported::Page < ApplicationRecord
   end
 
   def sync_attachments
+    return unless updated_at > page.updated_at
     if featured_medium.present?
       unless featured_medium.file.attached? && featured_medium.file.blob.persisted?
         featured_medium.load_remote_file!
diff --git a/app/models/communication/website/imported/post.rb b/app/models/communication/website/imported/post.rb
index 47026e59a19708a171227756f37fe2480927e2e5..9920f80b6d6509e11e8c30bf4a87226daa57b027 100644
--- a/app/models/communication/website/imported/post.rb
+++ b/app/models/communication/website/imported/post.rb
@@ -48,7 +48,7 @@ class Communication::Website::Imported::Post < ApplicationRecord
              optional: true
 
   before_validation :sync
-  after_save :sync_attachments
+  after_commit :sync_attachments, on: [:create, :update]
 
   default_scope { order(path: :desc) }
 
@@ -82,7 +82,7 @@ class Communication::Website::Imported::Post < ApplicationRecord
       # Continue only if there are remote changes
       # Don't touch if there are local changes (post.updated_at > updated_at)
       # Don't touch if there are no remote changes (post.updated_at == updated_at)
-      # return unless updated_at > post.updated_at
+      return unless updated_at > post.updated_at
     end
     puts "Update post #{post.id}"
     sanitized_title = Wordpress.clean_string self.title.to_s
@@ -98,6 +98,7 @@ class Communication::Website::Imported::Post < ApplicationRecord
   end
 
   def sync_attachments
+    return unless updated_at > post.updated_at
     if featured_medium.present?
       unless featured_medium.file.attached? && featured_medium.file.blob.persisted?
         featured_medium.load_remote_file!