Google 產品使用的常見爬蟲檢索器及其 IP 範圍

隨著網際網路的快速發展,搜尋引擎已成為人們獲取資訊的核心工具。作為全球領先的搜尋引擎,Google 透過多種檢索器(Crawler,又稱爬蟲)來爬取網頁、索引內容並為其眾多產品與服務提供支援。

這些檢索器不僅限於大家熟知的 Googlebot,還包括針對圖片、新聞、影片、廣告等特定用途的爬蟲。為了讓網站管理員(站長)更好地管理這些爬蟲的存取行為,並確保網站安全,了解 Google 檢索器的運作方式及其 IP 範圍至關重要。

本文將詳細介紹 Google 常見檢索器的功能、IP 範圍的獲取與驗證方法,以及如何設定網站規則以有效管理這些爬蟲。

一、Google 檢索器概述

Google 檢索器是一種自動化程式,負責訪問網頁、收集資料並將其索引至 Google 的資料庫,以支援搜尋引擎、廣告系統及其他服務。Googlebot 是最知名的檢索器,負責為 Google 搜尋引擎建立網頁索引。然而,Google 還有其他專用爬蟲,針對不同產品執行特定任務,例如圖片搜尋、Google 新聞、影片索引及廣告檢查等。

這些檢索器通常透過特定的 User-Agent 標頭來標識自己,網站伺服器可以根據這些標頭識別爬蟲類型並決定是否允許其存取。此外,Google 的爬蟲使用來自其自治系統號碼(ASN:AS15169)的 IP 位址,這使得站長可以透過 IP 範圍來管理爬蟲行為。

二、Google 檢索器的 IP 範圍

Google 的檢索器使用特定的 IP 範圍進行網頁爬取,這些 IP 範圍主要屬於 Google 的 AS15169。需要注意的是,這些 IP 範圍可能會隨著時間變動,因此站長應定期檢查以確保存取規則的正確性。

1. 如何獲取最新的 Google 檢索器 IP 範圍?

Google 提供了一個官方的 JSON 格式清單,包含所有檢索器的最新 IP 範圍。站長可以透過以下步驟獲取資料:

1. 訪問官方 googlebot.json 下載 JSON 檔案。

2. 解析 JSON 內容:JSON 檔案包含 Googlebot 及其他爬蟲的 IPv4 和 IPv6 範圍。範例結構如下:

{
  "syncToken": "1699574526355",
  "creationTime": "2023-11-09T14:42:06.355Z",
  "prefixes": [
    { "ipv4Prefix": "64.233.160.0/19" },
    { "ipv4Prefix": "66.249.64.0/19" },
    { "ipv6Prefix": "2001:4860:4801::/48" }
  ]
}
  • syncToken:用於追蹤清單的更新版本。
  • creationTime:清單的生成時間。
  • prefixes:列出 IPv4 和 IPv6 的範圍。

站長可以定期下載並解析此檔案,將最新的 IP 範圍應用於防火牆或存取規則中。

2. 動態更新與自動化

由於 IP 範圍可能不定期變動,手動更新可能會增加管理負擔。為此,站長可以開發腳本來自動化以下流程:

  • 定期從 Google 的 JSON 網址下載資料。
  • 解析 JSON 並提取最新的 IP 範圍。
  • 更新防火牆或伺服器規則以反映新的 IP 清單。

例如,使用 Python 的 requests 套件可以輕鬆實現這一流程:

import requests
import json

url = "https://developers.google.com/search/apis/ipranges/googlebot.json"
response = requests.get(url)
ip_ranges = json.loads(response.text)
for prefix in ip_ranges["prefixes"]:
    print(prefix.get("ipv4Prefix", prefix.get("ipv6Prefix")))

三、Google 產品常見檢索器

Google 的檢索器針對不同產品和服務進行專門化設計,每種爬蟲都有特定的 User-Agent 標頭和用途。以下是常見的 Google 檢索器及其功能:

爬蟲名稱User-Agent 標頭用途
GooglebotGooglebot為 Google 搜尋引擎索引網頁內容
Googlebot-ImageGooglebot-Image抓取圖片以支援 Google 圖片搜尋
Googlebot-NewsGooglebot-News為 Google 新聞服務索引新聞內容
Googlebot-VideoGooglebot-Video抓取影片內容以支援 Google 影片搜尋
AdsBot-GoogleAdsBot-Google檢查 Google Ads 廣告的目標網頁品質
Google-AdsenseMediapartners-Google為 AdSense 分析網頁內容
Google-FaviconGooglebot-Favicon抓取網站的 Favicon 圖標
Google-AMPHTMLGoogle-AMPHTML檢索 AMP(加速行動頁面)內容

這些爬蟲的行為和存取頻率可能有所不同。例如,Googlebot 通常會頻繁爬取網站的主要內容,而 Google-Favicon 僅在需要更新網站圖標時訪問。

四、驗證 Google 爬蟲的真偽

由於惡意程式可能偽裝成 Googlebot,站長需要驗證訪客 IP 是否真正來自 Google。Google 推薦使用 DNS 反查(Reverse DNS Lookup) 來確認爬蟲的真偽。以下是具體步驟:

1. 取得訪客 IP

假設網站日誌顯示一個 IP 位址(例如 66.249.66.1)正在訪問網站。

2. 執行 DNS 反查

使用終端機或指令列工具執行反查:

nslookup 66.249.66.1

預期結果應返回類似以下內容:

Name: crawl-66-249-66-1.googlebot.com
Address: 66.249.66.1

如果反查結果的網域名稱包含 .googlebot.com 或 .google.com,則該 IP 很可能來自 Google。

3. 執行正查以防止 DNS 偽造

為確保結果可靠,進一步執行正查以確認網域名稱是否對應原始 IP:

nslookup crawl-66-249-66-1.googlebot.com

如果正查返回的 IP 與原始 IP(66.249.66.1)一致,則可確認該 IP 為真實的 Google 爬蟲。

4. 自動化驗證

對於高流量的網站,手動驗證每個 IP 可能不切實際。站長可以使用程式自動執行 DNS 反查和正查,例如:

import socket

ip = "66.249.66.1"
# 反查
hostname = socket.gethostbyaddr(ip)[0]
if "googlebot.com" in hostname or "google.com" in hostname:
    # 正查
    resolved_ip = socket.gethostbyname(hostname)
    if resolved_ip == ip:
        print(f"{ip} 是真實的 Google 爬蟲")
    else:
        print(f"{ip} 可能被偽造")
else:
    print(f"{ip} 不是 Google 爬蟲")

五、如何管理 Google 爬蟲的存取?

為了優化網站效能、保護敏感資料或控制爬蟲行為,站長可以透過以下方式管理 Google 爬蟲:

1. 使用 `robots.txt` 限制爬蟲行為

robots.txt 是位於網站根目錄的檔案,用於指示爬蟲哪些頁面可以存取。例如,若希望 Googlebot 只爬取公開內容而避免訪問私人目錄,可以設定如下:

User-agent: Googlebot
Disallow: /private/
Allow: /public/

這將禁止 Googlebot 訪問 /private/ 目錄,但允許其爬取 /public/ 目錄。若要對所有 Google 爬蟲應用相同規則,可使用通配符:

User-agent: *
Disallow: /private/

2. 設定防火牆規則

防火牆可以用於限制特定 IP 範圍的存取,確保只有 Google 的爬蟲可以訪問網站資源。以下是一些常見的防火牆設定方式:

Cloudflare:在 Cloudflare 的「防火牆規則」中,創建一條規則,僅允許來自 AS15169 的 IP 存取特定資源。例如:

Field: ASN
Operator: equals
Value: AS15169
Action: Allow

iptables(Linux 伺服器):使用 iptables 設定允許特定 IP 範圍的規則:

iptables -A INPUT -s 66.249.64.0/19 -j ACCEPT
iptables -A INPUT -s 64.233.160.0/19 -j ACCEPT
iptables -A INPUT -j DROP

上述規則允許來自指定 Google IP 範圍的流量,並拒絕其他來源的流量。

3. 限制爬蟲頻率

過高的爬蟲頻率可能導致伺服器負載過重。Google 允許站長透過 Google Search Console 調整 Googlebot 的爬取速率:

  1. 登入 Google Search Console。
  2. 選擇「設定」>「爬取速率設定」。
  3. 調整爬取頻率(僅在必要時使用,因為過低的頻率可能影響索引效率)。

六、常見問題與注意事項

為什麼需要定期更新 IP 範圍?

Google 的 IP 範圍可能因基礎設施變更而更新。若站長使用過時的 IP 清單,可能會錯誤地封鎖合法爬蟲或允許偽造爬蟲存取。

如何處理假冒 Googlebot 的惡意爬蟲?

除了 DNS 反查外,站長還可以監控異常的爬蟲行為(例如過高的請求頻率或訪問受限區域),並使用防火牆或 WAF(Web 應用防火牆)封鎖可疑 IP。

Googlebot 是否會遵守 robots.txt?

合法的 Googlebot 會嚴格遵守 robots.txt 的指令,但偽造爬蟲可能無視這些規則,因此 IP 驗證和防火牆設定尤為重要。

IPv6 範圍是否需要特別注意?

隨著 IPv6 的普及,Google 的爬蟲越來越多使用 IPv6 位址。站長應確保防火牆和伺服器規則同時支援 IPv4 和 IPv6。

七、結論

Google 的檢索器是其搜尋引擎和相關產品的核心組成部分,透過特定的 IP 範圍和 User-Agent 標頭執行網頁爬取與內容分析。為了有效管理這些爬蟲,站長需要:

  1. 定期從 Google 官方 JSON 清單獲取最新的 IP 範圍。
  2. 使用 DNS 反查驗證爬蟲的真偽,防止假冒爬蟲的干擾。
  3. 透過 robots.txt 和防火牆規則精確控制爬蟲的存取行為。

這些措施不僅能確保網站內容被正確索引,還能提升網站的安全性和效能。隨著 Google 基礎設施的不斷演進,站長應保持對爬蟲技術的關注,並靈活調整管理策略,以 站長工具,以適應未來的挑戰。

參考資料

  1. Google 官方文件:Verifying Googlebot
  2. Google Search Console 說明
  3. Cloudflare 防火牆規則設定指南

以實際行動支持獨立新聞媒體

article information

分享你的想法

訂閱電子報

每週生活旅遊情報與科技資訊電子新知


    留言

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

    搜尋更多