概要
GoogleがXMLサイトマップとRSSの両方を送信することを推奨しているようなので、XMLサイトマップと追加でRSSを設定するようにしました。RSSをwebマスターツールに登録するにあたって、当然のことながらRSS自体を配信できるようにします。
実装
rss配信用のcontrollerを作成するような設計にしました。そこから、商品であったりブログであったりのRSSを生成していくことを想定しています。
routes.rd
resources :rss, :only => [:index] do
member do
get "blog"
end
end
rss_controller.rd
# -*- encoding : utf-8 -*-
class RssController < ApplicationController
def blog
start_id = params[:id].to_i
@blogs = Blog.order('updated_at desc')
@blogs = @blogs.where('id >= ? AND id < ?', start_id, start_id + 500)
end
end
最大で、500件づつ区切って指定することを想定しています。blog.rss.builder
xml.instruct! :xml, :version => "1.0"
xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do
xml.channel do
xml.title 'ブログRSSテスト'
xml.link 'http://www.sample.com/blogs'
xml.description "新着ブログのお知らせ"
xml.language "ja-jp"
xml.ttl "40"
@blogs.each do |blog|
xml.item do
xml.title blog.title
xml.description blog.description if blog.description.presents?
xml.pubDate blog.updated_at.in_time_zone("Asia/Tokyo").to_s(:rfc822)
xml.guid blog_url(blog.code)
xml.link blog_url(blog.code)
end
end
end
end
実装は、というような感じです。webマスターツールへの設定
あとは、webマスターツール > サイトマップ画面 > [サイトマップの追加/テスト] ボタンをクリックして以下のようにURLを指定します。rss/1/blog.rss
rss/500/blog.rss
rss/1000/blog.rss
0 件のコメント:
コメントを投稿