目的
在之前我有筆記一篇透過 friendly_id 讓 url 不顯示 id,除了美化 url 外,我們也可以透過設定 meta data 讓網站達到 SEO 的目的!
前言
meta tag 及 data 的設定很重要,通常網站要能快速得被找到,或是透過分享時顯示重要(正確)的資訊,我們都得在這個部分下點功夫,本篇筆記一下在專案中所學到的相關知識和方法。
筆記
1. 什麼是 Meta Tags 及 Meta Data
Meta Data,在全球資訊網上,是指讓機器看得懂的、描述資訊內容的所有相關資訊。
- Title Tag:該頁標題,英文長度最好是 70 字元內,中文大約 40 字內,關鍵字盡量往前放,而每一頁的
Title Tag
不要重覆為佳。如:XXX美食部落格 :: 痞○幫
、XXX | Facebook
、徵傳單小弟 | oPartTime 讓打工變得更美好!
等。 - Description Tag:該頁的敘述,包含標點符號英文約 150 字內,中文 12 字內為佳,此
Description Tag
會出現在 Google 搜尋結果中,所以關鍵字的使用很重要,盡量往前擺。 - Canonical Url:告訴搜尋引擎關於這個頁面的標準網址。
- Facebook OG:此標籤中的資訊是專門給 Facebook 的,可透過設定 OG (Open Graph) 的內容敘述,調整分享時的縮圖、標題、敘述等。
- Twitter Cards:此標籤中的資訊則是專門給 Twitter 的,透過設定 Cards 的內容敘述,調整分享的資訊顯示。
2. Gem
在 rails 中,除了直接 code html 外,我們可以透過 meta-tags 這個 gem 來對 Meta Data 作設定。
then, bundle
it.
3. 設定 Meta Data
簡單的設定來說,可以透過 set_meta_tags
作設定,如下:
在 Facebook OG 的簡單設定如下:
由於目前沒有用到 Twitter Cards 所以也不方便多加敘述,詳情請至 Twitter dev 欣賞 XDD
4. Rails 設定 meta tags 小技巧
如果每一頁都要手刻 meta tag 的話,就違背了 DRY 的原則了!為了符合此原則,我們可以透過定義一個設定動作的 Action,而後,在需要設定 meta data 的 Controller 中作 before_action
即可,好像在繞口令,詳情見下文。
(1) 先在 Application Controller 中定義一個 Action:
(2) 接著,在 layout 的 head 中使用 display_meta_tags
設定每頁的 meta data:
(3) 現在每一頁都會有 meta data 了,但內容都是預設的資訊,我們可以在 Controller 中作設定:
以上,就簡單的 SEO meta data 設定就完成了。
That’s it, DONE!
【參考資料】
- 給 Rails Developer 的基本 SEO:http://gogojimmy.net/2013/09/26/basic-seo-for-rails-developer/
- Easy SEO meta data with meta-tags:http://cookieshq.co.uk/posts/easy-seo-metatags-with-rails-4/
- meta-tags:https://github.com/kpumuk/meta-tags
- Open Graph:http://ogp.me/
- 讓 Facebook OG 取得正確縮圖:網址太長,請點這邊
- reverse_merge API:http://apidock.com/rails/Hash/reverse_merge