XML 站點地圖和 SEO:您需要了解的內容
已發表: 2023-08-16XML 站點地圖在 6 月份剛剛滿 18 歲,為了紀念其正式進入成年期,我將詳細介紹 XML 站點地圖的工作原理、如何構建站點地圖,以及為什麼 XML 站點地圖提供大量 SEO 優勢。
什麼是 XML 站點地圖?
簡而言之,XML 站點地圖是一種 XML 格式的協議,它告訴搜索引擎可抓取的網站上的 URL。
XML 站點地圖旨在共享有關每個 URL 的信息,例如:
- 上次更新是什麼時候。
- 多久改變一次。
- 它相對於您網站上的其他 URL 有多重要。
如果某些 URL 被隔離,XML 站點地圖允許搜索引擎更有效地抓取您的網站。
如果您是 SEO 專業人士,您可能已經使用 Yoast WordPress 插件中內置的 XML 站點地圖。 但您可能會錯過很多額外的內容。
如何構建動態 XML 站點地圖
如果您使用 WordPress,請利用 Yoast 和 RankMath 等 SEO 插件來生成動態 XML 站點地圖。
如果您不使用 WordPress,請按照以下步驟構建動態 XML 站點地圖。
了解您的導航結構
將網站上所有 URL 的列表放在一起,並將它們分組以與導航結構和內容分組保持一致。
與您的開發團隊合作
與您的開發團隊共享分組的 URL 列表,以獲得他們使用 Python、PHP 或 JavaScript 創建動態 XML 站點地圖的幫助。
以下是如何使用 Python 編寫動態 XML 站點地圖的示例:
import xml.etree.ElementTree as ET import datetime # List of URLs (replace these with your actual URLs) urls = [ "https://www.example.com/page1", "https://www.example.com/page2", "https://www.example.com/page3", # Add more URLs here ] # Create the root element urlset = ET.Element("urlset") urlset.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9") # Loop through URLs and create URL entries for url in urls: url_elem = ET.SubElement(urlset, "url") loc_elem = ET.SubElement(url_elem, "loc") loc_elem.text = url lastmod_elem = ET.SubElement(url_elem, "lastmod") lastmod_elem.text = datetime.datetime.now().isoformat() changefreq_elem = ET.SubElement(url_elem, "changefreq") changefreq_elem.text = "daily" # You can set this to the desired frequency priority_elem = ET.SubElement(url_elem, "priority") priority_elem.text = "0.5" # You can set this to a value between 0 and 1 # Create the XML tree tree = ET.ElementTree(urlset) # Save the XML to a file tree.write("sitemap.xml", encoding="utf-8", xml_declaration=True)
在與開發人員合作時,我結合使用 Flask 和 Python 創建了一個真正動態的 XML 站點地圖,該站點地圖會隨著網站內容的變化而變化。
如果我們可以使用像get_dynamic_urls()
這樣的函數根據網站內容定義動態站點地圖路由,我們應該能夠檢索所有 URL。
@app.route('/sitemap.xml', methods=['GET']) def sitemap(): urls = get_dynamic_urls() # Replace with your dynamic URL retrieval logic urlset = ET.Element("urlset") urlset.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9") for url in urls: url_elem = ET.SubElement(urlset, "url") loc_elem = ET.SubElement(url_elem, "loc") loc_elem.text = url lastmod_elem = ET.SubElement(url_elem, "lastmod") lastmod_elem.text = datetime.datetime.now().isoformat() changefreq_elem = ET.SubElement(url_elem, "changefreq") changefreq_elem.text = "daily" priority_elem = ET.SubElement(url_elem, "priority") priority_elem.text = "0.5" xml_content = ET.tostring(urlset, encoding="utf-8") return xml_content, {'Content-Type': 'application/xml'}
如果您要跨多個域資源共享代碼,請確保文件在您的 HTML 頁面上編碼正確。
例如,您的 CSS 和 JavaScript 文件應使用<link>
和<script>
標記進行鏈接。
在跨不同域共享代碼之前,您需要創建一個集中式服務器來託管共享的 XML 站點地圖規則。
您將與開發人員一起進行動態 XML 站點地圖的多個階段,直到所有規則都得到確認。
不要忘記檢查動態 URL 是否確實被檢索並集成到您的站點地圖邏輯中。
上傳到您的服務器
壓縮 XML 站點地圖後,將動態 XML 站點地圖上傳到網站的根目錄。
提交給搜索引擎
通過 Google Search Console 和 Bing 網站管理員工具提交 XML 站點地圖,讓搜索引擎了解您的 XML 站點地圖。
持續維護
XML 站點地圖不僅僅是“設置後就忘記它”的 SEO 策略。 當您的網站發生變化時,更新 XML 站點地圖至關重要。
構建 XML 站點地圖時要記住的 15 個提示
1. XML站點地圖不是排名因素
當在 X(以前的 Twitter)上被問到使用 XML 站點地圖是否有排名優勢時,Google 的 Gary Illyes 回答道:
- “不,反正也不直接。”
2. Google 無需站點地圖即可找到您的頁面
Google 搜索倡導者 Daniel Waisberg 在 Google Search Console 培訓視頻中分享道,如果網站很小且鏈接正確,則不需要站點地圖。
然而,他接著說,如果出現以下情況,站點地圖可能特別有用:
- 該網站真的很大。
- 該網站的頁面是孤立的。
- 該網站是新的或變化很快。
另外,值得注意的是,Google 的 John Muller 在 X(以前的 Twitter)上表示,擁有 XML 站點地圖是“任何嚴肅網站的最低基線”。
3. Google 在重新處理之前檢查您的 XML 站點地圖是否已更改
Illyes 證實,在浪費資源再次解析和處理文件之前,Google 會檢查您的 XML 站點地圖是否已更改。
他在 SEO Office Hours 中表示。
- “一旦你更改了站點地圖中的某些內容,無論是 URL 元素還是最後一個 mod,站點地圖都會被再次解析並通常會重新處理。 這並不意味著 URL 一定會被抓取,當然它們仍然像任何其他 URL 一樣接受質量評估。 還值得一提的是,如果您從站點地圖中刪除某個網址,因為它可能不再存在,但這並不意味著它會自動從索引中刪除,甚至不會優先進行爬行,以便可以更快地刪除它。”
4. XML 站點地圖可以更快地為您的新內容建立索引
Mueller 證實,告訴 Google 您的 XML 站點地圖已更新可以幫助您更快地將新內容編入索引。
他分享道:
- “對站點地圖執行 Ping 操作與僅在 robots.txt 中提供站點地圖略有不同 — 通過 Ping,您可以主動標記站點地圖文件中的更改。 如果您熱衷於快速將新內容編入索引,那麼這是一個很好的做法。”
5. XML 站點地圖必須採用 UTF-8 編碼
如果您的 XML 站點地圖未使用 UTF-8,搜索引擎將無法讀取它。
6. 將文件大小保持在 50 MB(未壓縮)或 50,000 個 URL 以下
XML 站點地圖有大小限制。 每個站點地圖的 URL 數量應控制在 50,000 個以下或 50 MB(未壓縮)以下。
如果您的文件較大或 URL 較多,請使用多個 XML 站點地圖。
7.你可以有多個XML站點地圖
Google 允許您提交多個站點地圖。 將站點地圖分成網站的不同部分來衡量性能可能會很有用。
例如,如果您是一個大型電子商務網站,則可以按產品類型(即女鞋與男鞋)對 XML 站點地圖進行細分。
或者,如果您有多種語言,您可能需要與您的 <loc> XML 站點地圖相關的 hreflang。
如果您有備用語言,則不計入 50,000 個 URL 的上限。
或者,如果您有大量視頻或圖像,則可以將 XML 站點地圖分為視頻 XML 站點地圖和圖像 XML 站點地圖。
擁有多個 XML 站點地圖不會帶來排名優勢。
8. 如果您有多個 XML 站點地圖,請記住使用站點地圖索引文件
如果大型網站有多個 XML 站點地圖,則需要提交站點地圖索引文件以一次提交多個站點地圖。
9.lastmod標籤應該是完美的
<lastmod>
標籤是 XML 站點地圖最重要的部分之一。
例如,我的結構化數據利用了 XML 站點地圖的 <lastmod> 日期。
<lastmod>
標籤還向搜索引擎發出信號,表明您是否刷新了舊內容或推出了新內容。
穆勒證實了這一點,他表示:
- “……如果您只是更改時間戳頁腳,當然,頁面在技術上也發生了變化,但應該優先考慮這一點 - 可能不會。”
Bing 甚至對 XML 站點地圖中的lastmod
標籤發表了官方立場,指出:
- “對於 XML 站點地圖,您可以在站點地圖中包含的最關鍵的標籤之一是“lastmod”標籤。”
10. XML站點地圖應該只包含200個全部自我規範化的狀態URL
請記住僅保留實時 URL、200 狀態、可索引和自我規範化。
如果您繼續展示 404 或 301 重定向頁面,搜索引擎可能會完全停止抓取您的 XML 站點地圖。
穆勒回應了 X(以前稱為 Twitter)上的一條評論:
- “如果 URL 無效,我們將停止獲取站點地圖文件,但如果您要返回內容或重定向(有點推薦),我們將繼續嘗試它們。 它不應該引起問題,因為整個站點地圖文件只是從站點獲取的所有 URL 的一小部分。”
11.搜索引擎可以每天檢查你的XML站點地圖
Microsoft 的 Fabrice Canel 表示,Microsoft 每天都會檢查您的 XML 站點地圖。
Mueller 表示,Google 根據頻率(也稱為<lastmod>
標籤)檢查您的 XML 站點地圖。
12. 頁面速度間接影響您的 XML 站點地圖
我們都知道頁面速度對我們的 SEO 工作有多麼重要。 但是,性能緩慢的網站如何影響您的 XML 站點地圖呢?
Mueller 已確認頁面速度不會影響您的 XML 站點地圖,他指出:
- “只要沒有超時,就應該沒問題。 也許緩存最新版本以防止不必要的服務器負載?”
事實上,我曾在性能緩慢的網站上工作過,當搜索引擎抓取網站時,XML 站點地圖不會加載,從而導致排名大幅波動。
如果您的網站無法正確加載,則會對您的 XML 站點地圖產生間接影響。
這就是為什麼使用 Gzip 壓縮來減小文件大小並加快加載時間非常重要。
13. 從 XML 站點地圖中刪除 <priority> 標籤
Illyes 將 XML 站點地圖中的<priority>
標籤比作“一袋噪音”。
因此,如果您依賴搜索引擎根據優先級抓取 XML 站點地圖中的 URL,那麼您將等待很長時間。
我建議從您的 XML 站點地圖中刪除此標籤。
14. 如果您有導航結構問題,請將 XML 站點地圖與 HTML 站點地圖配對
人們對於 HTML 站點地圖總是有著複雜的感受。
Mueller 認為 HTML 站點地圖“永遠都不需要”。
他繼續:
- “這些年來我改變了對 HTML 站點地圖的看法,它們永遠都不應該被需要。 小型和大型網站都應始終具有清晰的導航結構。 如果您覺得需要 HTML 站點地圖,請花時間改進站點的架構。 HTML 站點地圖與 HTML 加載旋轉器位於同一個容器中。”
<iframe src="https://mastodon.social/@johnmu/109477617298107922/embed" class="mastodon-embed" width="400" allowfullscreen="allowfullscreen"></iframe><script src="https://mastodon.social/embed.js" async="async"></script>
在企業級大型網站上工作時,網站導航結構上通常有多層決策者。 通常,SEO 最佳實踐會被考慮在內。
我將 XML 站點地圖與 HTML 站點地圖配對,直到我對我們的網站導航和內部鏈接層次結構充滿信心。
15. 不要忘記將所有 XML 站點地圖包含在 robots.txt 文件中
不要忘記將 XML 站點地圖(全部)作為鏈接包含在 robots.txt 文件中。
這是一個例子:
不必擔心這些內容應該放在 robots.txt 文件中的哪個位置。 這不會影響 robots.txt 文件中 XML 站點地圖的位置。
穆勒證實了這一點:
XML 站點地圖是搜索引擎網站的藍圖
無論您是要啟動新網頁還是只是向重複頁面添加規範標籤,您都應該全天候 (24/7) 更新您的 XML 站點地圖。
但請謹慎行事。
雖然您不應該偏執,但您的 XML 站點地圖是您的搜索引擎房屋的藍圖。
因此,不要忘記將 XML 站點地圖提交到 Google Search Console 和 Bing 網站管理員工具。
本文表達的觀點是客座作者的觀點,並不一定是搜索引擎土地的觀點。 此處列出了工作人員作者。