原文链接
why:为什么要给网页画重点?
如果你的网站有一些Meta Tag / Meta Data这样的标签,把网站的重点内容很清晰的展示给搜索引擎,搜索引擎会增加你的网站的排名权重,让读者更方便的搜索到你的网站。
what:优化后的效果是怎样的?
网页的head部位会动态添加title, meta name="description",meta name="keywords"
这些标识网站重点的内容,如:
<title>SEO优化 使用friendly_id和Babosa两个gem优化你的Rails网址 | 结构化写作</title>
<meta name="description" content="## 优化网址原因
网址的可读性会影响搜索引擎展示排名权重,网址有意义可读性高会提升排名,而Rails App 一般是使用资料库里的每笔资料id作为网址链接,例如 :
http://...">
<meta name="keywords" content="friendly_id,Babosa,SEO,Rails">
how:优化步骤有哪些?
安装seo_helper
gem 'seo_helper', '~>1.0.3'
然后bundle install
更改config
增加默认配置文档touch config/initializers/seo_helper.rb
config.site_name = "My Awesome Web Application"
这样你的title就变成上面设置的site_name
当然,你也可以给description之类的元素设定默认值
SeoHelper.configure do |config|
config.skip_blank = false
config.site_name = "My Awesome Web Application"
config.default_page_description = "My default description"
config.default_page_keywords = "My default keywords"
config.default_page_image = "/example.png"
end
但目测有时候default_page_image不好用
设定页面默认的重点标签
我们已经在上面设定好了default的title等元素,现在我们可以在layouts中使用它们。
在head文件中写上这样几句就可以
<%= render_page_title_tag %>
<%= render_page_description_meta_tag %>
<%= render_page_keywords_meta_tag %>
<%= render_page_image_link_tag %>
上面几句分别是设定head的title,description,keywords, icon,重开服务器:contr+c
加 rails s
再打开网页,就能检查到head文件中的title,meta已经改变。
为每个页面设定不同的重点标签
你可以在controller的action中给页面设定特别的title等,如:
def show
#...
set_page_title @article.title #设定title
set_page_description @article.description #设定description,下面以此类推
set_page_keywords @article.tags
set_page_image @article.excerpt_image_url
end
备注
如果你的icon打印不出来的话,可以把head
中<%= render_page_image_link_tag %>
换成html语句:
<link rel="shortcut icon" href="/default_image.png">