應該不斷生成新網頁的高度動態網站使用sitemap?如果是這樣,一個像stackoverflow.com網站如何去重新生成一個網站地圖?如果每次有人添加問題時都會不斷重新生成站點地圖,那麼似乎會損失寶貴的服務器資源。它是否會按設定的時間間隔(例如每四小時)生成一個新的站點地圖?我非常好奇大型,動態網站如何使這項工作。動態網站上的網站地圖
回答
在Stackoverflow(和所有Stack Exchange站點)上,將創建一個sitemap.xml文件,其中包含指向系統上發佈的每個問題的鏈接。當發佈新問題時,他們只需將其他條目附加到站點地圖文件的末尾。將文件添加到文件末尾並不是資源密集型的,但文件相當大。
這是像Google這樣的搜索引擎可以有效抓取該網站的唯一方法。
一下傑夫·阿特伍德的會談在博客:The Importance of Sitemaps
這是Google's webmaster help page on sitemaps:
站點地圖是特別有用的,如果:
- 你的網站有動態內容。
- 您的網站在 抓取過程中有不容易被Googlebot發現的網頁 - 例如,含有豐富的AJAX或Flash的網頁 。
- 您的網站是新的,並有幾個鏈接。 (Googlebot可以 以下鏈接抓取網頁從一個網頁到另一個 ,所以如果你的網站是沒有很好 鏈接,它可能對我們很難 發現它。)
- 你的網站有內容的大檔案沒有很好鏈接 彼此,或沒有鏈接在 所有。
我只會爲網站的靜態頁面創建一個站點地圖。例如,在StackOverflow上,站點地圖可顯示常見問題解答,關於,問題,標籤,用戶等...頁面的鏈接,但不顯示指向實際問題或所有標籤以及各種用戶的鏈接。
錯過了sitemap.xml文件的用途。 – ceejayoz 2009-07-08 17:19:19
@MitMaro:我同意你的觀點(請參閱我的類似帖子)。不知道爲什麼你會陷入低谷; +1來反擊。 – 2009-07-08 17:21:38
即使在像StackOverflow這樣的東西上,也存在一定數量的靜態組織;有常見問題解答,標籤頁,問題頁面,用戶頁面,徽章頁面等;我想說,在一個非常活躍的網站中,處理網站地圖的最佳方法是製作一個分類地圖;站點地圖中的每個節點都可以指向動態生成數據的頁面(問題頁面的節點,用戶頁面的節點等)。
當然,一個站點地圖可能不適合給定的站點;那裏需要一定數量的判斷電話。
每次發佈問題時都不需要重新生成Google站點地圖XML。只需要直接從數據庫按需生成XML文件(以及一點緩存)就簡單多了。
爲了減少負載,可以將站點地圖分成許多站點地圖。按日/月分區可讓您告訴Google經常檢索今天的站點地圖,但只是在六個月前偶爾抓取站點地圖。
我想在這裏分享我的解決方案,以防萬一它可以幫助別人也是如此。 我讀了這個問題和其他許多人來決定做什麼。
我的網站結構。
靜態頁面
- 首頁(高動態。緩存30分鐘)
- 藝術家,專輯,歌曲,播放列表和專輯(分頁列表)
- 法律(含條款等靜態頁面)
...等
動態網頁
- 藝術家,專輯,歌曲,播放列表和專輯的詳細信息頁面
我的做法。
sitemap.xml:此url生成<sitemapindex />
,第一項爲/sitemap-main.xml
。 Artists
,0 Albums
,Songs
等的數量除以1,000(每個站點地圖中我想要的網址數量,限制爲50,000)。我把這個數字加起來。
因此,例如,1900歌曲= 1.9 = 2. 我生成。將索引添加到網址/sitemap-songs-0.xml
和/sitemap-songs-1.xml
。我對所有其他項目重複這一點。基本上,我分頁。
輸出未緩存返回。我希望這永遠是新鮮的。
的Sitemap,main.xml中:列出所有靜態頁面。實際上,您可以使用靜態文件,因爲您只需稍後更新一次即可。
站點地圖-歌曲-0.xml,站點地圖-相冊-0.xml等:我用一個單一的路由這個在SlimPhp 2.
$app->get('/sitemap-:type-:page.xml', function ($type, $page) use ($app) {...
我使用一個簡單的開關聲明來生成相關文件。如果對於這個頁面,我獲得了1,000個項目,上面指定的限制,我緩存文件2周。 否則,我只緩存幾個小時。
我想這可以幫助其他人實現他們自己的系統。
對於一個高度動態的網站,我在每天運行的服務器上寫了一個cron作業。它每天都會對我的後端進行一次休息調用,並根據所有新生成的內容生成新的站點地圖,並以xml文件的形式返回站點地圖。這個新的站點地圖覆蓋了前一個站點地圖,並根據所有更改保持我的網站更新。爲每個新添加的動態內容更改站點地圖不是一種好方法,我認爲
- 1. 網站地圖 - WordPress上的子網站上的網站
- 2. 如何提交動態網站的網站地圖?
- 3. 網站地圖重新提交動態網站
- 4. 爲我的網站在Linux服務器上動態創建網站地圖
- 5. 動態網站地圖:xml或html
- 6. 動態生成網站地圖
- 7. 動態更新網站上的圖像
- 8. 上傳網站地圖
- 9. 爲網站開發網站地圖
- 10. 爲基於GWT的appengine網站生成動態站點地圖
- 11. 有關網站地圖文件及其內容的動態網站的問題
- 12. asp.net localhost網站的自動網站地圖樹?
- 13. Appcache動態網站
- 14. MultiLanguage動態網站
- 15. 刮動態網站
- 16. ASP.NET網站地圖
- 17. 在jsp網站上創建動態課程地圖
- 18. 將asp.net動態網站轉換爲靜態網站的工具
- 19. 準備ajax網站的站點地圖?
- 20. Xml大型網站的站點地圖
- 21. 大型網站的php站點地圖
- 22. Django動態網站地圖 - 模型屬於多個動態網址的情況
- 23. Django:如何動態地創建網站?
- 24. 動態網站的file_get_contents
- 25. php中的動態網站
- 26. Dotnetnuke的網站地圖
- 27. 來自ASP.NET網站的靜態網站
- 28. 網站上的目標動態ID
- 29. 保持動態網站上的標題
- 30. 網站地圖上的點openlayers
您是否對站點地圖有特定需求?他們有點過時;有些網站根本不提供它們。 – 2009-07-08 17:24:35
你能指定你正在談論的站點地圖的類型嗎?網站地圖有幾種實現方式可用於各種目的。例如,用於搜索引擎的基於xml的站點地圖,以及用於在站點上查找特定頁面的站點地圖。 – MitMaro 2009-07-08 17:29:41
很確定他們在談論一個sitemap.xml文件 - 一個用戶可訪問的網站地圖,列出了每個網站上有100,000個項目的項目,這是完全和不言而喻的無用功能。 – ceejayoz 2009-07-08 17:30:34