diff --git a/app/controllers/public/api/v1/portals/articles_controller.rb b/app/controllers/public/api/v1/portals/articles_controller.rb
index bd490f240..22ffbbf7a 100644
--- a/app/controllers/public/api/v1/portals/articles_controller.rb
+++ b/app/controllers/public/api/v1/portals/articles_controller.rb
@@ -16,8 +16,7 @@ class Public::Api::V1::Portals::ArticlesController < PublicController
 
   def set_article
     @article = @category.articles.find(params[:id])
-    @article.views = @article.views ? @article.views + 1 : 1
-    @article.save
+    @article.increment_view_count
     @parsed_content = render_article_content(@article.content)
   end
 
diff --git a/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleItem.vue b/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleItem.vue
index 759389da6..00dba9eb8 100644
--- a/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleItem.vue
+++ b/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleItem.vue
@@ -29,8 +29,8 @@
       
     
     
-      
-        {{ views || 0 }}
+      
+        {{ readableViewCount }} | @@ -95,6 +95,15 @@ export default {
     lastUpdatedAt() {
       return this.dynamicTime(this.updatedAt);
     },
+    formattedViewCount() {
+      return Number(this.views || 0).toLocaleString('en');
+    },
+    readableViewCount() {
+      return new Intl.NumberFormat('en-US', {
+        notation: 'compact',
+        compactDisplay: 'short',
+      }).format(this.views || 0);
+    },
     articleAuthorName() {
       return this.author.name;
     },
diff --git a/app/models/article.rb b/app/models/article.rb
index 77b86b2ca..842bf2a6f 100644
--- a/app/models/article.rb
+++ b/app/models/article.rb
@@ -106,6 +106,12 @@ class Article < ApplicationRecord
     update(status: :draft)
   end
 
+  def increment_view_count
+    # rubocop:disable Rails/SkipsModelValidations
+    update_column(:views, views? ? views + 1 : 1)
+    # rubocop:enable Rails/SkipsModelValidations
+  end
+
   private
 
   def ensure_account_id
diff --git a/spec/controllers/public/api/v1/portals/articles_controller_spec.rb b/spec/controllers/public/api/v1/portals/articles_controller_spec.rb
index 53c455c1b..0f074ea29 100644
--- a/spec/controllers/public/api/v1/portals/articles_controller_spec.rb
+++ b/spec/controllers/public/api/v1/portals/articles_controller_spec.rb
@@ -41,8 +41,8 @@ RSpec.describe 'Public Articles API', type: :request do
   describe 'GET /public/api/v1/portals/:slug/articles/:id' do
     it 'Fetch article with the id' do
       get "/hc/#{portal.slug}/#{category.locale}/#{category.slug}/#{article.id}"
-
       expect(response).to have_http_status(:success)
+      expect(article.reload.views).to eq 1
     end
   end
 end
diff --git a/spec/factories/articles.rb b/spec/factories/articles.rb
index ec9c4cd2d..e68ed8f4b 100644
--- a/spec/factories/articles.rb
+++ b/spec/factories/articles.rb
@@ -7,6 +7,6 @@ FactoryBot.define do
     content { 'MyText' }
     description { 'MyDescrption' }
     status { 1 }
-    views { 1 }
+    views { 0 }
   end
 end |