天天看點

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

一、背景

SEO 應該是每個站長都會接觸到的一個環節,其中 Sitemap 就是網站 SEO 中的一環。在近期,我将網站從 Wordpress 搬到了 Typecho 上,就在做到 Sitemap 這一環時,插件安裝、啟用都沒有任何報錯,但就是在執行通路驗證時死活顯示不出來(個别主題可能會跳轉到 404 頁面,如: Handsome 主題)。

為了搞定這個 sitemap.xml 可顯示,弄到次日淩晨 4 點也沒搞定,真是一把心酸一把淚…,次日醒來,再次處理,經過分析終于找到了頭緒,并最終解決。

下面就将我的整個分析及處理過程分享給大家,希望各位Typecho站長少走彎路。

更多更全文章,請通路我的原創首發站點:www.wuqintai.com

二、環境交代

  • Typecho 版本: 最新開發版 - 版本号:6558fd5e030a950335d53038f82728b06ad6c32d
  • Typecho 主題: Handsome
  • Typecho 插件: Google Sitemap 生成器
  • 站點域名:wuqintai.com & www.wuqintai.com
  • 協 議:全站 HTTPS

三、異常現象

安裝并啟用 Sitemap 插件:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

在浏覽器位址欄通路:

http://你的網站域名/sitemap.xml

檢視 Sitemap 工作情況:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

可見什麼都沒有,一片空白…

注意:也有可能會跳轉到 404 頁面。

四、問題剖析

接下來用程式員思維走一波…

空白的頁面真的是什麼都沒有嗎?答案:不一定,也許是你要的答案已經處理好并請求到本地了,但缺少了某些東西沒有顯示出來。

如何驗證?

第一步: 在 Linux 平台,使用 curl 指令工具請求頁面,看看實際傳回的内容。

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

可見實際上是有資料的,是以從這可以判斷,上面的空白頁可能是因為浏覽器在請求

sitemap.xml

這個頁面資源時缺少了某些東西,而導緻最終沒将資料展示出來。

接下來就驗證…

第二步: 打開 Chrome 浏覽器,按 F12 進入開發者模式,定位到 Network 欄,再次觸發請求 sitemap.xml 資源:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

可見在這個請求中,共觸發擷取2個檔案,總

Status

字段可知,第一個檔案請求成功了,第二步請求失敗了。從第二個檔案字尾可知,它是一個樣式檔案,在這裡,它的作用就是将 sitemap.xml 檔案中的資料進行格式化并在浏覽器上展現出來,它的請求失敗,也就導緻了資料沒發展現出來,是以我們在浏覽器上啥也沒看到。

接着,我們可以點選 sitemap.xml 檔案,再次驗證其内容是否被擷取到:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

可見資料是有被擷取到本地的。

知道大緻問題了,那怎麼去處理呢?

因為我不是這方面的開發人員,是以浏覽器中提示的錯誤代碼及如何針對性的去處理,這個我也不太懂。

為了獲得更多的資訊,我的做法是,再開一個浏覽器(Safari),看看請求情況:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

從上述資訊可知,在

sitemap.xml

檔案中嵌套了一個

sitemap.xls

的請求,而這個請求在實際中失敗了,Safari 給出了失敗的原因,大緻意思是:加載

sitemap.xls

檔案失敗,要求請求的 域名、協定、端口等資訊 需與

sitemap.xml

的一緻。

知道錯誤原因後,回過來排查一下,其實不難發現,兩個檔案在請求 url 上确實是存在差異的,如下:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

接下來就是嘗試解決問題了,既然是URL不一樣,那我給請求

sitemap.xml

補充一個

www.

不就行了嗎,說幹就幹,來看看效果:

解決Typecho站點Sitemap插件不可用問題一、背景二、環境交代三、異常現象四、問題剖析五、問題解決六、小結

可見問題已解決。

注意:這個

www.

需要根據你實際情況調整,如果你用的是其它二級域名,請根據實際情況調整(測試:使用二級域名不存在這個問題)。

五、問題解決

知道問題所在了,接下來解決就好辦了,方法有如下幾種:

**第一種:**直接使用帶

www.

方式通路,在各大搜尋引擎上送出時,直接送出正确、可通路的、帶

www.

的 sitemap.xml 連結即可!

**第二種:**修改背景站點位址, 操作:

設定

-->

基本

-->

站點位址

,修改為不帶

www.

的連結。

**第三種:**在 Nginx 中設定,将所有請求從定向到帶

www

的域名上。(過程稍複雜,操作略)

**第四種:**到 Sitemap 目錄下找到 sitemap.xls 檔案,将上述請求的 url 代碼屏蔽,直接忽略格式化。(畢竟這是給搜尋蜘蛛看的,隻要蜘蛛能了解就行,平時我們很少看。)

**第五種:**Bug修複,如果你是大神,請直接修複這個問題,萬分感謝!

六、小結

排查和修改故障的過程是痛苦的,特别是什麼都不懂的情況下。如果排查了很久也無果,請停下來,休息一下,說不定下次歸來就有頭緒,問題就迎刃而解了呢…

關于這個問題,個人猜測如果你使用的是二級域名,在使用Sitemap這個插件時,應該不會有這個問題,但實際還待驗證。本人就驗證了,如果你恰巧是這種情況,可在評論區送出你的使用。

好了,就這樣吧,不逼逼了,累…

最後提醒:教程請勿生搬,應結合實際情況,适當調整。

繼續閱讀