diff --git a/app/models/user.rb b/app/models/user.rb
index bff29252386..c44a6fd3a5d 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -952,6 +952,8 @@ class User < ActiveRecord::Base
   end
 
   def set_default_categories_preferences
+    return if self.staged?
+
     values = []
 
     %w{watching tracking muted}.each do |s|
diff --git a/app/models/user_option.rb b/app/models/user_option.rb
index 6f0a8ecbdc6..7a812e4033f 100644
--- a/app/models/user_option.rb
+++ b/app/models/user_option.rb
@@ -42,7 +42,6 @@ class UserOption < ActiveRecord::Base
 
     self.like_notification_frequency = SiteSetting.default_other_like_notification_frequency
 
-
     if SiteSetting.default_email_digest_frequency.to_i <= 0
       self.email_digests = false
     else
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 4fbd120a68a..e08759b6d97 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1235,6 +1235,13 @@ describe User do
       expect(CategoryUser.lookup(user, :tracking).pluck(:category_id)).to eq([2])
       expect(CategoryUser.lookup(user, :muted).pluck(:category_id)).to eq([3])
     end
+
+    it "does not set category preferences for staged users" do
+      user = Fabricate(:user, staged: true)
+      expect(CategoryUser.lookup(user, :watching).pluck(:category_id)).to eq([])
+      expect(CategoryUser.lookup(user, :tracking).pluck(:category_id)).to eq([])
+      expect(CategoryUser.lookup(user, :muted).pluck(:category_id)).to eq([])
+    end
   end
 
   context UserOption do