+1

Tạo ra các tệp Sitemap XML trong Rails với Gem sitemap_generator

I. Giới thiệu:

Như chúng ta đã biết sơ đồ trang web (Sitemaps) là phương tiện để quản trị viên của website đó thông báo cho các công cụ tìm kiếm về các nội dung có sẵn trên website nhằm mục đích giúp công cụ tìm kiếm thu thập thông tin.

Còn XML Sitemap là một bản đồ của website, là một đường dẫn trên trang web của bạn có đuôi .xml. Khi người dùng nhấn vào đường dẫn này sẽ thấy được toàn bộ các trang có thể truy cập trên trang web của bạn. Việc tạo ra XML Sitemap khai báo cho công cụ tìm kiếm ( ví dụ Google) về các trang tồn tại trong trang web của bạn, mức độ bạn cập nhật bài viết (changefreq) như thế nào, mức độ quan trọng (priority) của các bài viết trên trang.

Tạo ra sitemap không có nghĩa là gia tăng thứ hạng, nhưng nó giúp cho các Search Engines hiểu rõ về website của bạn hơn, từ đó xếp hạng từ khóa tốt cho đối với trang web của bạn.

Đối với thao tác trên file này thì khá đơn giản xử lý có thể thực hiện thủ công. Nhưng những trường hợp làm việc với những website lớn hơn có cấu trúc phức tạp, dữ liệu đa dạng. Việc thực hiện thủ công bằng tay sẽ tốn rất nhiều thời gian và gây ra nhầm lẫn . Vì vậy Gem sitemap_generators đã sinh ra và giải quyết vấn đề đó.Gem này tự động gererate file site map trong rails dưới dạng file XML. Cùng tìm hiểu nhé!🙌

Mỗi website đều nên có XML Sitemap

Mỗi website nên có XML Sitemap vì có nhiều lợi ích quan trọng:💬

  1. Thuận tiện cho các công cụ tìm kiếm: XML Sitemap giúp các công cụ tìm kiếm như Google, Bing, và Yahoo hiểu rõ cấu trúc và nội dung của trang web của bạn. Bằng cách cung cấp một Sitemap, bạn tạo điều kiện thuận lợi cho các công cụ tìm kiếm tìm thấy và hiểu rõ các trang của bạn, đảm bảo rằng trang web của bạn được lập chỉ mục và xuất hiện trong kết quả tìm kiếm.

  2. Cải thiện SEO: XML Sitemap giúp tối ưu hóa công việc SEO cho trang web của bạn. Bằng cách cung cấp thông tin chi tiết về các trang trong Sitemap, bạn có thể chỉ định ưu tiên, tần suất thay đổi, và các thông tin khác để giúp công cụ tìm kiếm hiểu rõ hơn về trang web của bạn. Điều này có thể cải thiện khả năng xuất hiện và xếp hạng của trang web trong kết quả tìm kiếm.

  3. Cập nhật nhanh chóng: Khi bạn thêm hoặc thay đổi các trang trong trang web của mình, việc cập nhật Sitemap giúp công cụ tìm kiếm phát hiện những thay đổi này nhanh chóng. Thay vì chờ đợi công cụ tìm kiếm khám phá lại toàn bộ trang web, Sitemap cho phép bạn thông báo những thay đổi mới nhất và đẩy nhanh quá trình cập nhật.

  4. Định vị trang web: XML Sitemap cho phép bạn chỉ định những trang quan trọng hoặc cần ưu tiên trong trang web của bạn. Điều này giúp công cụ tìm kiếm hiểu được cấu trúc và mức độ quan trọng của các trang trong trang web của bạn. Điều này có thể giúp tăng khả năng xuất hiện và xếp hạng của các trang quan trọng hơn trong kết quả tìm kiếm.

  5. Hỗ trợ định hướng và trải nghiệm người dùng: XML Sitemap không chỉ hữu ích cho công cụ tìm kiếm mà còn hỗ trợ định hướng và trải nghiệm người dùng. Bằng cách cung cấp một cái nhìn tổng quan về cấu trúc trang web, Sitemap giúp người dùng dễ dàng tìm kiếm và truy cập vào các trang trong trang web của bạn.

Cách tạo Sitemap trong Ruby on Rails với sitemap_generator:

Dưới đây là các bước cơ bản để tạo Sitemap trong Ruby on Rails sử dụng gem sitemap_generator:👇️

Thêm gem sitemap_generator vào Gemfile của ứng dụng và tìm hiểu thêm tại đây

gem 'sitemap_generator'

Cài đặt gem bằng cách chạy lệnh bundle và lệnh này sẽ tạo ra 1 file trong thư mục config/sitemap.rb để config sitemap.

bundle exec rake sitemap:install


Những mục config chính, ta sẽ đặt nó trong block

SitemapGenerator::Sitemap.create {}

Ví dụ

# config/sitemap.rb
SitemapGenerator::Sitemap.default_host = 'https://example.com'
SitemapGenerator::Sitemap.create do
  # Thêm các đường dẫn của trang trong ứng dụng của bạn vào đây
  add '/home', priority: 0.9, changefreq: 'daily'
  add '/about', priority: 0.8, changefreq: 'weekly'
  add '/products', priority: 0.7, changefreq: 'weekly'
  
  # Ví dụ thêm các đường dẫn từ cơ sở dữ liệu
  Product.find_each do |product|
    add product_path(product), lastmod: product.updated_at, priority: 0.5, changefreq: 'monthly'
  end
end

Trong đó, method** add** cung cấp cho chúng ta thêm các options:

changefreq: Tần suất thay đổi của path này là - always, hourly, daily, weekly, monthly, yearly, never

lastmod: Thời gian của lần thay đổi cuối cùng, mặc định là Time.now. (hoặc tự define lại)

host: Host tương ứng với url , mặc định là default_host

priority: Độ ưu tiên của URL so với những cái còn lại. Mặc định là 0.5, giá trị chạy từ 0 đến 1.

expires: Thời gian hết hạn.

Kiểm tra Sitemap:

Sử dụng lệnh:

rails sitemap:refresh
rails sitemap:refresh:no_ping

Giải thích qua về lệnh phía dưới nhé! Lệnh rails sitemap:refresh:noping có ý nghĩa là cập nhật lại Sitemap trong ứng dụng Rails mà không gửi thông báo ping (không thông báo cho các công cụ tìm kiếm về việc cập nhật Sitemap).

Khi bạn sử dụng Sitemap Generator trong Rails và chạy lệnh rake sitemap:refresh, mặc định công cụ sẽ tự động gửi thông báo ping tới các công cụ tìm kiếm như Google, Bing, và Yahoo để thông báo về việc cập nhật Sitemap mới.

Tuy nhiên, khi bạn sử dụng rails sitemap:refresh:noping, lệnh này sẽ cập nhật lại Sitemap mà không gửi thông báo ping. Điều này có nghĩa là Sitemap mới sẽ được tạo và lưu trữ trong thư mục public/, nhưng không có thông báo đi tới các công cụ tìm kiếm.

Lựa chọn sử dụng rails sitemap:refresh:noping có thể hữu ích trong một số trường hợp, ví dụ như khi bạn chỉ muốn cập nhật Sitemap mà không muốn gửi thông báo cho các công cụ tìm kiếm ngay lập tức. Bạn có thể chọn gửi thông báo ping sau đó bằng cách chạy lệnh rails sitemap:refresh.

Tiếp theo,

+ sitemap.xml.gz                                          32 links /  533 Bytes
Sitemap stats: 32 links / 1 sitemaps / 0m00s

Pinging with URL 'http://www.example.com/sitemap.xml.gz':
  Successful ping of Google
  Successful ping of Bing

Thông báo tương tự như trên cho thấy quá trình cập nhật Sitemap đã hoàn thành và đã gửi thông báo ping tới Google và Bing để thông báo về việc cập nhật Sitemap mới.

sitemap.xml.gz là tên file Sitemap đã được tạo và lưu trữ trong thư mục public/.

32 links cho biết Sitemap mới chứa tổng cộng 32 đường dẫn.

533 Bytes là kích thước của file Sitemap.

1 sitemaps cho biết Sitemap mới chỉ có một file Sitemap duy nhất.

0m00s là thời gian mất để tạo và cập nhật Sitemap.

Sau khi hoàn thành , Sitemap Generator sẽ tự động tạo ra các file Sitemap và lưu trữ chúng trong thư mục public/ của ứng dụng Rails. Ví dụ, nếu bạn có file sitemap.rb trong thư mục config/ của ứng dụng Rails, và bạn chạy lệnh rake sitemap:refresh, Sitemap Generator sẽ tạo ra một hoặc nhiều file Sitemap trong thư mục public/.

Các file Sitemap thường có định dạng XML và có thể nén bằng gzip để giảm kích thước. Ví dụ, file Sitemap có thể có tên là sitemap.xml hoặc sitemap.xml.gz.

Sau khi quá trình tạo Sitemap hoàn tất, bạn có thể truy cập vào các file Sitemap thông qua đường dẫn công khai của ứng dụng Rails. Ví dụ, nếu bạn có domain là example.com, bạn có thể truy cập vào Sitemap thông qua URL như http://www.example.com/sitemap.xml hoặc http://www.example.com/sitemap.xml.gz.

Tóm lại, các file Sitemap được tạo ra thông qua Sitemap Generator trong ứng dụng Rails và được lưu trữ trong thư mục public/ của ứng dụng.

Ta tiến hành giải nén và format lại file XML để xem được nội dung cập nhật được sinh ra.

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


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí