at Happy designer meetup 2014.02.27
I am BlueWeb engineer @ YouMeb
View Slide
⽤用nginx1. SEO基礎本⽇日⼤大綱 2. How to make SPA app SEO friendly3. 如何⾃自動化部屬SEO內容?4. 溫馨⼩小提醒
SEO 基礎
Web Crawler
講到蜘蛛...我就想到....三級的天擎坦克被它摧毀了T.T蜘蛛好像很厲害?
! SEO crawler 並⾮非很聰明
這是title Hello World! {{ title }} <br/> <br/> <br/> //do some ajax awesome thing.. <br/> <br/> <br/> 靜態網⾴頁(無ajax) 靜態網⾴頁(有ajax)
So…要如何告訴這些 Crawler 你的網站是⽀支持AJAX呢?
www.example.com/ajax.html#mystate網址有兩種!www.example.com/mystate無hash:有hash:如何告訴這些 Crawler 你的網站是⽀支持AJAX呢?www.example.com/#/mystate
www.example.com/ajax.html#mystate從網址下⼿手(有hash)1.www.example.com/ajax.html#!mystate
www.example.com/ajax.html#!mystate當 Crawler 收到要爬這段網址內容時www.example.com/ajax.html?_escaped_fragment_=mystate會對你的server發⼊入下列request(以google crawler 為例)
www.example.com/ajax.html?_escaped_fragment_=mystate你的server接受到這樣的訊息時回傳 crawler 對應的 SEO Data page/內容(以google crawler 為例)
從網址下⼿手(無hash)2.請在加⼊入:www.example.com?_escaped_fragment_=mystate(以google crawler 為例)
AngularJS解法3.有hash:無hash:
! ⽩白話理解 crawler 對server請求流程
google/facebookcrawleryour app serverwww.example.com/mypage#!home會發出⼀一段特殊的請求網址回傳 SEO data rendering page
Make SPA app SEO friendly
多數的語⾔言 framework 框架 SPA SEO 解決⽅方案
<%= title %> Hello World! 當餵給crawler前,SEO Data 被先在server端印好輸出Nodejs EJS hello Hello World! Nodejs 印出這些變數crawlerres.render({title:’hello’});
每個使⽤用者進來都會先經過SEO data Output缺點 浪費資源
加上...如果前端的⾴頁⾯面只是靜態檔案怎辦?(像是yeoman產⽣生的app)
還是要有⼀一個東⻄西去處理餵給crawler SEO data2. 架⼀一個nodejs server 處理(網址複雜)1. 直接nginx指向(網址簡單)3. nodejs+nginx
直接nginx處理但網址複雜很⿇麻煩
⼀一台 nodejs server 直接來
nginx + nodejsnginx 過濾來⾃自crawler 還是 user ?nodeJS 處理rending page
nginx靜態⾴頁⾯面路徑SEOserver⼀一般使⽤用者crawlernodejs server 處理 SEO data render
Nginx設定你的處理SEO data render Nodejs server位置因為各家的crawler發出請求格式不⼀一 最好⽅方式是⽤用user agent在經過nginx時過濾
live demo
如何⾃自動化部屬SEO內容
⽤用nginxfacebook . google friendlySEO data內容 image, title,url, description,og系列
! 那網站內容呢?
html-snapshots1. use phantomJS2. ⽀支援輸出 sitemap.xml, robots.txt, arbitrary input3. 有grunt版本
$ npm install grunt-html-snapshot
網站圖⽚片截圖:https://github.com/clkao/prerender-opengraph-image
溫馨⼩小提醒
⽤用nginx知此知彼https://support.google.com/webmasters/answer/164734?hl=zh-Hant了解 SEO也要了解 search engine policy
End.