Sitemap

在任何的SEO教程或是文章書籍中,一定都會告訴站長們:想要做好SEO,就要提交網站地圖(Sitemap)給搜索引擎。然後就會丟幾個免費建立網站地圖(Sitemap)的網站,就沒了(似乎也包括我自己)。於是大家就矇著頭,也不知道怎麼做才是對的,每個人都說有提交,但是似乎就是成效看不到,WHY?因為Sitemap不是用程式跑完就好了,這背後也是有策略規劃的。


依內容屬性不同建置不同的Sitemap

Sitemap 其實有很多種類型,只要是符合Sitemap 0.90規範的,都可以稱之為Sitemap 網站地圖,其中常見的有::
  1. sitemap.xml(最普遍的格式)
  2. 正確編譯的rss.xml或是atom.xml
  3. 純文字檔(urllist.txt)
我先前在上課的時候就常跟同學說:『所謂Sitemap就像是真實的地圖,你到一個陌生的城市,你要嘛就是買個紙本地圖,要嘛就是打開手機或是GPS。但是我們都知道,紙本地圖雖然大體上來說是固定不變的,但是有些新路或是新開的店,這種可能會更新的資訊,還是透過Google Map或是可以更新圖資的GPS會比較妥當一點。』

能夠記住這段話,就是了解到提交Sitemap的主要精神了。所以我們可以知道

不會動的,編成sitemap.xml,會動的,用rss.xml提交

Sitemap 的重要概念 

另外要知道一個概念,Sitemap 的提交主要的目的,是要避免搜索引擎的爬蟲沒有完整的收錄整個網頁的內容,所以提交Sitemap是能夠補足搜索引擎的不足,進而加速網頁的收錄速度,達到搜尋引擎友好的目的。

所以,在建置網站地圖前你必須先區分好網站架構及各頁面的屬性,來決定該怎麼去編制你的網站地圖。大體而言,首先要先將網站的樹狀圖畫出來,將各頁面的重要性(priority)及更新頻率(changefreq)決定好,依此去編寫成基本的Sitemap.xml;然後將可能常更新或是會新增東西的頁面(如:news.php、goods.php),以RSS Feed的格式呈現。在提交時,將兩種格式的Sitemap都進行提交,這樣未來不論新增什麼內容或產品,就都能確保搜索引擎可以透過Sitemap來正確的收錄。

如何寫出正確的Sitemap.xml及rss.xml架構 ,在sitemaps.org中其實已經有告訴你了,我想我在這邊就不累述了。所以如果你是用部落格當做你的官網來用,其實你就直接使用部落格所提供的rss來當做你的網站地圖來提交;其他的CMS,像是WordPress也都有相關套件可以協助自動生成Sitemap並提交;那如果你只是一個商業網站,就編製好你的Sitemap.xml,去做提交吧!

記住,不會動的,編成sitemap.xml,會動的,用rss提交。

實際成效

先前的一個客戶就是苦思於為什麼搜尋效益很差,經過分析發現,除了網址格式的問題之外,另外就是Sitemap策略錯誤的問題。於是就如同前面所言的策略,我請他們將常大量新增的頁面,編成rss格式提交。在經過網址格式的更新以及Sitemap的提交之後,這半年來收錄的成效如下圖:


我相信,到這邊你的Sitemap概念應該跟過去不太一樣了,快去製作你的Sitemap並提交吧!

這個網誌中的熱門文章

Runtime problems in TestNG asserts2019 Community Moderator ElectionHow do you assert that a certain exception is thrown in JUnit 4 tests?differences between 2 JUnit Assert classesHow do I use Assert to verify that an exception has been thrown?Best practice for Python assertWhat is the “assert” function?What does the Java assert keyword do, and when should it be used?What is the use of “assert” in Python?PHPUnit assert that an exception was thrown?What is “assert” in JavaScript?Asserting in testng using containing

(unchecked) unchecked cast required: OnSuccessListener found: Uri2019 Community Moderator ElectionHow do I address unchecked cast warnings?Android AlarmManager for periodical sensor readingWhy don't Java's +=, -=, *=, /= compound assignment operators require casting?I am trying to set alarm on specific time using alarm manager but alarm initiated instantly?setText on button from another activity androidget around of error 'can not resolve symbol'Saving ToggleButton state in ListView by using SharedPreferencesAdding Social Media Share Logic From Firebase in Androidjava.lang.NullPointerException when invoking onLoadFinished()Search Firestore query don't show data in RecycleView

1