diff --git a/app/controllers/post_readers_controller.rb b/app/controllers/post_readers_controller.rb
index fdba0605a2a..2a7fc343882 100644
--- a/app/controllers/post_readers_controller.rb
+++ b/app/controllers/post_readers_controller.rb
@@ -8,6 +8,7 @@ class PostReadersController < ApplicationController
     ensure_can_see_readers!(post)
 
     readers = User
+      .real
       .where(staged: false)
       .where.not(id: post.user_id)
       .joins(:topic_users)
diff --git a/spec/requests/post_readers_controller_spec.rb b/spec/requests/post_readers_controller_spec.rb
index adb335e577e..223d0f95e0b 100644
--- a/spec/requests/post_readers_controller_spec.rb
+++ b/spec/requests/post_readers_controller_spec.rb
@@ -88,6 +88,15 @@ describe PostReadersController do
 
         expect(readers).to be_empty
       end
+
+      it "doesn't include bots" do
+        TopicUser.create!(user: Discourse.system_user, topic: @group_message, last_read_post_number: 4)
+
+        get '/post_readers.json', params: { id: @post.id }
+        readers = JSON.parse(response.body)['post_readers']
+
+        expect(readers).to be_empty
+      end
     end
 
     def assert_reader_is_correctly_serialized(reader_data, reader, post)