安裝 @astro/sitemap#
首先,在 Astro 下安裝官方的 Sitemap 套件:
# 使用NPM
npx astro add sitemap
# 使用Yarn
yarn astro add sitemap
# 使用PNPM
pnpm astro add sitemap
按下 y 並按下 Enter,Astro 會自動修改您的設定檔astro.config.mjs
以新增 Sitemap 打包功能。
請確認一下您的設定檔,如果檔案中有以下程式碼,則表示設定成功,如果沒有,請自行新增:
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
// ...
integrations: [sitemap()],
})
完成設定後,進行打包,在根目錄中會生成一個sitemap-0.xml
檔案,這就是網站地圖檔案,只需提交給搜索引擎進行收錄即可。
添加百度驗證#
說明:網站地圖的收錄都需要進行站點驗證。在百度搜索資源平台中添加您的網站,驗證流程請參考這裡的站點驗證圖文詳解。
選擇適合的站點屬性。
選擇文件驗證,下載驗證文件,放入網站的根目錄即可。
完成打包部署後,點擊驗證文件,確認能正常訪問即可。
添加百度收錄#
在百度資源搜索平台 - 普通收錄中的普通收錄中填寫網站的 Sitemap 地址即可。
添加谷歌驗證#
請參考Google 搜索中心文件地址。
提交網站地圖的方法:在瀏覽器或命令行中向以下地址發送 GET 請求,並指定網站地圖的完整網址。請確保網站地圖檔案可供訪問:
https://www.google.com/ping?sitemap=FULL_URL_OF_SITEMAP # FULL_URL_OF_SITEMAP: 網站地圖檔案位置
例如,在瀏覽器中直接輸入以下連結進行訪問:
https://www.google.com/ping?sitemap=https://cirry.cn/sitemap-0.xml
返回的頁面如下:
點擊頁面上的連結http://www.google.com/webmasters/tools/,跳轉到 Google 的Search Console
輸入網站,驗證網站
驗證成功後,會彈出讓您添加驗證方法的視窗
您可以選擇下圖的方法:下載 HTML 檔案,並添加到網站的根目錄中:
或者選擇將以下請求標頭添加到網站的 head 中:
添加完成後,重新在Google Search Console進行驗證,如果看到下圖,表示添加完成。
添加谷歌收錄#
在Google Search Console中的站點地圖中填寫網站的 Sitemap 地址即可。
遇到的問題#
正常操作完成後,請在百度搜索資源平台檢測一下網站的Robots和抓取診斷是否可以正常使用。
我在百度的普通收錄中添加了網站的 Sitemap 後,發現被百度收錄失敗了。
在抓取診斷中,遇到了診斷報錯提示,提示 robots 封鎖,於是我去xml-sitemaps測試一下看能否掃描到我的網站。
結果發現這個網站也無法檢測到,這可能是由於爬蟲協議的限制,於是我修改了一下我的爬蟲協議,修改後的 robots.txt 如下:
User-agent: *
Allow: /
Sitemap: https://cirry.cn/sitemap-0.xml
修改完成後,請記得在診斷報錯的圖片上點擊報錯,將報錯提示提交給百度。
過幾分鐘後,重新去xml-sitemaps上爬取成功了。在百度上重新提交一下,就可以正常收錄了。
注意:百度不允許索引型的 Sitemap,因此@astro/sitemap
打包生成的兩個 Sitemap 檔案sitemap-0.xml
和sitemap-index.xml
,我們不要將sitemap-index.xml
寫入 robots.txt 檔案中,否則百度還是會提示 Robots 封鎖,導致無法爬取信息。
如果您遇到其他問題,可以參考抓取診斷工具常見錯誤類型解析。
您可以使用以下命令檢查是否被 robots 封鎖或 IP 解析錯誤,如果返回 http 200,則表示正常,其他情況則表示異常,請記得將最後的網站連結替換為您自己的網站。
curl --head --user-agent 'Mozilla/5.0 (compatible; Baiduspider/2.0; +<http://www.baidu.com/search/spider.html)>' --request GET 'https://cirry.cn'