安裝 @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'