作為前端,你不得不知道的搜尋引擎優化

志如發表於2018-06-05

  研發的同學,其實很多人並沒有深入瞭解SEO這個概念。在技術部落格裡,提及這一塊的也寥寥無幾。我今天就拿自己的經驗,簡單給大家掃個盲,有什麼遺漏的地方,歡迎大家補充。

  文字內容有點多,但是乾貨滿滿,請耐心閱讀!

什麼是SEO:

  以下內容摘自百度百科:

SEO(Search Engine Optimization):漢譯為搜尋引擎優化。搜尋引擎優化是一種利用搜尋引擎的搜尋規則來提高目前網站在有關搜尋引擎內的自然排名的方式。SEO是指為了從搜尋引擎中獲得更多的免費流量,從網站結構、內容建設方案、使用者互動傳播、頁面等角度進行合理規劃,使網站更適合搜尋引擎的索引原則的行為。

SEO原理

  其實搜尋引擎做的工作是相當複雜的,我們這裡簡單說一下大致的過程。後續針對SEO如何優化,也會根據這幾個點展開描述。

  • 頁面抓取: 蜘蛛向伺服器請求頁面,獲取頁面內容
  • 分析入庫:對獲取到的內容進行分析,對優質頁面進行收錄
  • 檢索排序:當使用者檢索關鍵詞時,從收錄的頁面中按照一定的規則進行排序,並返回給使用者結果

SEO優化

  既然是優化,那我們就得遵循SEO的原理來做,可謂知己知彼,百戰不殆。針對上面提出的三點,我們分別展開敘述。我們這裡主要以百度蜘蛛舉例。

頁面抓取

  如何才能吸引蜘蛛光顧我們的網站,如何才能讓蜘蛛經常光顧我們的網站。這裡提出以下幾個優化點:

  1. 提交頁面。提交頁面又分為幾種不同的方式

    1. sitemap提交。sitemap,顧名思義,就是網站地圖,當蜘蛛來到我們的網站時,告訴它我們有多少頁面,不同頁面是按什麼分類的,每個頁面的地址是什麼。順著我們的指引,蜘蛛會很輕鬆的爬遍所有內容。另外,如果你的頁面分類比較多,而且數量大,建議新增sitemap索引檔案。如果站點經常更新新增新頁面,建議及時更新sitemap檔案;
    2. 主動提交。就是把你的頁面直接丟給百度的介面,親口告訴百度你有哪些頁面,這是效率最高也是收錄最快的方式了。但是需要注意,百度對每天提交的數量是有限制的,而且反覆提交重複的頁面,會被降低每日限額,所以已被收錄的頁面不建議反覆提交。收錄有個時間過程,請先耐心等待;
    3. 實時提交。在頁面中安裝百度給的提交程式碼,當這個頁面被使用者開啟我,便自動把這個頁面提交給百度。這裡不需要考慮重複提交的問題。 以上幾種提交方式可以同時使用,互不衝突。
  2. 保證我們的頁面是蜘蛛可讀的。

      早在ajax還沒流行的的時候,其實SEO對於前端的要求並沒有很多,或者說,那個時候還沒有前端這個職業。頁面全部在伺服器端由渲染好,不管是使用者還是蜘蛛過來,都能很友好的返回html。ajax似乎原本是為了避免有資料互動導致必須重刷頁面設計的,但是被大規模濫用,一些開發者不管三七二十一,所有資料都用ajax請求,使得蜘蛛不能順利的獲取頁面內容。慶幸的是這反倒促進了前端的飛速發展。

      到了後來,各種SPA單頁應用框架的出現,使得前端開發者不再需要關心頁面的DOM結構,只需專注業務邏輯,資料全部由Javascript發ajax請求獲取資料,然後在客戶端進行渲染。這也就導致了老生常談的SEO問題。百度在國內搜尋引擎的佔有率最高,但是很不幸,它並不支援ajax資料的爬取。於是,開發者開始想別的解決方案,比如檢測到是爬蟲過來,單獨把它轉發到一個專門的路由去渲染,比如基於Node.js的Jade引擎(現在改名叫Pug了),就能很好地解決這個問題。React和Vue,包括一個比較小眾的框架Marko也出了對應的服務端渲染解決方案。詳細內容檢視對應文件,我就不多說了。

  3. URL與301

  URL設定要合理規範,層次分明。如果網站到了後期發現URL不合理需要重新替換時,會導致之前收錄的頁面失效,就是我們所說的死鏈(這種情況屬於死鏈的一種,404等也屬於死鏈)。所以一定要在網站建設初期就做好長遠的規劃。一旦出現這種情況也不要過於擔心,我們可以採取向搜尋引擎投訴或者設定301跳轉的方式解決。

  URL層級巢狀不要太深,建議不超過四層。增加麵包屑導航可以使頁面層次分明,也有利於為蜘蛛營造順利的爬取路徑。

  除此之外,將指向首頁的域名全部設定301跳轉到同一URL,可以避免分散權重。

分析入庫

  當蜘蛛把頁面抓取回去之後,就需要對頁面內容進行分析,並擇優收錄入庫。為什麼說是擇優呢?下面我給你慢慢分析。

  搜尋引擎的目的是給使用者提供高質量的、精準的搜尋結果。如果整個頁面充斥著滿滿的廣告和各種不良資訊,這無疑會很大程度上影響使用者體驗。

  除此之外,你肯定不希望自己辛辛苦苦創作的文章被別人輕而易舉的抄走,所以搜尋引擎在一定程度上幫助你避免這種情況的發生。對於已經收錄的內容,搜尋引擎會降低其權重,甚至直接不收錄這個頁面。即便是這樣,為了保證頁面的新鮮度,很多網站都會爬取或者轉載其他網站的內容。這就是我們經常聽到的偽原創。所以,想要讓你的頁面能夠以較高的權重被收錄,就需要堅持更新網站內容,並且是高質量的原創內容。   

檢索排序

  這塊我的理解是,頁面被收錄後,會給每個頁面打一些tag。這些tag將作為搜尋結果排序的重要依據。比如使用者搜尋“北京旅遊”,搜尋引擎會檢索收錄頁面中被打了“北京旅遊”tag的頁面,並根據一系列規則進行排序。所以,如何提升這些tag在搜尋引擎裡面的權重是至關重要的。

  1. TDK優化

TDK是個縮寫,seo頁面中的頁面描述與關鍵詞設定。

其中"T"代表頁頭中的title元素,這裡可能還要利用到分詞技術,當標題(Title)寫好後,我們就儘可> 能不要再去修改了,儘量簡潔,沒意義的詞儘量不要加入到標題中,避免干擾到搜尋引擎識別網站主題。

其中"D"代表頁頭中的description元素,要知道描述是對網頁的一個概述,也是對title的補充,因為title中只能書寫有限的字數,所以在description中就要稍微詳細的補充起來,一般用一句兩句話概括文章的內容。

其中"K"代表頁頭中的keywords元素,提取頁面中的主要關鍵詞,數量控制在三到六個內。想方設法讓主關鍵字都出現。

  以上內容摘自百度百科,這裡需要補充幾點。

  TDK是搜尋引擎判斷頁面主題內容的關鍵,所以要在title裡面言簡意賅的體現出頁面的主要內容,如果主體比較多,可以用一些符號把不同的主題詞隔開,但是關鍵詞不要太多,最多不要超過五個。

  keywords裡面把每個關鍵詞用英文逗號隔開,三到五個最佳。儘量覆蓋每個關鍵詞。

  description就是用自然語言描述頁面的主要內容,這裡注意一點就是把每個關鍵詞至少覆蓋一遍才能達到最佳效果。

  1. 提升頁面關鍵詞密度

  首先說個概念,叫關鍵詞密度。簡單理解就是關鍵詞在所有文字內容中出現的比例。提升關鍵詞的密度,有利於提升搜尋引擎針對對應關鍵詞的搜尋排名。但並不是我們整個頁面密密麻麻堆砌關鍵次就好,我們來分析一個案例。

  我們在百度搜尋“北京旅遊”,排在第一的是百度旅遊,這個就不解釋了。排第二位是攜程,我們就分析一下為啥攜程會排名這麼靠前。

作為前端,你不得不知道的搜尋引擎優化
  通過檢視百度快照,可以一目瞭然的看到頁面上究竟哪些地方命中了這些詞。

  頁面頭部

作為前端,你不得不知道的搜尋引擎優化
  頁面底部
作為前端,你不得不知道的搜尋引擎優化

  頁面很清晰表明了關鍵詞出現的地方,我們發現這個頁面除了正文部分外,還設定了許多的模組,這些模組看似只是一些簡單的連結,實際上他們更重要的使命就是服務SEO,提升關鍵詞的密度。同時,這些連結都是指向網站內部的連結,通過這樣的方式,還可以在不同的頁面之間相互投權重。可以說小連結,大學問!

  你以為到此結束了?並沒有。請仔細觀察頁面上這些模組的內容設定。分別覆蓋了地區、景點、攻略、導航、住宿、交通等等,可以說是涵蓋了你要旅遊所需要的任何需求。這樣一來,不管你搜哪些有關於“北京旅遊”的關鍵詞,比如“北京旅遊住宿”,“北京特色美食”等都會命中這個頁面的詞,這使得這個頁面的關鍵詞數量得到提升,更容易得到曝光。

  1. 細枝末節但不可忽視的優化

  頁面上經常會有各種圖片,對於搜尋引擎來說,它是不識別圖片上的內容的。你可能知道程式碼中img標籤的alt屬性是為了圖片載入失敗的時候,給使用者看的。這個屬性表明了這張圖的內容。其實搜尋引擎在分析頁面的時候,也會根據這個詞去判斷圖片的內容,所以要給頁面上有意義的圖片都加上alt屬性,寫清楚圖片索要反映的內容。

  頁面上的出站連結(也就是指向別的網站的A標籤),我們要給它加上nofollow標籤,避免它向別的網站輸出權重。百度蜘蛛會忽略加了nofollow 的連結。你也可以在網頁的meta標籤裡這麼寫<meta name="robots" content="nofollow" />,這樣一來,百度蜘蛛將不追蹤頁面上的所有連結,但不建議這麼做,除非這個頁面的所有連結都指向了別的域名。

  ......

其他優化點

友情連結

  我們經常會在頁面底部看到友情連結。友情連結是作為網站之間相互交換流量,互惠互利的合作形式。事實上,友情連結對網站權重提升有著至關重要的作用。友鏈不僅可以引導使用者瀏覽,而且搜尋引擎也會順著連結形成迴圈爬取,可以有效提升網站流量和快照的更新速度。

關鍵詞篩選

  藉助站長工具愛站網或者各種站長後臺我們可以分析出ip來路,以及關鍵詞的搜尋熱度和相關詞,我們再把這些詞以一定的密度新增到頁面中,以此來提升命中率。這裡主要是運營同學的工作,我不專業,也就不展開說了,更多功能大家自行摸索。

利用好分析工具

  我們要在自己的站點安裝百度統計程式碼,這樣就可以分析出站點內使用者的關注度和瀏覽流程,以此來不斷優化站點結構,提升使用者的留存率。同時也可以做使用者畫像,分析使用者資料等等。

結語

  想要做好SEO並不是一件簡單的事,需要持之以恆,面面俱到。對網站持續關注,並保持更新。從長遠打算,切不可投機取巧,只圖一時的效果做違背搜尋引擎的操作,也就是常說的黑帽SEO,否則被百度K掉就得不償失了。

  以上觀點只是我最近學習的一些總結,並不權威,希望給不瞭解這塊的研發同學簡單掃個盲,如有錯誤,還請各位指正與補充!

相關文章