從頁面原始碼中擷取所有 URL,意即掃描您從瀏覽器的「檢視原始碼」動作所複製的 HTML 標記,並將每個 href 值從 anchor、area 與 link 起始標籤中抽出,組成一份單一平坦的清單。產出結果是該來源檔案中所有連結目的地的去重後清單,並非即時網路報告或已完成的 SEO 分數。連結擷取工具會在瀏覽器中於本機端執行這項工作:貼上 HTML,並可選擇性地提供頁面 URL,以便將相對路徑解析為絕對位址,接著複製去重後的輸出結果。該工具絕不會對任何已發現的目的地發出請求,因此對於您有權檢查的頁面而言,這項操作是安全的。JavaScript 注入的連結、HTTP 狀態碼、重新導向鏈、canonical 意圖,以及 rel 屬性的意義,在這個階段都不會進行評估。去重作業會在標準化後精確完成,解析器會解碼數值與一小組命名字元參照,輸出為一行一個 URL 並附上透明的計數。請將此清單視為一份起始的盤點,仍需另行驗證,才能作為可信的導航訊號。

頁面原始碼是伺服器所傳遞的原始 HTML,在腳本執行之前,也早於瀏覽器將其重寫為即時 DOM 之前。當您搜尋「從頁面原始碼取所有 URL」時,這個差異至關重要,因為答案取決於您實際持有的是哪一個版本的頁面。若您的來源來自以 JavaScript 驅動的單頁應用程式,您將只能看到伺服器所送出的 anchor、area 與 link 標籤。任何在框架轉譯後才插入的連結,皆不存在於靜態原始碼中,因而也不會出現在這份盤點中。

extract all urls from page source
從頁面原始碼取所有 URL 以進行 SEO 稽核

原始碼解析與瀏覽器爬取有何不同

連結盤點與爬蟲報告在本質上有所不同,即使兩者都在回答「頁面連結到哪些 URL」這個相似的問題。連結擷取工具是作為一個有界線的原始碼解析器運作。它會先移除註解與 script、style、textarea、title、iframe、noembed、noframes 等原始文字容器,接著再掃描起始標籤,然後比對 a、area 與 link 元素上的 href 屬性。它不會執行腳本、不會轉譯框架,也不會開啟任何網路連線。

相對地,真正的瀏器爬蟲會透過 HTTP 或 HTTPS 取文件、建構 DOM、執行 JavaScript、等待延遲的請求,然後在所有工作完成後列舉已解析的連結。兩種方法都可能是有效的,但它們回答的是不同的問題。原始碼解析器告訴您 HTML 實際上包含什麼;爬蟲則告訴您使用者實際上會看到並點擊什麼。對於 SEO 稽核而言,您通常需要兩種觀點,並且在得出結論之前,應先釐清自己看的是哪一份。

原始碼解析器盤點瀏器爬蟲報告
僅讀取您貼上的 HTML透過 HTTP 或 HTTPS 擷取 URL
掃描 a、area 與 link 起始標籤走訪已轉譯的 DOM,含腳本部分
依選擇性的 base 解析相對 href以即時頁面 URL 作為解析內容
略過可執行的 scheme 與空值追蹤每個可導覽的目標
回報唯一、重複與略過的計數回報狀態碼、重新導向與時間
對已發現的目標不發出任何網路請求對每個已發現的目標發出請求

如何從頁面原始碼取所有 URL

  1. 開啟您有權檢查的頁面,然後使用瀏覽器的「檢視原始碼」或「另存頁面」動作來複製原始 HTML。請避免使用「Elements」面板中的即時 DOM,因為該檢視反映的是由腳本所驅動的編輯,而解析器並不會看到這些內容。
  2. 前往連結擷取工具,將 HTML 貼入來源欄位。解析器每次掃描最多可處理 200,000 個字元,因此對於非常大的文件,請加以分割,或使用您自己受控的爬蟲來處理完整封存。
  3. 若頁面包含相對路徑(例如 /pricing 或 ../guide),請在 base 欄位中輸入該頁面的絕對 HTTP 或 HTTPS URL。base 必須使用 http 或 https,且不得包含認證資訊。
  4. 執行擷取作業。輸出面板會顯示一份已去重、一行一個 URL 的清單,並附上唯一、重複與略過的計數。
  5. 將結果複製到試算表、受控的爬蟲或網站地圖產生器中。請將每一行視為一份需要另行驗證的盤點項目,才能作為可信的導航訊號。

重複計數本身即具有參考價值。兩個解析為同一絕對 URL 的相同相對連結會合併為單一項目,因此重複數字會告訴您解析器實際看到但已移除的錨點數量。略過計數則會告訴您解析器已捨棄多少空值、僅含片段的參照、javascript: 與 data: 目標,以及無效的絕對 URL。看似偏短的清單,幾乎不代表擷取作業有問題;它通常代表過濾機制較為保守,而解析器會將這項決策開來,而不是加以隱藏。

解析器保留與略過的目標

該工具有意地讀取三種起始標籤。一般的 a 錨點會將使用者導向文件;area 元素會在影像地圖中加入目標;link 元素則會參照樣式表、圖示、canonical 頁面與替代資源。對於一份原始碼盤點而言,同時納入這三者是正確的做法,因為目標在於了解標記實際包含什麼,而不是猜測哪些關聯較為重要。解析器不會將任何目標標記為導覽、canonical、preload 或 stylesheet。您應依據元素類型與其周邊上下文自行判斷。

部分目標會被刻意略過。空白的 href 值、僅指向同一份文件的片段(例如 #section),以及可執行或嵌入資料的 scheme(javascript、data、vbscript)一律不會被回傳。無效的絕對 URL 也會被捨棄。郵件(mailto)與電話(tel)目標則會被保留,因為它們雖非網頁,卻仍是合法的連結目的地。若某個連結看似未出現在輸出中,請先檢查略過計數。

目標形式結果
絕對 http 或 https URL標準化後列出
根目錄相對路徑,例如 /pricing有提供 base 時,依其解析
路徑相對,例如 ./guide有提供 base 時,依其解析
上層相對,例如 ../guide有提供 base 時,依其解析
scheme 相對,例如 //cdn.example.com/x有提供 base 時,依其解析
mailto: 或 tel: 目標作為合法目的地予以保留
同一文件片段 #x略過
空白的 href 值略過
javascript:、data:、vbscript:基於安全性而略過
無效的絕對 URL略過

舉例而言,在 base URL https://example.com/products/page 之下,相對 href /pricing 會在輸出中解析為 https://example.com/pricing。若未提供 base,則同一個 href 會保留為 /pricing,因此解析器絕不會自行臆造主機。

字元參照的解碼方式

真實的 HTML 在 href 值內部,並不一定會直接帶有 & 符號或重音字元。連結擷取工具會解碼十進位字元參照(例如 &)與十六進位字元參照(例如 &),接著再套用一小組名稱,涵蓋 amp、quot、apos、lt 與 gt。這整體足以涵蓋大多數頁面在 URL 查詢字串中使用的跳脫,包括在追蹤參數中極為常見的 & 序列。

任何不在該組內的項目都會保持編碼狀態。解析器刻意不作為一份完整的 HTML 命名實體資料表,因為一個推測或片面的全域實體表,可能會在無聲之中把看似標記的文字改寫為非預期的內容。若某個罕見的命名參照殘留於輸出中,請將編碼後的形式視為真正的來源值,而非瑕疵;若您的爬蟲需要已解析的形式,請於下游另行驗證。

將 URL 清單作為 SEO 稽核的起點

一旦取得盤點,工作就會從擷取轉移至檢視。這份清單本質上是原始的:它不會區分內部或外部目標、不會評估 rel 屬性,也不會測試 HTTP 狀態。對於移轉、內容稽核或反向連結掃描而言,這份未經修飾的清單往往正是您所需要的。您可以加以排序、篩選,並餵入另一個工具來執行下一個工作。

舉例而言,在剔除明顯的重複項目與外部網域目的地之後,清理過的盤點相當適合用於符合標準的 XML 網站地圖。該轉換步驟能將盤點轉化為搜尋引擎可接受的格式。連結取工具是來源探索階段,網站地圖產生器是發布階段,真正的爬蟲則是驗證階段。沒有任何一個工具能取代其他工具。

讀取頁面原始碼的限制與陷阱

原始碼解析器在設計上較為保守,這也帶來若干可預見的盲點。第一,去重作業會在標準化後精確完成:僅因追蹤參數、片段、區分大小寫的路徑或重新導向行為而有所差異的 URL,會被視為不同的資源,因為解析器無法僅從原始碼判斷它們是否指向同一目的地。兩個解析為同一絕對 URL 的相同相對連結會合併為單一項目,但僅僅是「看起來相似」的 URL 則不會合併。

第二,嚴重殘缺的標記、未加引號的特殊屬性、遺失的 raw-text 結尾標籤,或是瀏覽器的錯誤復原機制,皆可能產生與此有界掃描不同的 DOM。解析器並非完整的 HTML 樹狀建構器,而介面本身也已說明這項限制。若稽核結果必須具有可信度,請同時比對原始原始碼、瀏器 DOM 匯出,以及真正的爬蟲,而不是仰賴單一取管道。

最後,解析器無法擷取遠端 URL。任意的跨來源請求經常會遭到封鎖;若在無聲中聯絡已貼上的連結,將衍生隱私與安全性問題。請從您有權檢查的頁面複製原始碼,或透過您自己受控的爬蟲取得 HTML。在腳本執行後才插入的動態連結,不會存在於靜態原始碼中,因此也無法在此處被找到。

取得盤點之後的下一步

這份清單是稽核的起點,而非終點。請使用具備 HTTP 狀態、重新導向鏈、認證要求、robots 規則,以及 rel 屬性(如 nofollow、sponsored、ugc)意義檢查能力的授權工具,逐一驗證每個目標。請以這份盤點來引導您的提問,接著交由爬蟲來回答。

對於大型或例行性工作,請將盤點與一台遵守 robots.txt 與您自身認證界線的受控爬蟲搭配使用。請將連結擷取工具視為來源探索階段、將網站地圖產生器視為發布階段、將爬蟲視為驗證階段。三個各司其職的小工具,通常勝過一個試圖一次做完所有事、卻每件事都做不好的大工具。

若您正在權衡選項,從網站擷取網站地圖至 URL 清單對此有詳細說明。