一、背景
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 插件:

在浏覽器位址欄通路:
http://你的網站域名/sitemap.xml
檢視 Sitemap 工作情況:
可見什麼都沒有,一片空白…
注意:也有可能會跳轉到 404 頁面。
四、問題剖析
接下來用程式員思維走一波…
空白的頁面真的是什麼都沒有嗎?答案:不一定,也許是你要的答案已經處理好并請求到本地了,但缺少了某些東西沒有顯示出來。
如何驗證?
第一步: 在 Linux 平台,使用 curl 指令工具請求頁面,看看實際傳回的内容。
可見實際上是有資料的,是以從這可以判斷,上面的空白頁可能是因為浏覽器在請求
sitemap.xml
這個頁面資源時缺少了某些東西,而導緻最終沒将資料展示出來。
接下來就驗證…
第二步: 打開 Chrome 浏覽器,按 F12 進入開發者模式,定位到 Network 欄,再次觸發請求 sitemap.xml 資源:
可見在這個請求中,共觸發擷取2個檔案,總
Status
字段可知,第一個檔案請求成功了,第二步請求失敗了。從第二個檔案字尾可知,它是一個樣式檔案,在這裡,它的作用就是将 sitemap.xml 檔案中的資料進行格式化并在浏覽器上展現出來,它的請求失敗,也就導緻了資料沒發展現出來,是以我們在浏覽器上啥也沒看到。
接着,我們可以點選 sitemap.xml 檔案,再次驗證其内容是否被擷取到:
可見資料是有被擷取到本地的。
知道大緻問題了,那怎麼去處理呢?
因為我不是這方面的開發人員,是以浏覽器中提示的錯誤代碼及如何針對性的去處理,這個我也不太懂。
為了獲得更多的資訊,我的做法是,再開一個浏覽器(Safari),看看請求情況:
從上述資訊可知,在
sitemap.xml
檔案中嵌套了一個
sitemap.xls
的請求,而這個請求在實際中失敗了,Safari 給出了失敗的原因,大緻意思是:加載
sitemap.xls
檔案失敗,要求請求的 域名、協定、端口等資訊 需與
sitemap.xml
的一緻。
知道錯誤原因後,回過來排查一下,其實不難發現,兩個檔案在請求 url 上确實是存在差異的,如下:
接下來就是嘗試解決問題了,既然是URL不一樣,那我給請求
sitemap.xml
補充一個
www.
不就行了嗎,說幹就幹,來看看效果:
可見問題已解決。
注意:這個 www.
需要根據你實際情況調整,如果你用的是其它二級域名,請根據實際情況調整(測試:使用二級域名不存在這個問題)。
五、問題解決
知道問題所在了,接下來解決就好辦了,方法有如下幾種:
**第一種:**直接使用帶
www.
方式通路,在各大搜尋引擎上送出時,直接送出正确、可通路的、帶
www.
的 sitemap.xml 連結即可!
**第二種:**修改背景站點位址, 操作:
設定
-->
基本
-->
站點位址
,修改為不帶
www.
的連結。
**第三種:**在 Nginx 中設定,将所有請求從定向到帶
www
的域名上。(過程稍複雜,操作略)
**第四種:**到 Sitemap 目錄下找到 sitemap.xls 檔案,将上述請求的 url 代碼屏蔽,直接忽略格式化。(畢竟這是給搜尋蜘蛛看的,隻要蜘蛛能了解就行,平時我們很少看。)
**第五種:**Bug修複,如果你是大神,請直接修複這個問題,萬分感謝!
六、小結
排查和修改故障的過程是痛苦的,特别是什麼都不懂的情況下。如果排查了很久也無果,請停下來,休息一下,說不定下次歸來就有頭緒,問題就迎刃而解了呢…
關于這個問題,個人猜測如果你使用的是二級域名,在使用Sitemap這個插件時,應該不會有這個問題,但實際還待驗證。本人就驗證了,如果你恰巧是這種情況,可在評論區送出你的使用。
好了,就這樣吧,不逼逼了,累…
最後提醒:教程請勿生搬,應結合實際情況,适當調整。