哈囉大家!我們都有過這樣的經驗:辛辛苦苦在 GitHub 上面架設好了一個精美的個人履歷、技術部落格或是實用的小軟體網頁,開心地將原始碼 Push 上去,看著 GitHub Pages 給出那一串專屬的綠色網址(https://yourname.github.io)。然而,過了幾週甚至幾個月,去 Google 搜尋自己的名字或專案名稱,卻發現「什麼都找不到!」為什麼會這樣呢?原因很簡單:Google 根本不知道你的網站存在。這篇超過三千字的完全指南將帶你從零開始,除了教你如何使用超方便的「線上 Sitemap 產生器」快速搞定網站地圖,更會深入探討 robots.txt、孤兒網頁的終極解法,以及如何透過 Jekyll 實現自動化生成。準備好了嗎?讓我們一起把你的 GitHub 作品集推向全世界!
1. 什麼是 Sitemap (網站地圖)?
Sitemap,顧名思義就是「網站的地圖」。但要注意的是,這裡指的地圖不是給「人」看的導覽目錄,而是專門寫給「機器(搜尋引擎爬蟲)」看的檔案。網際網路就像一座黑暗森林,Google 的爬蟲每天在裡面摸黑探索,如果沒有這份地圖,爬蟲很容易只在首頁看一眼就離開了。目前最通用的地圖格式是 XML (eXtensible Markup Language)。
Sitemap 的長相與結構
一份標準的 sitemap.xml 檔案,裡面其實就是一堆以特定標籤包裝起來的網址清單。讓我們來看一個簡單的範例:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yourname.github.io/</loc>
<lastmod>2026-04-14</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://yourname.github.io/about.html</loc>
<lastmod>2026-04-10</lastmod>
</url>
</urlset>這個檔案裡面包含幾個核心標籤:
<loc>:網頁的絕對網址。這是唯一必填的欄位,告訴爬蟲網頁在哪裡。<lastmod>:最後修改時間。這對 Google 來說極度重要。當爬蟲看到這個日期更新了,它就知道必須重新來抓取這個網頁的新內容。<changefreq>與<priority>:更新頻率與權重。
2. 什麼是 robots.txt?它與 Sitemap 的關係?
如果你說 Sitemap 是邀請搜尋引擎來參觀的「導覽地圖」,那麼 robots.txt 就是站在你網站門口的「警衛」或「交通指揮」。它是一個純文字檔案,必須放在你網站的根目錄下(例如:https://yourname.github.io/robots.txt)。它的主要功能是告訴各大搜尋引擎:「我的網站裡哪些地方你可以去,哪些地方你絕對不能去(像是測試網頁或草稿)。」
標準的 robots.txt 寫法
對於絕大多數希望被完整收錄的 GitHub Pages 來說,最標準且推薦的 robots.txt 內容如下:
User-agent: *
Allow: /
Sitemap: https://yourname.github.io/sitemap.xml讓我們逐行拆解:第一行的星號代表呼叫「所有的搜尋引擎爬蟲」。第二行的 Allow: / 代表根目錄下所有的檔案都歡迎爬取。最底下的 Sitemap: [網址] 是一招非常厲害的「被動提交」策略!路過的爬蟲看到這行字,就會乖乖地去下載地圖,順藤摸瓜地收錄你的網站。
3. 新手救星!好用的線上 Sitemap 產生器推薦與教學
如果你不會寫程式,或者你的 GitHub Pages 只是幾頁簡單的靜態 HTML 網頁(例如單純的履歷表),那麼最快產生 Sitemap 的方式就是依賴「線上 Sitemap 掃描工具」。市面上有非常多這類工具,這裡我最推薦老牌且免費的 XML-Sitemaps.com。
它的運作原理很直觀:你輸入首頁網址,它會派出「虛擬爬蟲」進入你的網站,順著所有的超連結(<a href="...">)把你的網站徹底逛過一遍,最後自動打包成一份 XML 檔案給你。以下是超簡單的 4 步驟實戰教學:
📍 Step 1:輸入網址
進入 XML-Sitemaps 網站後,在畫面正中央的搜尋框中,輸入你已經發布的 GitHub Pages 完整網址(例如:https://yourname.github.io)。
🚀 Step 2:開始掃描
點擊右側的「START」按鈕。系統會開始模擬爬蟲抓取你的網站。根據你網頁數量的多寡,這個過程可能需要幾秒鐘到幾分鐘的時間,請耐心等待進度條跑完。
📥 Step 3:下載檔案
掃描完成後,畫面會跳轉,請點擊「VIEW SITEMAP DETAILS」按鈕。接著在詳情頁面找到藍色的「Download Your XML Sitemap file」按鈕,將生成的 sitemap.xml 下載到電腦裡。
📤 Step 4:上傳 GitHub
將剛下載好的 sitemap.xml 檔案,放入你本機專案的「根目錄」中,然後執行 git commit 與 Push 上傳到 GitHub。大功告成!你的網站現在擁有地圖了!
⚠️ 線上工具的限制: 免費版本通常有 500 頁的掃描上限。對於一般部落客或個人作品集來說絕對綽綽有餘,但是!它有一個非常致命的邏輯缺陷,我們馬上在下一章為你揭曉。
4. 線上產生器的死穴:孤兒網頁的困境
剛才提到的線上掃描工具雖然方便又快速,但如果你問我:「如果我有兩個網頁之間沒有互相連結,也沒有連到首頁,這個工具可以把它們自動掃出來嗎?」 答案是:絕對不行!
在網頁架構學中,這種「沒有任何其他網頁的超連結指向它」的網頁,有一個專有名詞叫做「孤兒網頁 (Orphan Pages)」。你可以把它想像成一座海上的孤島,沒有任何船班或橋樑連接。線上工具的虛擬爬蟲只能靠著現有的橋樑(也就是你的導覽列或超連結)行走,如果找不到過去的路,它就永遠無法發現這座孤島,更不可能將這頁加入 Sitemap 中!
5. 解決方案 A - 手刻網頁的 Sitemap 終極解法
如果你的 GitHub Pages 專案完全是自己一行一行寫的純 HTML,而且裡面包含許多你想要被 Google 收錄、卻刻意隱藏不放進導覽列的活動頁面或 Landing Page,你可以用以下三種方法來拯救孤兒網頁:
方法 1:土法煉鋼,手動補上 (適合網頁極少)
你可以先用線上工具掃描出基本的 XML 檔案,下載後用 VS Code 編輯器打開它。針對你的孤兒網頁,手動複製一段 <url> 結構,把隱藏網頁的網址貼進去。缺點是很麻煩,每次新增頁面都要手動改一次 XML。
方法 2:建立「隱形目錄頁」策略 (簡單有效)
這招是「欺騙」爬蟲的藝術!在你的根目錄建立一個純文字網頁(例如命名為 all-links.html),裡面什麼排版都不用,只要塞滿所有孤兒網頁的超連結即可。然後,讓首頁一個極不起眼的角落連到這個頁面。線上工具的爬蟲一進去,就像拿到了一份「全站隱藏名單」,瞬間就能順利掃出所有隱藏頁面了!
方法 3:寫腳本自動化產生 (進階強烈推薦)
既然線上工具是靠「爬蟲」,那身為開發者,我們在本地電腦擁有最高權限,可以直接靠「讀取檔案系統」來暴力破解!如果你有安裝 Node.js,可以寫一支小腳本(例如 generate-sitemap.js),讓它直接讀取資料夾內所有的 .html 檔,無視內部有沒有連結,只要檔案存在就直接打包成 XML。未來每次 Push 前只要在終端機執行一次腳本,一秒鐘搞定所有地圖更新!
6. 什麼是 Jekyll?為何它是 GitHub Pages 的主流?
上述的手刻方法雖然自由,但如果你的網站是一個擁有幾十篇文章的部落格,每一頁都要複製貼上同樣的導覽列、頁尾,還要煩惱 Sitemap 更新,那簡直是一場噩夢。這就是 靜態網站產生器 (Static Site Generators, SSG) 誕生的原因。而 Jekyll 就是這領域的開山鼻祖,也是 GitHub Pages 唯一原生內建支援的產生器。
使用 Jekyll 開發網站時,你不再需要寫冗長的 HTML。你寫的內容通常是輕量級的 Markdown 格式。當你把檔案上傳到 GitHub,背後的伺服器會自動啟動 Jekyll 引擎,把你的文章套入預設的版型中,編譯成 HTML 發布出去。它的好處是高度模組化、讓你完全專注於寫作,最棒的是,它擁有極度強大的外掛生態圈!
7. 解決方案 B - 使用 Jekyll 自動生成 Sitemap (完美終結孤兒網頁)
如果你選擇使用 Jekyll 來建構網站,那麼產生 Sitemap 簡直不費吹灰之力,而且它天生就對「孤兒網頁」免疫!因為 Jekyll 的地圖外掛是直接讀取你專案資料夾裡面的「所有檔案」,而不是去模擬滑鼠點擊。只要檔案存在你的資料夾內,就會被精準抓出來打包。
實作步驟非常簡單:
首先,在你的儲存庫根目錄找到 _config.yml 檔案(這是 Jekyll 的總指揮中心)。打開它,確保裡面有設定你的 url,並在 plugins 底下啟用外掛:
# 網站的基礎設定
url: "https://yourname.github.io"
# 啟用 Sitemap 外掛
plugins:
- jekyll-sitemap如果你有一些不想被收錄的草稿頁面,只要在該 Markdown 文章的最上方(Front Matter 區域)加上 sitemap: false 的指令即可。設定完畢後存檔並 Push 到 GitHub,稍等大約 1 分鐘讓 GitHub Actions 編譯完成,你的完美網站地圖就會自動誕生在 /sitemap.xml 網址下了,從此徹底解放雙手!
8. 最終衝刺!將 Sitemap 提交給 Google Search Console (GSC)
萬事俱備,只欠東風!有了地圖和 robots.txt,我們雖然可以被動等待,但為了效率,我們必須主動出擊,將地圖親自遞交給 Google 總部。這時就需要出動 SEO 領域的核武級工具:Google Search Console。
登入 GSC 後,點擊「新增資源」,選擇「網址前置字元」並輸入你的 GitHub Pages 完整網址。接著,系統會要求你驗證網站所有權,請選擇最簡單的「HTML 標記 (HTML Tag)」方式,系統會給你一段類似這樣的代碼:
<meta name="google-site-verification" content="一段專屬的亂碼" />請將這段代碼貼到你網站首頁的 <head> 區塊內並 Push 上 GitHub。回到 GSC 點擊驗證即可過關。最後,在左側選單找到「網站地圖 (Sitemaps)」,填寫 sitemap.xml 並按下提交。只要畫面出現綠色的「成功」字樣,恭喜你!Googlebot 就會開始沿著這份精準的地圖掃描你的網站,你的心血結晶很快就會出現在 Google 搜尋結果的第一線囉!
本篇 SEO 教學與程式碼範例僅供學習與參考用途。搜尋引擎(如 Google)的演算法與排名因素隨時都在變動,本文所述之技術與 Sitemap 提交方法旨在「最高程度提升網頁被爬取與索引的機率」,並不保證網站必然能獲得首頁排名或帶來巨量流量。在執行自動化腳本、修改網站架構或設定 GSC 前,請務必於本地端做好測試與備份,作者及平台不對任何因操作導致的流量波動、搜尋排名下降或資料異常承擔相關法律責任。祝大家 SEO 排名節節高升!
留言
張貼留言