- vừa được xem lúc

Hiển thị Rating (Star) trên Google cho website Rails

0 0 45

Người đăng: Nguyen Huu Hung

Theo Viblo Asia

Nếu bạn đã từng search google từ khóa nào đó và gặp những kết quả tìm kiếm ở những trang web có hiển thị các đánh giá (Rating) như bên dưới thì chắc chắn bạn sẽ thắc mắc bằng cách nào để làm được điều đó ?

Có phải rằng website của bạn chỉ cần có 1 chức năng rating là nó sẽ hiển thị vậy hay không ?

Trong khái niệm SEO, nó gọi là cấu trúc schema.

Trên mặt lý thuyết, việc được hiển thị rating như thế này sẽ gây chú ý và giúp người tìm kiếm quyết định hành động click vào website của bạn. Cũng như nó sẽ chiếm 1 diện tích lớn hơn các nội dung của website khác.

Hôm nay mình sẽ hướng dẫn các bạn cách để có thể hiển thị Rating (Star) giống vậy trên Google cho website Rails của bạn.

Làm sao để hiển thị Rating trên Google và các Search engines

Đầu tiên. Các bạn sẽ cần xây dựng 1 chức năng đánh giá cho nội dung của các bạn. Sau đó kết hợp với cấu trúc schema AggregateRating để hiển thị lên Google nói riêng và các công cụ tìm kiếm khác nói chung.

Đây sẽ là chức năng để quyết định nội dung đó có tổng trung bình bao nhiêu sao khi hiển thị trên Google. Thật ra các bạn cũng có thể fetch con số này để hiển thị. Tuy nhiên, mình khuyên khích các bạn nên xây dựng chức năng đó để mang tính công bằng, hữu ích hơn. Tránh bị Google phát hiện sẽ đánh giá là spam schema.

Để nhanh chóng thì các bạn có thể sử dụng gem ratyrate

Setup gem ratyrate

Thêm vào Gemfile:

gem "ratyrate"

bundle install

Generate các files

rails g ratyrate user => Với user và tên model thực hiện việc rating

Chạy migrations:

rake db:migrate

Thêm thư viện js của gem vào ứng dụng

Cho vào application.js

//= require jquery.raty
//= require ratyrate

Bây giờ giả sử User sẽ đánh giá Post. Chúng ta sẽ cần thêm ratyrate_rateable vào model Post. kèm theo đó là giá trị các hạng mục muốn đánh giá cho Post đó

VD: Mình muốn đánh giá Post về 2 mục. 1 là chất lượng nội dung, 2 là chất lượng hỗ trợ từ tác giả của Post.

class Post < ActiveRecord::Base ratyrate_rateable "content_quality", "quality_author_support"
end

Ở Model User sẽ là đối tượng thực hiện đánh giá. Mình cần thêm ratyrate_rater vào

class User < ActiveRecord::Base ratyrate_rater
end

Trên view mình chỉ cần gọi helper rating_for do gem này hỗ trợ.

<div class="box-rating"> <% if current_user %> Content Quality: <%= rating_for @post, "content_quality" %> Quality author's support: <%= rating_for @post, "quality_author_support" %> <% end %>
</div>

Vậy là nó đã có thể hiển thị 1 Box rating có dạng thế này

Vậy là bây giờ hệ thống đã có một chức năng đánh giá Post xịn sò.

Bước tiếp theo làm thế nào để hiển thị số đánh giá trung bình lên Google như nội dung và hình ảnh phía đầu bài viết ?

Thêm cấu trúc schema AggregateRating

Đây là cấu trúc schema chuẩn dùng để hiển thị Rating cho website của bạn trên các công cụ tìm kiếm. Ngoài AggregateRating thì bạn có thể tham khảo thêm nhiều Schema khác tại đây

Cách 1. Dùng attribute và thẻ meta

<div class="rating"> <div vocab="http://schema.org/" typeof="Product"> <div property="name" ><%= @post.title %></div> <img property="image" src="<%= @post.image_url %>" alt="<%= @post.title %> /> <div property="aggregateRating" typeof="AggregateRating"> <span property="ratingValue"><%= @post.average(:content_quality).avg %></span> <span property="ratingCount"><%= @post.rates(:content_quality).size %></span> votes <meta property="bestRating" content="5"/> <meta property="worstRating" content="1"/> </div> </div> </div>
</div>

Cách 2. Chèn ở dạng JSON

<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "<%= @post.average(:content_quality).avg %>", "reviewCount": "<%= @post.rates(:content_quality).size %>" }, "description": "<%= @post.description %>", "name": "<%= @post.title %>", "image": "<%= @post.image_url %>" }
</script>

Như vậy là đã hoàn tất quá trình, các bạn có thể đợi 1 thời gian để Google cập nhật cho website của bạn. Tất nhiên sẽ còn tùy thuộc vào 1 số yếu tố nữa chứ không phải bất kỳ website nào khi chèn mã schema thì Google đều hiển thị Star trên cả.!

Chúc các bạn thành công !

Bình luận

Bài viết tương tự

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 3: Docker-compose)

1. Mở đầu. . .

0 0 127

- vừa được xem lúc

Tích hợp VNPAY vào Rails

Xin chào 500 ae năm mới nhé. Tiếp nối câu chuyện về Thanh toán online mà mình có chia sẽ ở 2 bài trước, mọi người chưa đọc thì có thể vào xem ở đây nhé.

1 1 95

- vừa được xem lúc

Tìm hiểu Adapter Pattern trong Rails

. Nếu là một web developer chắc hẳn chúng ta đã không ít lần đọc qua về các Design patterns hay cách áp dụng chúng để làm cho code trở nên hướng đối tượng hơn, dễ đọc, dễ hiểu, dễ maintain, dễ mở rộng, … Các design patterns được áp dụng khá nhiều trong các Rails projects như Service Object, Decorato

0 0 48

- vừa được xem lúc

Sử dụng Searchkick để tìm kiếm thông minh trên Rails và Elasticsearch

Bạn đã bao giờ tự hỏi, ứng dụng web của mình có thể mở rộng quy mô bằng cách học được các từ khóa mà người dùng tìm kiếm? Có giải pháp nào cung cấp công cụ tìm kiếm tự động nhanh chóng với chỉ 1 từ khóa bất kì? Thật may khi có Searchkick và Elasticsearch là các công cụ hỗ trợ công việc tìm kiếm trở

0 0 103

- vừa được xem lúc

Những sai lầm bạn có thể mắc phải khi code Rails

. Chào các bạn, chào các bạn. Đừng vội đóng tab nha.

0 0 47

- vừa được xem lúc

Một số lưu ý cải thiện performance khi làm việc với Rails

Khi làm việc với ruby on rails chắc hẳn chúng ta sẽ làm việc với active record rất nhiều. Tuy nhiên có nhiều điều có thể ta vẫn chưa thực sự hiểu, ví dụ như ActiveRecord execute SQL query như thế nào? Và cũng còn khá nhiều lập trình viên khác cũng không để ý tới điều này.

0 0 111