你的網站需要全身健檢!初探Google URL Inspection API

更新於 發佈於 閱讀時間約 10 分鐘

2022年1月31日,Google搜尋中心發表新的API,叫URL Inspection API,讓開發人員可以批次健檢自家網站的網址,及時確認索引狀態,並進行偵錯與處理。

什麼樣的網站適合?

  • 每天都會生成千百個網址
  • 想針對大量網址做健檢
  • 相當重視即時搜尋成效
  • 想優化網站SEO

URL檢查工具是什麼?

當你發布一個網址,想確認Google大神有沒有注意到你的內容時,可以把這個網址丟進去查看,如果顯示勾勾,就代表祂已讀了,有人搜尋相關關鍵字時,你的網頁就會有效出現在搜尋結果中。

這支API還可以查出什麼資訊?

  • Google爬到的內容有哪些?
  • 檢索時間、檢索狀態、網頁擷取狀態
  • Google選到的標準網址是什麼?
  • 網頁是否適合用行動裝置瀏覽?
  • AMP網頁是否有效?
  • Google抓到的結構化資料長怎樣?
  • robots.txt 是否封鎖該頁面?
raw-image

但網址一個一個輸入太麻煩,加上我們時刻都會發布新報導,需要立即被檢索,此時這支API就大量、即時地呈現Google的檢索狀態。

串接步驟

我們這次是使用Python來串的!

1. 權杖設定

前往Google Cloud Platform建立專案,點選「啟用API和服務」並導入Google Search Console API。關於管理API金鑰,詳細中文資源可參考:JumpingCode 資料科學手記

這塊最麻煩的地方是要申請服務帳戶,以及OAth 2.0用戶端ID(Client ID),把服務帳戶的權限改為「完整」或「擁有者」,並新增金鑰,你會得到一個json檔,包含以下資料:(注意不可以外流)

raw-image

2. 安裝Python套件

串接API必要套件

  • pip3 install --upgrade google-auth
  • pip3 install google-api-python-client==1.12.10
  • pip3 install requests

完成後就可以開始寫code串接哩!

1. 在資料夾中放入上述json檔,並新增一個py檔

from google.oauth2 import service_account
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build

2. 設定權杖

creds = 'key.json' #此處填入你的json檔名
scopes = ['https://www.googleapis.com/auth/webmasters',
'https://www.googleapis.com/auth/webmasters.readonly']

credentials = service_account.Credentials.from_service_account_file(creds, scopes=scopes)
service = build('searchconsole','v1', credentials=credentials)

3. 告訴API你要哪些資料,他就會回傳相對應的INSPECTION資料

#inspectionUrl = 你想檢索的網址;siteUrl = 主網站

request = {
'inspectionUrl': 'https://www.cna.com.tw/news/afe/202203170150.aspx',
'siteUrl': 'https://www.cna.com.tw/'
}

response = service.urlInspection().index().inspect(body=request).execute()
inspectionResult = response['inspectionResult']
print(inspectionResult)

測試沒問題後,就可以寫迴圈,抓你需要的資料嚕!

串接注意事項

  • 配額限制 每天 2,000 個查詢 每分鐘 600 個查詢
  • HTTP Error 500 批量呼叫API時,爬蟲不定期出現這則訊息並終止運作:
googleapiclient.errors.HttpError: <HttpError 500 when requesting https://searchconsole.googleapis.com/v1/urlInspection/index:inspect?alt=json returned "Internal error encountered.". Details: "Internal error encountered.">

意思是因為Google內部錯誤,它無法吐回我們請求的資料。我們就此問題到Search Console Community尋求協助,專家的回覆是:

我們難以避免這個問題,API閘道系統背後有約1000台伺服器在處理各種請求,若有其中1台出現問題,便會回傳Error 500,但下一次你送出請求時會送到其他伺服器,回傳有效的資料。

也就是說這樣的錯誤是隨機的,我們可以過幾秒再發送同樣的請求。後來我們用try else語法讓爬蟲偵測處理Error部分,待下次爬取時這個網址八成就會出現inspection結果了。

實驗發現

URL檢查工具在Crawled與Indexed相關的狀態,改變速度跟不上實際上的索引結果

年初時,我們初次實驗中我們蒐集到的索引狀態變化如下表,照定義以為要出現Indexed, not submitted in sitemapSubmitted and indexed,才有被索引,但實際用site:的方式去找,在Discovered的時候,已可找到該網頁,從sitemap發布網址後到被google索引的時間約2分鐘左右。

不過要特別注意URL is unknown to Google、Duplicate, submitted URL not selected as canonical這兩種狀態,因為前者代表真的是沒被Google建索引 更多狀態說明可以參考search console的指引:https://support.google.com/webmasters/answer/9012289?hl=zh-Hant

raw-image

BUT!最近發現到就算出現了Indexed, not submitted in sitemap、Submitted and indexed這兩個狀態,“也不能保證已經被google索引了”,因此大家可能還是先用site:的方式去確認,哪個狀態下自己的網站已經是被索引會比較保險!

不變的是,Inspection呈現被索引的狀態,基本上是會比實際被索引的時間還要晚一些。

更新時間與爬蟲檢索頻率沒有絕對關係,且回報的檢索時間有問題

raw-image

文章更新次數可能會影響爬蟲檢索次數,但也有更新多次沒被多次檢索的。

不過這次實驗沒有控制每筆資料查詢次數,且中間有修改過程式而暫停查詢、取消5分鐘休息時間等等,這些變因可能也影響資料完整。

另外,發現google提供的最後爬取時間,有反覆出現的狀況,資料可信度待議。



重複內容無法完全用canonical來避免

由於網站架構配置,有時會發布不同網址的重複內容,因應方式是改掉原網址的canonical換成新的網址,同時sitemap也會撤下原網址,放上新網址。

但事實上google已收錄過原網址,在檢索的過程中會判斷新網址為重複內容(Duplicate, submitted URL not selected as canonical),此時的canonical尚未發生作用,最後可能是爬蟲爬了原網址,接收到canonical訊息後,也把新的網址給收進去了。

但這讓我們反思,中間出現重複內容的狀態,是否會影響到網站評分?

為什麼無法完全以canonical設定來避免呢?google的John在 #AskGoogleWebmasters 節目裡曾說過canonical選擇的標準包含:

  • Canonical宣告網址
  • 轉址網址
  • 內部連結
  • sitemap裡面的URL
  • 有Https的URL
  • 網址結構比較好的URL
raw-image

完整內容請看:Canonical URLs: How Does Google Pick the One? #AskGoogleWebmasters

抓下來的資料除了用spreadsheet整理,也有人開了data studio的模板來把數據視覺化,比較好看,但這個是以Screaming Frog輸出的資料來設計的,如果是直接用api抓可能需要調一下格式!

以上大概就是我們實(ㄨㄢˊ)驗(ㄕㄨㄚˇ)的過程與發現。當時碰上PM要做某功能的SEO成效測試,加上可以增進編輯的寫Code技能,就進行了這套實驗,最後也成功幫網站抓出一些陳年老Bug。

根據Inspection API提供的結果,大家可以更好地研擬適合自家網站的SEO優化策略,如果你使用完有什麼新發現,也歡迎留言和我們分享!

參考資源

留言
avatar-img
留言分享你的想法!
avatar-img
中央社媒體實驗室的沙龍
6會員
1內容數
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
教你如何榮登搜尋引擎排名 第步新增資源網址(就是網誌的網址) 第二步網址審查 第三部要求建立索引 漫遊器設定也一併做優化會更好 Ps提交索引之後要等至少一星期左右蜘蛛爬蟲才會自動將你的網址加入搜尋索引 最快可能一天就好了 Ps設定在左側欄
Thumbnail
教你如何榮登搜尋引擎排名 第步新增資源網址(就是網誌的網址) 第二步網址審查 第三部要求建立索引 漫遊器設定也一併做優化會更好 Ps提交索引之後要等至少一星期左右蜘蛛爬蟲才會自動將你的網址加入搜尋索引 最快可能一天就好了 Ps設定在左側欄
Thumbnail
數位行銷的方式有許多種,除了廣告投放、社群行銷、網紅行銷外,也有越多越來服務業品牌,開始透過 SEO(搜尋引擎優化)來經營內容,以獲得更多搜尋流量。而就長遠經營的角度來看,不僅所需成本降低,在透過不斷的累積內容及優化關鍵字的情況下,內容行銷絕對是每個企業品牌獲得流量的重要利器,更是能勝出潛在競爭對手
Thumbnail
數位行銷的方式有許多種,除了廣告投放、社群行銷、網紅行銷外,也有越多越來服務業品牌,開始透過 SEO(搜尋引擎優化)來經營內容,以獲得更多搜尋流量。而就長遠經營的角度來看,不僅所需成本降低,在透過不斷的累積內容及優化關鍵字的情況下,內容行銷絕對是每個企業品牌獲得流量的重要利器,更是能勝出潛在競爭對手
Thumbnail
Google年初推出的Inspection API,讓我們更容易知道網站被索引的狀況。這篇文章會告訴你,我們怎麼用這支API、發現了什麼。
Thumbnail
Google年初推出的Inspection API,讓我們更容易知道網站被索引的狀況。這篇文章會告訴你,我們怎麼用這支API、發現了什麼。
Thumbnail
之前看過這個可以用來了解SEO的成效分析,像是點擊率、平均排名..等,看別人是透過什麼樣的關鍵字進入到你的網頁中。透過調整網站結構以及撰寫的方式,或許未來會改善搜尋進入到網站的機會。
Thumbnail
之前看過這個可以用來了解SEO的成效分析,像是點擊率、平均排名..等,看別人是透過什麼樣的關鍵字進入到你的網頁中。透過調整網站結構以及撰寫的方式,或許未來會改善搜尋進入到網站的機會。
Thumbnail
找到是 discover、檢索是 crawl、索引是 index,後兩者雖然都有「索」,但此索非彼索…,本文一次搞清楚他們的含義。
Thumbnail
找到是 discover、檢索是 crawl、索引是 index,後兩者雖然都有「索」,但此索非彼索…,本文一次搞清楚他們的含義。
Thumbnail
Google Search Console是甚麼?  這是一個檢視網頁是否能在Google索引的到的工具,把你的網址貼到網頁內,它會告訴你這個網頁是否能夠讓使用者搜尋到。其實大多數的網頁都不容易被搜尋到,有可能是內容的關係導致分數過低,也有可能設定上的錯誤,
Thumbnail
Google Search Console是甚麼?  這是一個檢視網頁是否能在Google索引的到的工具,把你的網址貼到網頁內,它會告訴你這個網頁是否能夠讓使用者搜尋到。其實大多數的網頁都不容易被搜尋到,有可能是內容的關係導致分數過低,也有可能設定上的錯誤,
Thumbnail
要讓顧客在 Google 可以搜尋到自己的網站,透過 Google Search Console 的 sitemap 提交功能,就可以主動把自己的網站提交哦!
Thumbnail
要讓顧客在 Google 可以搜尋到自己的網站,透過 Google Search Console 的 sitemap 提交功能,就可以主動把自己的網站提交哦!
Thumbnail
什麼是關鍵字研究? 如何選擇關鍵字 ?研究:SEO 項目的研究階段,您可以在其中確定訪問者如何搜索並將這些關鍵字作為 SEO 項目的排名和流量目標。它包括頭腦風暴、競爭對手分析、分析和工具研究,以構建可行的 SEO 項目的綜合列表。它通常是第一個也是最重要的搜索引擎優化步驟。
Thumbnail
什麼是關鍵字研究? 如何選擇關鍵字 ?研究:SEO 項目的研究階段,您可以在其中確定訪問者如何搜索並將這些關鍵字作為 SEO 項目的排名和流量目標。它包括頭腦風暴、競爭對手分析、分析和工具研究,以構建可行的 SEO 項目的綜合列表。它通常是第一個也是最重要的搜索引擎優化步驟。
Thumbnail
由於重新架了一個新網站,流量全掉,SEO 什麼的全部重來😞 既然如此,我就一邊重弄一編寫教學文吧!(握拳) 今天我會介紹一個最基本的工具:Google Search Console。 這是一個 Google 提供的免費網站 SEO 工具,讓使用者可以提交自己的網站給 Google 搜尋引擎做檢索,
Thumbnail
由於重新架了一個新網站,流量全掉,SEO 什麼的全部重來😞 既然如此,我就一邊重弄一編寫教學文吧!(握拳) 今天我會介紹一個最基本的工具:Google Search Console。 這是一個 Google 提供的免費網站 SEO 工具,讓使用者可以提交自己的網站給 Google 搜尋引擎做檢索,
Thumbnail
以瀏覽www.google.com為例,瀏覽器需先找到www.google.com對應的ip地址,才能得到網頁資料,顯示在瀏覽器中。 那要如何才能找到ip呢? 這邊就要提到DNS(Domain Name System),他是一個資料庫,裡面紀錄了域名跟IP的對應,瀏覽器透過DNS可以找到IP。
Thumbnail
以瀏覽www.google.com為例,瀏覽器需先找到www.google.com對應的ip地址,才能得到網頁資料,顯示在瀏覽器中。 那要如何才能找到ip呢? 這邊就要提到DNS(Domain Name System),他是一個資料庫,裡面紀錄了域名跟IP的對應,瀏覽器透過DNS可以找到IP。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News