1. 程式人生 > >前端後端分離,怎麼解決SEO優化的問題?

前端後端分離,怎麼解決SEO優化的問題?

解決題主的問題,首先得先想明白什麼是SEO,然後再說前後端分離情況下如何做SEO優化。

我們假設這個產品是一個新產品,他需要做SEO,那麼到底什麼是SEO呢?SEO的縮寫是『Search Engine Optimization』,搜尋引擎優化,雖然我不是專業做SEO的,我也不是SEO工程師(你別說某些網站還真有這個崗位)。

不過或多或少,SEO這個行業曾經也是個特別有意思的行業。

優化針對這個問題分2個點:

1,前後端分離的架構,無法提供搜尋引擎可收錄的頁面,需要搜尋引擎蜘蛛擁有執行javascript能力才行,可現實是大部分的搜尋引擎都不支援。

2,支援了SPA架構的產品,如何做SEO優化。(第一個點是先讓他支援,第二條才落到優化)

我們先看第一個點,我們要做SEO支援首先要知道我們要優化哪些Search Engine。

常見的列舉,百度,google,微軟必應,搜狗,等等。

那麼我們首先得了解Search Engine才能談如何做到讓頁面被收錄,這裡就拿最常見的百度和google來舉例吧。

百度是不支援收錄SPA的頁面的,而且SPA的網站對於百度的spider來說等於是只有1個頁面,那麼如何做到讓這種搜尋引擎收錄頁面呢?首先我們可以自行提交sitemap,讓蜘蛛主動去爬,但是遇到sitemap中的URL,到達指定頁面後頁面只有一段js怎麼辦,我們可以利用比如<noscript></noscript>標籤來進行最簡單的優化,比如在noscript裡打印出當前頁面一些關鍵的資訊點,但是這個做法大家一看就非常的蠢,因為正常使用者並不需要這些內容,佔用下載量,而且不好維護。那麼我們如何判斷當前頁面是否支援執行javascript呢?前端已做到,用noscript,後端不行,那麼只好針對百度的spider做UA判斷了,這也就是大家常見的一些解決方案,使用phantomjs或者nginx代理,來對spider訪問的頁面進行特殊的處理,達到被收錄的效果。

那麼這麼做其實是有一些副作用的,比如你收錄的頁面和使用者正常訪問的頁面差別較大是有被搜尋引擎K掉的風險的,所以更多的做法還是選擇首屏使用ssr的方式渲染,先通過後端路由保證頁面的主要資訊可以被伺服器端輸出,然後其他的功能,包括使用者之後的路由跳轉控制,再使用前端路由來做,曾經的專案經驗在新浪部落格手機版中也是這麼做的,當然當時沒有ssr,是後端直接渲染的模板,使用者訪問後,再進行互動則再採用前後端分離和前端路由控制來完成。

然後就是google的搜尋引擎,是支援hashtag再rewrite訪問你的靜態版的,但是畢竟只有google支援,所以正規的做法都是使用pushState來對頁面URL做前端的後續無重新整理控制,對爬蟲和所有使用者提供任何入口的ssr或者首屏的直接渲染,才是最完美的SEO支援方案。

ok,到這裡說清楚了第一個點,那麼第二個點怎麼做呢?SEO優化其實我也學過一些簡單的,僅僅讓站點支援收錄只是第一步,關鍵詞的搭配,頁面關鍵詞的分部,一些特殊的meta頭,還有站內連結的鏈路,站外的鏈路,甚至站群權重的影響,這些加一起出一本都足夠了,大家有興趣可以去搜索SEO相關的一些書籍。

這裡給大家講一些很早年我做百度SEO的一些小故事,我上大學的時候認識一個專門做企業站百度SEO的公司,或者說小團隊吧。他們做關鍵詞的排名做到了什麼程度呢?根本不需要你的網站有任何你想要的關鍵字,比如我想買一個『微信小程式』的關鍵字排名,他們當時的能力就是3天能讓你上第一頁。而且你的網站都不需要有微信小程式這個詞。

怎麼做到的呢?哈哈,其實就是站群,當時百度的收錄權重是有很大的問題的,外鏈的引入量達到一定的時候,根本不需要你自己本身來做SEO優化,你的排名就會蹭蹭長,當然這個代價是非常大的,比如你需要先有1000個以上的域名,還要有批量的機器支援快速的更新這1000個站群的內容,和內部的連結等,這是一個技術和體力活,而且風險比較大,規則總是在變,隨時有被K的風險,給客戶做的時候也是需要自己測試無誤再賣這種暴力產品。

所以,所謂的SEO,不還是。。。人家Search Engine裡面幾條規則的事,做優化,還是要先了解規則,才能優化的足夠NB,這些規則裡,前後端分離這玩意只是其中一條。更多的優化靠的還是內容和連結交換。

最後,再次瀉藥...



作者:小爝                   來源:知乎