cirry

cirry

我的原生博客地址:https://cirry.cn

基於Astro框架的部落格網站新增Sitemap

安裝 @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,這就是網站地圖文件,提交給搜索引擎收錄即可。

添加百度驗證#

說明:網站地圖的收錄都需要進行站點驗證。在百度搜索資源平台中添加自己的網站,驗證流程參考這裡站點驗證圖文詳解

image

勾選適合的站點屬性。

image

選擇文件驗證,下載驗證文件,放入網站的根目錄即可。

打包部署之後,點擊驗證文件可以正常訪問即可。

添加百度收錄#

百度資源搜索平台 - 普通收錄中的普通收錄中填寫網站的 sitemap 地址就可以了。

image

添加谷歌驗證#

參考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

返回的頁面如下:

image

點擊頁面上的鏈接http://www.google.com/webmasters/tools/,跳轉到谷歌Google Search Console

image

輸入網站,驗證網站

驗證成功後,會彈出讓你添加驗證方法

可以選擇下圖的方法:下載 html 文件,添加到網站的根目錄下:

image

或者選擇將下述請求頭添加到網站的 head 中:

image

添加之後,在Google Search Console重新驗證,看到下圖表示添加完成。

image

添加谷歌收錄#

Google Search Console中的站點地圖中填寫網站的 sitemap 地址就可以了。

image

遇到的問題#

正常操作完成之後,在百度搜索資源平台檢測一下網站的Robots抓取診斷是否可以正常使用。

我在百度的普通收錄中添加了網站的 sitemap,發現被百度收錄失敗了。

image

在抓取診斷中,** 遇到了診斷報錯提示,提示 robots 封鎖,** 我就去xml-sitemaps測試一下看能不能掃描到我的網站。

發現這個網站也檢測不到,那就是爬蟲協議限制了,我就修改了一下我的爬蟲協議,修改之後的 robots.txt 如下:

User-agent: *
Allow: /
Sitemap: https://cirry.cn/sitemap-0.xml

修改完成後,記得在診斷報錯的圖中點一下報錯,上報報錯提示給百度。

image

image

過幾分鐘後,重新去xml-sitemaps上爬取成功了。在百度上重新提交一下也可以正常收錄了。

注意:百度不允許索引型 sitemap,所以@astro/sitemap打包生成的兩個 sitemap 文件sitemap-0.xmlsitemap-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'
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。