我們的網站被收錄了!

程序员鱼皮發表於2024-08-26

大家好,我是程式設計師魚皮。我們團隊做的程式設計師面試刷題網站 面試鴨 上線不到半個月的時候,就被百度等各大搜尋引擎收錄和推薦了!

效果顯而易見,使用者搜尋 “面試鴨” 的時候,第一個看到的就是我們自己的網站,從而給網站增加流量:

我們的網站被收錄了!

關於如何讓搜尋引擎更快地收錄網站,其實是一門很深的學問,還有一個專業術語叫 SEO。對於個人站長來說,搜尋引擎的流量是至關重要的,大家應該都希望自己的網站能夠被更多人看到吧?暫且不說收益,有個訪問量大的網站,寫簡歷和麵試的時候也能吹一波牛皮~ 所以我建議程式設計師朋友們最好對 SEO 有一定了解。

今天這篇文章,魚皮就以自己的面試鴨網站為例,給大家分享一些 SEO 實用技巧,讓大家的網站都能更快地被搜尋引擎收錄。

也可以觀看影片講解,熱乎的:https://www.bilibili.com/video/BV1tz421i7Q1

魚皮 SEO 乾貨分享

一、什麼是 SEO?

SEO 全稱為 Search Engine Optimization,即搜尋引擎最佳化,使網站更容易被搜尋引擎收錄和呈現,可以讓更多人透過百度、谷歌之類的搜尋引擎發現你的網站,從而提升網站的訪問量和知名度。

在學習如何進行 SEO 最佳化前,我們先簡單瞭解 SEO 的流程,也就是:搜尋引擎是如何發現你的網站並且讓使用者搜尋到的?

二、SEO 的流程

整個 SEO 過程可以分為四個主要階段:抓取、收錄、索引和排名。下面我就來詳細講解一下這四個步驟。

1、抓取

抓取是 SEO 流程的第一步,搜尋引擎會派出一群爬蟲程式(俗稱蜘蛛),它們會在網際網路上到處爬行,訪問各個網站,並抓取網頁的內容。這些蜘蛛會按照連結從一個頁面跳轉到另一個頁面,儘可能地遍歷整個網站。

2、收錄

抓取完成後,搜尋引擎會對網頁內容進行分析,並決定是否將該頁面收錄到它的資料庫中。被收錄的頁面才能在使用者搜尋時顯示出來,因此,確保頁面被收錄是 SEO 中的關鍵一步。有的網站雖然有很多連結和內容,但是隻要搜尋引擎的蜘蛛不喜歡、不收錄,那麼別人即使專門對著你的網站搜,都搜不出來。

3、索引

索引是指搜尋引擎將已收錄的網頁內容進行整理和分類,並建立一個巨大的索引庫。這個過程類似於給每個網頁打上標籤,以便在使用者搜尋時,搜尋引擎能夠迅速找到與搜尋詞相關的網頁。

比如我們的面試鴨網站內容中包括:Java面試題庫、前端面試題庫、C++面試題庫,那麼這幾個詞就有可能被設定為索引。使用者搜尋內容時如果包含了這些詞,就有可能搜尋我們的網站。

4、排名

現在網站那麼多,同樣的索引也非常多,如何保證使用者優先搜到我們的網站呢?這就涉及到 SEO 的最後一步 —— 排名。

當使用者在搜尋引擎中輸入關鍵詞時,搜尋引擎會根據其演算法,從索引庫中挑選出最相關的網頁,並 按照相關性、權重、網站質量 等因素進行排序,決定哪些網頁出現在搜尋結果的前幾頁。

這就是 SEO 的流程,我下面要分享的 SEO 最佳化技巧,也都是圍繞這些流程展開。

三、如何進行 SEO 最佳化?

1、關鍵詞最佳化

關鍵詞是指使用者在搜尋引擎中輸入的詞彙,可以透過在網站的 HTML 頭資訊中設定關鍵詞(Keywords)和描述(Description)等資訊,來增加網站的索引、並提高網頁在相關搜尋中的排名。

關鍵詞的選擇需要精確並且跟網站內容強相關,避免過度堆砌關鍵詞,以免被搜尋引擎判定為作弊行為。

比如要做一個面試刷題網站,可以設定下列關鍵詞和描述:

<meta name="keywords" content="程式設計師面試,Java面試題,程式設計師求職,計算機">
<meta name="description" content="程式設計師面試刷題,就來面試鴨,程式設計師免費求職面試刷題網站。海量高頻Java面試題,幫你備戰技術面試。">

2、網站結構最佳化

網站結構最佳化分為 2 點:整站頁面結構最佳化和每個頁面的內容結構最佳化。

對於整個網站,頁面巢狀的層次應當儘量扁平化、儘量縮短頁面層級,以減少爬蟲抓取的難度。

舉個例子,下面兩種網站結構,你覺得哪種結構的頁面更容易被爬蟲全部訪問到呢?

我們的網站被收錄了!

答案不言而喻,對於你想更快被搜尋引擎發現的重要頁面,應該儘可能縮短跳轉到該網站的路徑,並且適當多增加一些跳轉到該頁面的入口。

對於每個頁面,應當有明確的層次結構,可以使用合理的標題標籤(如一級標題 <h1> )使頁面內容更加易於索引。

3、友情連結

我大學剛開始做個人網站的時候,就是透過友情連結的方式來增加網站的權重(雖然效果有限)。操作方法很簡單,你的網站上新增別人網站的連結,別人的網站新增你的網站的連結,你們雙方的網站互相推薦,就更容易提升在搜尋引擎中的排名。

友鏈背後的原理也很簡單。很多搜尋引擎都會按照權重對網站進行排名,權重是怎麼計算的呢?一種很簡單的演算法(Page Rank),就是每個網站都有自己的票數,每有一個別人的網站新增了跳轉到你的網站的友情連結,就相當於給你的網站投一票,得票數高的網站就能獲得更高的權重和排名。友鏈就相當於互相投票,比 1 票都沒有的網站要好。

我們的網站被收錄了!

當然,這種互相推薦的方式需要謹慎使用,避免過度交換連結,可能會導致權重分散。

4、Sitemap 檔案

Sitemap 網站地圖是一個列出了你網站所有頁面的檔案,通常放在網站的根目錄下,或者透過 robots.txt 檔案指定其位置。它可以幫助搜尋引擎更快速地瞭解你網站的結構,並抓取你希望優先收錄的頁面。

就相當於你給爬蟲發了一份地圖,爬蟲就不容易迷路,也不容易錯過你網站的重要頁面。

對於結構比較簡單的網站,使用靜態的、固定不變的 Sitemap 就足夠了。如下圖:

我們的網站被收錄了!

但對於內容持續更新的網站,還有更高階的操作,就是利用程式自動生成動態的 Sitemap,比如把每天新增的題目生成為一個 Sitemap 檔案,便於讓爬蟲更快發現最新的內容。

此外,有些搜尋引擎還支援主動上傳提交 Sitemap 檔案,可以進一步縮短網站被發現和收錄的時間。

5、SSR 服務端渲染

注意,這裡的 SSR 不是我們玩遊戲抽卡說的那個!

SSR 服務端渲染是 SEO 最為有效的技術之一。是指在伺服器端生成 完整的 HTML 頁面 ,並將其直接傳送到瀏覽器。相比傳統的前端 AJAX 動態請求資料的渲染方式,SSR 能夠讓搜尋引擎更容易抓取到完整頁面內容,從而提升 SEO 效果。

舉個例子,如果是動態請求資料的前端網站,爬蟲看到的網頁內容可能是殘缺不全的,如下圖:

我們的網站被收錄了!

因為瀏覽器是從伺服器拉取到網頁後,再載入 JS 指令碼,最後才傳送請求來獲取資料。

而如果使用了服務端渲染,伺服器會完成對資料的請求,並且將資料拼裝到頁面裡,再返回給前端,爬蟲看到的網頁內容更完整,如下圖:

我們的網站被收錄了!

服務端渲染的效果雖然好,但也會加重伺服器的壓力,而且開發成本通常會更高。比如我們的面試鴨使用 Next.js 框架開發,開發過程中也踩了不少坑。

哦對了,用 PHP 來開發服務端渲染的網站是很方便的,這可能也是為什麼以前 PHP 那麼流行的原因之一。

6、SSG 靜態站點生成

和 SSR 有點類似,SSG 是 SEO 最佳化的另一大殺器。是指在構建網站時,預先生成所有頁面的 靜態 HTML 檔案 ,並將其直接部署到伺服器上。當使用者訪問網站時,直接獲取到生成好的 HTML 檔案即可,相比 SSR 服務端渲染,都不需要伺服器再臨時去請求資料了。

這種方法不僅大大提高了頁面載入速度,而且使得搜尋引擎能夠更快、更完整地索引所有頁面。所以很多部落格站點生成器(比如 Hugo、VuePress、Hexo)都是將寫好的文章打包生成為靜態 HTML 後,再部署到伺服器上。

當然,SSG 也不是銀彈,適用於內容較為固定、更新頻率較低的網站,如個人部落格等。靜態網站本質上就是一種快取,如果網頁內容頻繁變化,就要頻繁更新這個檔案,也會有不小的成本。

所以我們可以想到一種更高階的策略:SSR + SSG 結合!內容相對固定的網頁使用靜態生成,內容變化的網頁使用服務端渲染,不需要 SEO 的網頁純客戶端渲染即可。

7、砸米

注意,以上方式並不保證絕對有效,只是增加搜尋引擎收錄和排名最佳化的機率,SEO 策略是需要持續調整和長時間驗證的。

如果團隊內沒有懂 SEO 的技術人員,又想快速讓自己的網站被搜尋引擎推薦,那就只能 “砸米” 了,簡單粗暴,就是花錢買廣告,讓你的網頁在搜尋結果的前幾名出現。很多公司也都是這麼做的,但對於沒有收益的個人站長來說,還是老老實實用前面推薦的方式吧。


以上就是本期分享,其實還有更多非技術手段的策略,後面等我摸索明白了再給大家分享吧。如果有收穫的話,記得關注魚皮和點贊哦~

更多程式設計學習資源

  • Java前端程式設計師必做專案實戰教程+畢設網站

  • 程式設計師免費程式設計學習交流社群(自學必備)

  • 程式設計師保姆級求職寫簡歷指南(找工作必備)

  • 程式設計師免費面試刷題網站工具(找工作必備)

  • 最新Java零基礎入門學習路線 + Java教程

  • 最新Python零基礎入門學習路線 + Python教程

  • 最新前端零基礎入門學習路線 + 前端教程

  • 最新資料結構和演算法零基礎入門學習路線 + 演算法教程

  • 最新C++零基礎入門學習路線、C++教程

  • 最新資料庫零基礎入門學習路線 + 資料庫教程

  • 最新Redis零基礎入門學習路線 + Redis教程

  • 最新計算機基礎入門學習路線 + 計算機基礎教程

  • 最新小程式入門學習路線 + 小程式開發教程

  • 最新SQL零基礎入門學習路線 + SQL教程

  • 最新Linux零基礎入門學習路線 + Linux教程

  • 最新Git/GitHub零基礎入門學習路線 + Git教程

  • 最新作業系統零基礎入門學習路線 + 作業系統教程

  • 最新計算機網路零基礎入門學習路線 + 計算機網路教程

  • 最新設計模式零基礎入門學習路線 + 設計模式教程

  • 最新軟體工程零基礎入門學習路線 + 軟體工程教程

相關文章