Sitemap XML: cấu trúc, giới hạn 50.000 địa chỉ, lastmod và những thứ không nên đưa vào
Sitemap XML liệt kê những địa chỉ bạn muốn Google biết tới. Sitemap tốt chỉ chứa trang trả 200, đúng bản chính tắc, có lastmod trung thực và được khai ở robots.txt lẫn Search Console; mỗi tệp tối đa 50.000 địa chỉ và 50MB chưa nén.
Sitemap XML là tệp liệt kê những địa chỉ bạn muốn Google biết tới, kèm ngày cập nhật. Một sitemap tốt có ba đặc điểm: chỉ chứa trang muốn lên Google (trả 200, không noindex, đúng bản chính tắc), ngày lastmod trung thực, và được khai ở robots.txt và Search Console. Giới hạn kỹ thuật: mỗi tệp tối đa 50.000 địa chỉ và 50MB khi chưa nén; site lớn hơn thì chia nhiều tệp và gom bằng một tệp chỉ mục sitemap. Sitemap giúp Google phát hiện trang, nó không ép Google lập chỉ mục trang.
Cấu trúc tối thiểu
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://tenmien.com/</loc>
<lastmod>2026-11-09</lastmod>
</url>
<url>
<loc>https://tenmien.com/bai/cach-chon-may-loc-nuoc</loc>
<lastmod>2026-11-02T08:30:00+07:00</lastmod>
</url>
</urlset>
Chỉ <loc> là bắt buộc. Địa chỉ phải tuyệt đối, cùng giao thức và tên miền với bản chính. Ký tự đặc biệt phải thoát: & viết thành &. Tệp mã hoá UTF-8; đường dẫn có dấu tiếng Việt thì nên mã hoá phần trăm cho chắc.
Site nhiều tệp sitemap dùng tệp chỉ mục:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://tenmien.com/sitemap-bai-viet.xml</loc>
<lastmod>2026-11-09</lastmod>
</sitemap>
<sitemap>
<loc>https://tenmien.com/sitemap-san-pham.xml</loc>
</sitemap>
</sitemapindex>
Thẻ nào Google dùng, thẻ nào bỏ qua
| Thẻ | Google xử lý |
|---|---|
loc | Bắt buộc, là địa chỉ trang |
lastmod | Có dùng, nếu Google thấy nó nhất quán và khớp thực tế |
priority | Bỏ qua |
changefreq | Bỏ qua |
xhtml:link rel="alternate" hreflang | Có dùng, là một cách khai hreflang thay cho thẻ trong HTML |
| Phần mở rộng ảnh, video, tin tức | Có dùng cho từng loại kết quả tương ứng |
Nhiều plugin vẫn sinh priority và changefreq; để đó không hại gì, nhưng đừng mất công chỉnh. Thứ đáng chỉnh là lastmod.
lastmod: trung thực hoặc bỏ đi
lastmod là ngày nội dung chính của trang thay đổi đáng kể — sửa thân bài, cập nhật giá, thêm mục. Nó không phải ngày tạo tệp sitemap, ngày có bình luận mới, hay ngày đổi năm bản quyền ở chân trang. Sai lầm phổ biến nhất là sitemap sinh động đặt lastmod bằng thời điểm hiện tại cho mọi địa chỉ. Google nhận ra mẫu đó rất nhanh và thôi tin lastmod của cả site; đến khi bạn sửa một bài thật thì tín hiệu đó không còn tác dụng.
Định dạng chấp nhận theo chuẩn W3C: chỉ ngày (2026-11-09) hoặc ngày giờ kèm múi giờ (2026-11-09T08:30:00+07:00).
Thứ không nên đưa vào sitemap
- Địa chỉ chuyển hướng (301, 302) — đưa địa chỉ đích.
- Địa chỉ trả 404, 410, 5xx.
- Trang có noindex. Đưa vào sitemap một trang bạn bảo đừng lập chỉ mục là tín hiệu mâu thuẫn.
- Bản không chính tắc: bản có tham số, bản http, bản www khi tên miền chính không www.
- Trang bị robots.txt chặn.
- Trang kết quả tìm kiếm nội bộ, trang lọc, trang giỏ hàng, trang tài khoản.
- Địa chỉ thuộc tên miền khác. Sitemap của
tenmien.comchỉ nên chứa địa chỉ củatenmien.com.
Nguyên tắc: sitemap là danh sách những trang tốt nhất của site mà bạn sẵn sàng để Google đánh giá. Mỗi địa chỉ rác trong đó làm giảm độ tin của cả danh sách.
Khai báo sitemap cho Google
- Thêm dòng vào cuối robots.txt:
Sitemap: https://tenmien.com/sitemap.xml. Địa chỉ phải tuyệt đối. Có thể khai nhiều dòng. - Gửi trong Search Console, mục Sơ đồ trang web. Báo cáo ở đó cho biết Google đọc được bao nhiêu địa chỉ và có lỗi gì.
- Cách "ping" Google bằng địa chỉ
google.com/ping?sitemap=đã bị Google ngừng hỗ trợ từ năm 2023. Bing, Yandex và một số công cụ khác nhận thông báo địa chỉ mới qua IndexNow.
Chia sitemap theo loại nội dung để đọc được báo cáo
Đây là mẹo người làm site lớn hay dùng mà ít tài liệu nhắc: thay vì một tệp khổng lồ, chia sitemap theo loại trang — bài viết, sản phẩm, danh mục, trang tĩnh — rồi gửi từng tệp (hoặc tệp chỉ mục) trong Search Console. Báo cáo Lập chỉ mục trang cho phép lọc theo từng sitemap đã gửi. Nhờ đó bạn thấy ngay "sản phẩm được lập chỉ mục 92%, nhưng bài viết chỉ 40%" thay vì một con số trung bình vô nghĩa cho cả site. Với site tin tức, tách riêng tệp cho bài mới trong vài ngày gần nhất cũng giúp Google thấy bài mới nhanh hơn.
Các phần mở rộng đáng biết:
- Sitemap tin tức chỉ nên chứa bài đăng trong hai ngày gần nhất, tối đa 1.000 địa chỉ mỗi tệp; bài cũ hơn chuyển sang sitemap thường.
- Sitemap ảnh có ích khi ảnh được tải bằng JavaScript hoặc nằm trên máy chủ ảnh riêng, Google khó tự phát hiện.
- Sitemap video khai tiêu đề, mô tả, ảnh đại diện, thời lượng — tương tự dữ liệu có cấu trúc VideoObject trên trang.
Sitemap sinh tự động từ CSDL nên được đệm lại vài phút đến vài giờ thay vì chạy truy vấn mỗi lần có bot ghé; nhưng nhớ xoá bộ đệm khi có bài mới, và đừng bao giờ lưu đệm một phản hồi lỗi.
Lỗi hay gặp
- Sitemap trả về trang HTML. Đường dẫn
/sitemap.xmlkhông tồn tại nhưng site trả trang chủ hoặc trang lỗi với mã 200. Search Console báo "Sơ đồ trang web là HTML". Kiểm bằng cách mở thẳng địa chỉ và xem dòng đầu có phải<?xmlkhông. - Có khoảng trắng hoặc ký tự lạ trước
<?xml. Thường do một tệp PHP có dòng trống sau?>, hoặc ký tự BOM. Trình đọc XML chuẩn từ chối cả tệp vì khai báo XML chỉ được nằm ở đầu tệp. Trình duyệt có thể vẫn hiện được nên khó phát hiện. - Ký tự
&không thoát trong địa chỉ có tham số, làm hỏng cú pháp toàn tệp. - Sitemap còn địa chỉ http sau khi chuyển HTTPS, hoặc còn tên miền cũ sau khi đổi tên miền. Hàng nghìn địa chỉ chuyển hướng trong sitemap.
- Tệp chỉ mục trỏ tới sitemap con đã xoá. Hay gặp khi gỡ một plugin hoặc bỏ một loại nội dung (ví dụ bỏ trang thẻ) mà không cập nhật tệp chỉ mục.
- Sitemap rỗng. Tệp đúng cú pháp nhưng không có địa chỉ nào, do truy vấn CSDL lỗi hoặc bộ đệm lưu nhầm lúc lỗi. Google đọc xong và không học được gì.
- Kỳ vọng mọi địa chỉ trong sitemap sẽ được lập chỉ mục. Báo cáo sơ đồ trang web cho biết số địa chỉ "đã phát hiện", không phải số đã lập chỉ mục. Xem số thật ở báo cáo Lập chỉ mục trang, lọc theo sitemap — chi tiết trong bài vì sao trang không được lập chỉ mục.
Danh sách kiểm
- Mở thẳng địa chỉ sitemap: dòng đầu là
<?xml, mã trạng thái 200, kiểu nội dung là XML. - Mọi
<loc>là https, đúng tên miền chính, không tham số. - Lấy mẫu 20 địa chỉ bất kỳ: tất cả trả 200, không chuyển hướng, không noindex, canonical tự trỏ.
lastmodkhác nhau giữa các trang và khớp ngày sửa thật.- Dòng
Sitemap:có trong robots.txt; sitemap đã gửi trong Search Console và trạng thái "Thành công". - Tệp chỉ mục không trỏ tới sitemap con nào trả lỗi.
Kiểm bằng SEO Gốc
Công cụ chấm điểm SEO tìm sitemap theo thứ tự: dòng Sitemap: trong robots.txt, rồi /sitemap.xml, rồi /sitemap_index.xml. Nó đọc tệp bằng trình phân tích XML nghiêm ngặt (không "bỏ qua lỗi" như trình duyệt), đếm địa chỉ, đọc tối đa 10 sitemap con nếu là tệp chỉ mục, và đếm địa chỉ khác tên miền hoặc còn http. Mục sitemap chiếm 7/100 điểm: không tìm thấy hoặc lỗi XML gần như mất trọn; sitemap rỗng, có địa chỉ khác tên miền, hoặc sitemap con lỗi bị trừ từng phần. robots.txt không khai dòng Sitemap bị ghi một lỗi nhẹ riêng. Công cụ không kiểm từng địa chỉ trong sitemap có trả 200 hay không — việc đó cần một lượt thu thập toàn site.
Tài liệu Google: Tạo và gửi sơ đồ trang web.
Hỏi đáp
Site nhỏ có cần sitemap không?
Không bắt buộc nếu mọi trang đều có liên kết nội bộ tốt, nhưng nên có. Sitemap giúp Google phát hiện trang mới nhanh hơn và báo cáo trong Search Console cho bạn thấy Google đọc được bao nhiêu địa chỉ.
Có nên chỉnh priority và changefreq không?
Không cần. Google bỏ qua cả hai thẻ này. Thứ đáng chỉnh là lastmod: chỉ đổi khi nội dung chính của trang thật sự thay đổi.
Sitemap vượt 50.000 địa chỉ thì làm sao?
Chia thành nhiều tệp, mỗi tệp dưới 50.000 địa chỉ và 50MB chưa nén, rồi gom bằng một tệp chỉ mục sitemap. Khai tệp chỉ mục ở robots.txt và Search Console là đủ.
Có trong sitemap mà vẫn không được lập chỉ mục là sao?
Sitemap chỉ giúp Google biết địa chỉ tồn tại. Google vẫn tự quyết định lưu hay không dựa trên nội dung, độ trùng lặp và tín hiệu khác. Xem lý do cụ thể ở báo cáo Lập chỉ mục trang.
Đọc tiếp
robots.txt: chặn thu thập không phải chặn lập chỉ mục
robots.txt quyết định máy thu thập có được tải một đường dẫn hay không, không quyết định trang có nằm trong chỉ mục. Muốn gỡ trang khỏi Goo…
Thẻ canonical: viết đúng, các lỗi hay gặp và lúc Google bỏ qua nó
Thẻ canonical cho Google biết đâu là địa chỉ chính khi một nội dung có nhiều địa chỉ. Viết đúng là địa chỉ tuyệt đối, https, đúng tên miền…
IndexNow: báo Bing, Yandex có URL mới ngay lập tức; Google thì không
IndexNow là giao thức mở để báo ngay cho Bing, Yandex, Naver, Seznam và Yep khi có trang mới, sửa hoặc xoá; Google không tham gia. Cần một…
Ngân sách thu thập (crawl budget): khi nào site nhỏ cần quan tâm, khi nào không
Ngân sách thu thập là số địa chỉ Googlebot sẵn lòng và có thể tải trên site trong một khoảng thời gian. Site vài trăm đến vài chục nghìn tr…