自然搜尋結果 API:如何解析標題、URL、摘要和排名位置
了解如何解析來自 SERP API 的自然搜尋結果,包括標題、URL、摘要、排名位置、網域名稱、查詢上下文、URL 規範化以及排名變更。
自然搜尋結果仍然是大多數搜尋資料工作流的核心。AI 答案、廣告、Local Pack、Shopping 卡片和影片結果會改變頁面佈局,但 organic results 仍然是內容可見度、競品追蹤、市場研究與 SEO 監控中最穩定的資料訊號之一。
如果你正在建立排名追蹤工具、搜尋監控系統、AI Agent、研究資料管線或競品情報儀表板,第一個問題通常很直接:
我們應該從自然搜尋結果中提取哪些資料?
實用答案是:先從 titles、URLs、snippets 和 positions 開始。
這四個欄位構成了 organic search data 的基本骨架。它們告訴你出現了什麼、出現在哪裡、如何被描述,以及可見度如何。
什麼是 Organic Results API?
Organic Results API 是一種搜尋資料 API,用來從搜尋結果頁中返回結構化的自然搜尋結果。你不需要人工打開搜尋頁複製連結,而是透過 API 取得這些欄位:
|
欄位 |
含義 |
|
Title |
搜尋結果中可點擊的標題 |
|
URL |
實際目標頁面 |
|
Displayed URL |
搜尋結果中展示的 URL |
|
Snippet |
標題下方的簡短描述 |
|
Position |
organic ranking position |
|
Domain |
網站網域 |
|
Search query |
使用的查詢詞 |
|
Location |
搜尋地區 |
|
Device |
Desktop 或 mobile |
|
Timestamp |
資料收集時間 |
目標不是單純收集搜尋頁,而是把搜尋可見度轉成可以儲存、比較、篩選和分析的結構化資料。
為什麼 title、URL、snippet 和 position 很重要?
自然搜尋結果看起來很簡單,但每個欄位回答的是不同問題。
|
欄位 |
回答的問題 |
|
Title |
這個頁面如何被呈現? |
|
URL |
哪個頁面實際排名? |
|
Snippet |
搜尋結果如何描述它? |
|
Position |
這個結果有多可見? |
對 SEO 團隊來說,這些欄位可用於排名與內容監控。對產品團隊來說,它們能顯示哪些競品出現在重要查詢中。對 AI 團隊來說,它們可以為 Agent 和 RAG 工作流提供即時搜尋上下文。對內容團隊來說,它們能揭示文章如何被搜尋引擎展示和摘要。
一條搜尋結果就像一個很小的門店。Title 是招牌,snippet 是銷售話術,URL 是入口,position 是門店所在的街角。
1. 解析 title
Title 是自然搜尋結果中可點擊的標題。
例如:
{
"title": "Best Project Management Software for Small Teams"
}
Title 能幫你理解頁面在搜尋結果中的定位。它可能與頁面的 <title> 一致,也可能被搜尋引擎改寫。
應該收集 title,因為它能回答:
|
問題 |
為什麼重要 |
|
預期標題是否被展示? |
發現 title rewrite |
|
競品標題如何寫? |
支援內容定位 |
|
Top results 常出現哪些詞? |
理解搜尋意圖語言 |
|
標題偏商業還是教育? |
判斷查詢意圖 |
不要假設 HTML <title> 和搜尋結果 title 永遠相同。搜尋引擎可能會根據查詢、頁面內容和上下文改寫標題。
可用欄位包括:
|
欄位 |
範例 |
|
|
Best CRM Software in 2026 |
|
|
25 |
|
|
true |
|
|
true |
|
|
comparison |
對 SEO 監控來說,title 變化是早期訊號。即使排名沒有變,title 改變也可能影響點擊率。
2. 解析 URL
URL 告訴你哪個頁面真正獲得排名。
例如:
{
"url": "https://example.com/blog/best-project-management-tools"
}
這看起來很基本,但非常重要。某個網域可能排名了,但排名的可能不是你希望的頁面。分類頁可能取代文章頁,競品比較頁可能超過產品頁,本地頁面也可能只在特定城市出現。
有用欄位包括:
|
欄位 |
範例 |
|
|
完整目標 URL |
|
|
|
|
|
/blog/best-tools |
|
|
https |
|
|
blog、product、category、documentation |
|
|
false |
|
|
標準化頁面分組 |
URL 解析特別適合這些場景:
|
場景 |
範例 |
|
競品追蹤 |
哪些競品頁面經常排名 |
|
內容內耗 |
同站多個頁面競爭同一查詢 |
|
落地頁監控 |
產品頁還是文章頁在排名 |
|
國際 SEO |
不同國家 URL 是否出現 |
|
文件可見度 |
docs 頁是否排名開發者查詢 |
解析 URL 時應該做標準化。去掉不必要的 tracking parameters,拆分 domain 和 path,並謹慎地把相似 URL 分組。
例如:
https://example.com/blog/serp-api?utm_source=newsletter
可以標準化為:
https://example.com/blog/serp-api
但不要盲目刪除所有參數。有些參數會控制語言、篩選條件或頁面狀態。
3. 解析 snippet
Snippet 是 title 和 URL 下方的簡短描述。
例如:
{
"snippet": "Compare project management tools for small teams, including pricing, features, integrations, and use cases."
}
Snippet 很有價值,因為它展示了搜尋引擎如何針對特定查詢摘要一個頁面。
應該收集 snippet,用來理解:
|
問題 |
為什麼重要 |
|
使用者看到什麼訊息? |
影響點擊行為 |
|
是否提到重要功能? |
衡量內容匹配度 |
|
是否展示價格、日期或主張? |
適合監控 |
|
Snippet 是否因查詢而變? |
分析意圖匹配 |
|
競品如何被描述? |
支援定位研究 |
Snippet 可以支持這些工作流:
|
工作流 |
Snippet 的作用 |
|
SEO 優化 |
看目標詞是否出現 |
|
品牌監控 |
發現錯誤或過時描述 |
|
競品研究 |
比較競品描述方式 |
|
AI 搜尋準備 |
為 Agent 提供乾淨上下文 |
|
內容刷新 |
找到日期過舊或信息弱的頁面 |
有用欄位包括:
|
欄位 |
範例 |
|
|
主要可見描述 |
|
|
156 |
|
|
true |
|
|
false |
|
|
CRM、small business |
|
|
en |
Snippet 不一定穩定。同一頁可能保持相同排名,但在不同查詢或地區顯示不同 snippet。這正是它適合做搜尋意圖分析的原因。
4. 解析 position
Position 表示結果在自然搜尋列表中的位置。
例如:
{
"position": 3
}
Position 是大家最關心的排名欄位,但它需要被清楚定義。
常見 position 類型包括:
|
類型 |
含義 |
|
Organic position |
只在自然搜尋結果中的排名 |
|
Absolute position |
在整個 SERP 頁面元素中的位置 |
|
Page number |
搜尋結果頁碼 |
|
Pixel position |
螢幕上的視覺位置 |
|
Above-the-fold status |
是否出現在首屏 |
大多數 Organic Results API 關注的是 organic position。也就是說,即使上方有廣告、AI 答案或其他 SERP features,第一條自然結果仍然是 position 1。
這很有用,但不完整。Organic position 1 仍然可能被廣告、AI Overviews、Local Pack 或 Shopping results 推到很下面。
更好的做法是同時收集:
|
欄位 |
作用 |
|
|
自然搜尋排名 |
|
|
頁碼上下文 |
|
|
整頁位置 |
|
|
視覺曝光 |
|
|
解釋曝光損失 |
現在的搜尋頁已經不是整齊排列的十條藍色連結,而更像一個擁擠車站:招牌、廣告、地圖、卡片和答案框都在搶注意力。
一個簡單的 organic result schema
一條乾淨的 organic result 記錄可以長這樣:
{
"query": "best project management software",
"search_engine": "google",
"country": "US",
"language": "en",
"device": "desktop",
"collected_at": "2026-06-25T09:00:00Z",
"organic_results": [
{
"position": 1,
"title": "Best Project Management Software of 2026",
"url": "https://example.com/project-management/best-software",
"domain": "example.com",
"displayed_url": "example.com/project-management",
"snippet": "Compare the best project management tools based on pricing, features, integrations, and team size."
}
]
}
這個 schema 已經足以支撐很多第一版 SEO 工具、監控儀表板和 AI 搜尋工作流。
之後可以增加:
|
額外欄位 |
用途 |
|
|
UI 展示 |
|
|
評分、價格、日期 |
|
|
品牌可見度 |
|
|
視覺結果追蹤 |
|
|
Organic、news、video、forum |
|
|
Blog、product、docs、review |
第一版不要過度設計。先收集最可信的欄位。
如何在工作流中解析 organic results
典型流程可以分六步。
Step 1:定義查詢詞
先決定要監控的關鍵字或搜尋意圖。
|
查詢類型 |
範例 |
|
產品類別 |
best SERP API |
|
對比查詢 |
SerpApi alternatives |
|
問題查詢 |
how to track Google rankings |
|
開發者意圖 |
search results API Python |
|
品牌查詢 |
TalorData SERP API |
Step 2:設定搜尋參數
搜尋結果會因國家、語言、裝置和地區而改變。
每次都應保存:
|
參數 |
範例 |
|
Search engine |
|
|
Country |
United States |
|
Language |
English |
|
Device |
Desktop |
|
Location |
New York |
|
Page depth |
Top 10 或 top 100 |
沒有上下文,排名比較會變得混亂。
Step 3:請求結構化資料
API 應該返回比原始 HTML 更容易解析的結構化資料。例如,TalorData 的 SERP API 支援 Google 和其他主要搜尋引擎的即時 SERP 資料,提供 JSON / HTML 輸出、地理定位能力,並可用於 SEO monitoring、competitor tracking、AI agents 和 RAG workflows。立即免費試用>>
實際價值在於,你可以專注分析 organic results,而不是從零維護容易壞掉的頁面解析器。
Step 4:標準化欄位
標準化 title、URL、domain、snippet 和 position。
例如:
from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode
TRACKING_PARAMS = {"utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"}
def normalize_url(url: str) -> str:
parsed = urlparse(url)
query_pairs = [
(k, v) for k, v in parse_qsl(parsed.query)
if k not in TRACKING_PARAMS
]
clean_query = urlencode(query_pairs)
return urlunparse((
parsed.scheme,
parsed.netloc.lower(),
parsed.path.rstrip("/"),
"",
clean_query,
""
))
def parse_organic_result(item: dict) -> dict:
url = item.get("url", "")
parsed = urlparse(url)
return {
"position": item.get("position"),
"title": item.get("title", "").strip(),
"url": normalize_url(url),
"domain": parsed.netloc.lower(),
"snippet": item.get("snippet", "").strip()
}
這種小型清洗層,能讓後續分析更可靠。
Step 5:保存快照
不要只保存最新結果。每次採集都要帶時間戳保存。
這樣才能追蹤:
|
變化 |
範例 |
|
排名變化 |
Rank 5 到 rank 2 |
|
URL 替換 |
文章頁被產品頁取代 |
|
Title 變化 |
搜尋引擎改寫標題 |
|
Snippet 變化 |
新功能出現在摘要中 |
|
競品進入 |
新競品進入 top 10 |
搜尋資料有了記憶,才真正有分析價值。
Step 6:建立提醒與報告
有了結構化快照,就可以建立提醒。
常見提醒包括:
|
提醒 |
含義 |
|
目標 URL 跌出 top 10 |
可見度下降 |
|
競品進入 top 3 |
競爭風險 |
|
Snippet 不再包含核心功能 |
訊息漂移 |
|
錯誤頁面排名 |
內容內耗 |
|
Title 明顯變化 |
CTR 風險 |
週報可以包含排名變化、新增 URL、丟失 URL、主要競品、snippet 變化和內容機會。
常見解析錯誤
錯誤 1:把 displayed URL 當成 destination URL
Displayed URL 可能被縮短、格式化或簡化。應該單獨保存真正的目標 URL。
錯誤 2:忽略查詢上下文
Title 和 snippet 必須放在 query、country、language 和 device 中理解。
錯誤 3:認為 position 等於可見度
Organic position 1 不一定代表視覺上最靠前。上方可能有很多 SERP features。
錯誤 4:過度清洗 URL
刪除所有參數可能會破壞語意。有些參數控制語言、篩選條件或頁面狀態。
錯誤 5:不保存歷史資料
沒有快照,就無法解釋排名何時變化、哪個 URL 替代了它、之前展示了什麼 snippet。
結語
解析 organic results 本身不複雜,但要做好,需要穩定的方法。
Title 告訴你頁面如何被呈現。URL 告訴你哪個頁面真正排名。Snippet 告訴你搜尋引擎如何描述這個頁面。Position 告訴你它在自然搜尋列表中的可見度。
這些欄位合在一起,就是 SEO monitoring、competitor intelligence、AI agent search、content audit 和 market research 的資料基礎。
先建立乾淨 schema。保留查詢上下文。謹慎標準化 URL。保存歷史快照。最後圍繞變化做報告,而不是只看單次排名。
Organic result data 看起來像樸素的管道工程,但管道做得好,整棟搜尋情報房子才不會漏水。