最近剛做了一個vue的多頁面項目,但是在網路上看到很多人說前後端分離不利於seo,原理是為什麼呢?難道前端寫好靜態頁面丟給後端進行服務端渲染這樣有利於seo優化嗎?還有另外我想問邏輯操作是放在前端處理還是後端處理?例如機票排序,是前端對資料進行排序處理,然後再用js渲染頁面,還是後端進行排序處理?
认证高级PHP讲师
seo 本質是一個伺服器向另一個伺服器發起請求,解析請求內容。但一般來說搜尋引擎是不回去執行請求到的js的。也就是說,如果一個單頁應用,html在伺服器端還沒有渲染部分數據數據,在瀏覽器才渲染出數據,而搜尋引擎請求到的html是沒有渲染數據的。 這樣就很不利於內容被搜尋引擎搜尋到。 所以服務端渲染就是盡量在伺服器傳送到瀏覽器前 頁面上就是有資料的。
第二個問題,一般的資料邏輯操作是放在後端的。排序這個如果只是幾條數據,前後端排序開起來是一樣的,如果是有1000條數據,前端要排序就要都請求過來。這樣顯然是不合理的。
因為搜尋引擎不太喜歡執行 JavaScript,所以後端渲染比較好。例如你可以試試,好像 Google 完全搜不到知乎專欄裡的文章了。 Internet Archive 也無法應用在知乎專欄上。
我的個人意見是:以內容為主的網站,核心內容盡量後端渲染,以利於非瀏覽器使用。以軟體為主的網站,例如各種 SAP,則不用在意這些。在意了也沒用。
搜尋引擎的基礎爬蟲的原理就是抓取你的url,然後取得你的html原始碼並解析。 而你的頁面通常用了vue等js的數據綁定機制來展示頁面數據,爬蟲獲取到的html是你的模型頁面而不是最終數據的渲染頁面,所以說用js來渲染數據對seo並不友好。
ps:另外js並不是所有的引擎都爬不到,如google早就實現去解析js內容了,而國內的一批「蠢一點」的則還不行。 google搜尋不到知乎,是因為有網站的robots.txt可以配置,知乎預設是不對搜尋引擎開放的。守規則的引擎還是會遵循你的配置不去抓取,而一些流氓軟體則不見了。
seo 本質是一個伺服器向另一個伺服器發起請求,解析請求內容。但一般來說搜尋引擎是不回去執行請求到的js的。也就是說,如果一個單頁應用,html在伺服器端還沒有渲染部分數據數據,在瀏覽器才渲染出數據,而搜尋引擎請求到的html是沒有渲染數據的。 這樣就很不利於內容被搜尋引擎搜尋到。 所以服務端渲染就是盡量在伺服器傳送到瀏覽器前 頁面上就是有資料的。
第二個問題,一般的資料邏輯操作是放在後端的。排序這個如果只是幾條數據,前後端排序開起來是一樣的,如果是有1000條數據,前端要排序就要都請求過來。這樣顯然是不合理的。
因為搜尋引擎不太喜歡執行 JavaScript,所以後端渲染比較好。例如你可以試試,好像 Google 完全搜不到知乎專欄裡的文章了。 Internet Archive 也無法應用在知乎專欄上。
我的個人意見是:以內容為主的網站,核心內容盡量後端渲染,以利於非瀏覽器使用。以軟體為主的網站,例如各種 SAP,則不用在意這些。在意了也沒用。
搜尋引擎的基礎爬蟲的原理就是抓取你的url,然後取得你的html原始碼並解析。 而你的頁面通常用了vue等js的數據綁定機制來展示頁面數據,爬蟲獲取到的html是你的模型頁面而不是最終數據的渲染頁面,所以說用js來渲染數據對seo並不友好。
ps:另外js並不是所有的引擎都爬不到,如google早就實現去解析js內容了,而國內的一批「蠢一點」的則還不行。 google搜尋不到知乎,是因為有網站的robots.txt可以配置,知乎預設是不對搜尋引擎開放的。守規則的引擎還是會遵循你的配置不去抓取,而一些流氓軟體則不見了。