SEO优化-用seo_helper给你的Rails网页画重点

收藏文章 点赞鼓励

why:为什么要给网页画重点?

如果你的网站有一些Meta Tag / Meta Data这样的标签,把网站的重点内容很清晰的展示给搜索引擎,搜索引擎会增加你的网站的排名权重,让读者更方便的搜索到你的网站。

what:优化后的效果是怎样的?

网页的head部位会动态添加title, meta name="description",meta name="keywords"这些标识网站重点的内容,如:

1
2
3
4
5
6
7
<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

Gemfile
1
gem 'seo_helper', '~>1.0.3'

然后bundle install

更改config

增加默认配置文档touch config/initializers/seo_helper.rb

config/initializers/seo_helper.rb
1
config.site_name = "My Awesome Web Application"

这样你的title就变成上面设置的site_name

当然,你也可以给description之类的元素设定默认值

config/initializers/seo_helper.rb
1
2
3
4
5
6
7
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文件中写上这样几句就可以

app/views/layouts/application.html.erb
1
2
3
4
<%= 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+crails s再打开网页,就能检查到head文件中的title,meta已经改变。

为每个页面设定不同的重点标签

你可以在controller的action中给页面设定特别的title等,如:

app/controllers/articles_controller.rb
1
2
3
4
5
6
7
8
9
10
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语句:

app/views/layouts/application.html.erb
1
<link rel="shortcut icon" href="/default_image.png">

参考文章

评论区