Hãy tưởng tượng một thư viện 10.000 cuốn sách. Bạn có thể để người đọc tự đi loanh quanh may rủi tìm thấy — hoặc đưa cho họ một danh mục có hệ thống. Sitemap chính là "danh mục thư viện" cho website của bạn.
Với Googlebot vốn có ngân sách crawl hữu hạn, sitemap giúp: không bỏ sót trang quan trọng, crawl nhanh hơn, index hiệu quả hơn, và phát hiện nội dung mới sớm hơn.
Bài viết này hướng dẫn mọi thứ về XML sitemap. Bài dành cho: developer, technical SEO chuyên crawl/index, webmaster và chủ website.
Phần 1: Sitemap là gì?
Theo Google, sitemap là một file nơi bạn cung cấp thông tin về các trang, video và file khác trên site — cùng mối quan hệ giữa chúng. Công cụ tìm kiếm đọc file này để crawl website hiệu quả hơn.
Sitemap cho Google biết: trang nào quan trọng, trang được cập nhật lần cuối khi nào, có phiên bản ngôn ngữ nào khác, và có hình ảnh/video/tin tức liên quan nào.
Ba loại sitemap: XML Sitemap (phổ biến nhất, dành cho search engine); HTML Sitemap (trang liệt kê link cho người dùng — tốt cho UX, không bắt buộc cho SEO); và Sitemap Extensions chuyên biệt (image, video, news).
Phần 2: Bạn có cần sitemap không?
NÊN có sitemap khi | KHÔNG thực sự cần khi |
|---|---|
Site lớn — khó đảm bảo mọi trang đều được link từ ít nhất một trang khác | Site nhỏ (khoảng 500 trang trở xuống) |
Site mới, có ít backlink từ bên ngoài → Google khó tìm ra | Internal linking đã toàn diện, mọi trang đều được liên kết |
Nhiều rich media (video, hình ảnh) hoặc xuất hiện trên Google News | Chủ yếu là nội dung text |
Cập nhật nội dung thường xuyên | — |
Khuyến nghị thực tế: luôn nên có sitemap nếu bạn là ecommerce, blog/tin tức, site trên 100 trang, site mới (dưới 6 tháng), site đa ngôn ngữ, hoặc có thư viện ảnh/video lớn. Với đại đa số website, có sitemap vẫn tốt hơn không có.
Sitemap không phải phép màu. Google nói rõ: sitemap giúp công cụ tìm kiếm khám phá URL, nhưng không đảm bảo mọi mục trong sitemap sẽ được crawl và index. Nó không thay thế internal linking tốt, không đảm bảo thứ hạng, và không sửa được các vấn đề kỹ thuật khác.
Phần 3: Tạo XML Sitemap
Format chuẩn:
xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-05-21</lastmod>
</url>
<url>
<loc>https://example.com/blog/</loc>
<lastmod>2026-05-20</lastmod>
</url>
</urlset>Element | Bắt buộc? | Ghi chú |
|---|---|---|
| Có | Container kèm namespace |
| Có | Container cho mỗi URL |
| Có | URL tuyệt đối (có |
| Không, nhưng rất nên có | Ngày cập nhật thật, theo chuẩn W3C Datetime |
| Không | Google hầu như bỏ qua — trường legacy |
| Không | Google cũng bỏ qua — trường legacy |
Vài lưu ý về <loc>: phải là URL tuyệt đối (không dùng đường dẫn tương đối /san-pham/...), và ký tự đặc biệt phải được mã hóa (& phải viết thành &).
Về <lastmod>: dùng 2026-05-21 hoặc 2026-05-21T15:30:00+07:00. Phải là ngày cập nhật thật — đừng giả mạo ngày để trông "tươi mới", vì Google sẽ bỏ qua nếu không tin tưởng dữ liệu này.
Kết luận: sitemap hiện đại chỉ cần <loc> và <lastmod> là đủ.
Phần 4: Giới hạn và cách chia nhỏ
Yếu tố | Giới hạn |
|---|---|
Số URL trong một sitemap | 50.000 |
Kích thước file (chưa nén) | 50 MB |
Số sitemap trong một sitemap index | 50.000 |
Nếu vượt giới hạn, dùng sitemap index file:
xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2026-05-21</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-blog.xml</loc>
<lastmod>2026-05-20</lastmod>
</sitemap>
</sitemapindex>Chiến lược chia sitemap — theo loại nội dung (sitemap-products.xml, sitemap-categories.xml, sitemap-blog.xml, sitemap-pages.xml) hoặc theo thời gian với blog/news lớn (sitemap-2026-05.xml, sitemap-2026-04.xml...).
Phần 5: Sitemap chuyên biệt
Image sitemap (tối đa 1.000 ảnh mỗi URL) — đặc biệt hữu ích với website bán hàng có nhiều ảnh sản phẩm:
xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://example.com/san-pham/ao-thun</loc>
<image:image>
<image:loc>https://example.com/photos/ao-trang-1.jpg</image:loc>
<image:title>Áo thun nam cotton trắng</image:title>
<image:caption>Áo thun nam dáng regular fit</image:caption>
</image:image>
<image:image>
<image:loc>https://example.com/photos/ao-trang-2.jpg</image:loc>
</image:image>
</url>
</urlset>Video sitemap:
xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>https://example.com/video-page</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbs/video1.jpg</video:thumbnail_loc>
<video:title>Cách Pha Cà Phê Đúng Chuẩn</video:title>
<video:description>Hướng dẫn pha cà phê arabica chuẩn barista</video:description>
<video:content_loc>https://example.com/videos/video1.mp4</video:content_loc>
<video:duration>600</video:duration>
<video:publication_date>2026-05-21T08:00:00+07:00</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
</video:video>
</url>
</urlset>News sitemap (cần được Google News chấp nhận trước; tối đa 1.000 URL và chỉ chứa bài dưới 2 ngày tuổi):
xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>https://news.example.com/tin-moi-nhat</loc>
<news:news>
<news:publication>
<news:name>Tên Báo</news:name>
<news:language>vi</news:language>
</news:publication>
<news:publication_date>2026-05-21T10:30:00+07:00</news:publication_date>
<news:title>Tiêu đề bài viết</news:title>
</news:news>
</url>
</urlset>Phần 6: Submit sitemap cho Google
Cách 1 — Search Console (khuyến nghị): vào property → sidebar Sitemaps → nhập URL sitemap → Submit. Google sẽ crawl sitemap, hiển thị số URL phát hiện được và các lỗi nếu có.
Cách 2 — robots.txt: thêm dòng Sitemap: (có thể nhiều dòng). Đây là best practice nên làm song song với cách 1, và là một mục trong checklist Technical SEO:
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-products.xmlLưu ý: endpoint ping sitemap (/ping?sitemap=) đã bị Google ngừng hỗ trợ — đừng dùng nữa. Với từng URL riêng lẻ, có thể dùng URL Inspection → Request Indexing.
Phần 7: Tạo sitemap theo nền tảng
WordPress: từ phiên bản 5.5, WordPress core tự sinh /wp-sitemap.xml. Hoặc dùng Yoast SEO / Rank Math (tự sinh /sitemap_index.xml).
Shopify: tự động tạo tại /sitemap.xml, không cần cấu hình.
Next.js:
javascript
// pages/sitemap.xml.js
const generateSitemap = (posts) => `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${posts.map(({ slug, updatedAt }) => `
<url>
<loc>https://example.com/blog/${slug}</loc>
<lastmod>${updatedAt}</lastmod>
</url>
`).join('')}
</urlset>`;
export async function getServerSideProps({ res }) {
const posts = await fetchPosts();
res.setHeader('Content-Type', 'text/xml');
res.write(generateSitemap(posts));
res.end();
return { props: {} };
}
export default function Sitemap() { return null; }PHP tự viết:
php
<?php
header('Content-Type: application/xml; charset=utf-8');
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$urls = $db->query("SELECT slug, updated_at FROM products WHERE status='active'");
foreach ($urls as $url) {
echo '<url>';
echo '<loc>https://example.com/san-pham/' . htmlspecialchars($url['slug']) . '</loc>';
echo '<lastmod>' . date('Y-m-d', strtotime($url['updated_at'])) . '</lastmod>';
echo '</url>';
}
?>
</urlset>Phần 8: Best practices
Chỉ đưa vào URL canonical — không đưa URL bị redirect; chỉ URL trả về 200 OK.
Chỉ đưa vào URL có thể index — bỏ URL có
noindex.lastmodphải thật — chỉ cập nhật khi nội dung thực sự thay đổi.Chỉ dùng HTTPS (nếu site đã HTTPS) — đừng trộn lẫn HTTP.
Cùng domain — URL trong sitemap phải cùng domain với chính file sitemap.
UTF-8 encoding.
Nén gzip (
sitemap.xml.gz) để tiết kiệm băng thông với sitemap lớn.
Phần 9: Lỗi thường gặp
Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
Sitemap could not be read | Server lỗi 5xx; sitemap không truy cập được; bị robots.txt chặn | Kiểm tra server; mở sitemap trong trình duyệt; cho phép Googlebot |
URLs not accessible | URL trả 404, bị redirect, hoặc có | Chỉ giữ URL trả 200 và có thể index |
Invalid date format |
| Dùng chuẩn W3C: |
URL not allowed | URL khác domain với sitemap | Đảm bảo cùng domain |
Too many URLs | Hơn 50.000 URL trong một sitemap | Chia nhỏ + dùng sitemap index |
Phần 10: Giám sát
Trong Search Console, xem Sitemaps Report (trạng thái, loại, số URL đã submit vs đã index) và Coverage Report (đối chiếu: URL nào có trong sitemap nhưng chưa index, URL nào đã index nhưng thiếu trong sitemap).
Chỉ số | Ngưỡng khỏe mạnh |
|---|---|
Tỷ lệ Submitted / Indexed | > 70% |
Số lỗi | 0 |
Lần đọc gần nhất | Gần đây |
Kết luận
Sitemap là công cụ đơn giản nhưng mạnh mẽ. Năm thông điệp cốt lõi: (1) hầu hết website nên có sitemap — đặc biệt ecommerce, blog, site đa ngôn ngữ; (2) chỉ cần tập trung vào <loc> và <lastmod> — <priority> và <changefreq> đã lỗi thời; (3) site lớn thì chia nhỏ bằng sitemap index; (4) submit qua Search Console và đừng quên thêm vào robots.txt; và (5) giám sát thường xuyên — lỗi sitemap chính là vấn đề SEO.
XML Sitemap là nền tảng giúp website được crawl và index hiệu quả hơn. Nếu bạn muốn tối ưu Technical SEO và xây dựng website chuẩn Google, hãy tham khảo dịch vụ SEO website hoặc liên hệ Tấn Phát Digital để được tư vấn.
Biên soạn và Việt hóa từ tài liệu Google Search Central về sitemap. Code sample và best practice thuộc về Tấn Phát Digital.







