Tạo sitemap.xml API
Duyệt website từ trang chủ và tạo sitemap.xml: chỉ cùng tên miền, tuân thủ robots.txt, tôn trọng noindex và canonical, lastmod lấy từ header.
API tạo sitemap duyệt website bắt đầu từ url bạn đưa vào, đi theo các liên kết cùng tên miền (sau lần chuyển hướng đầu tiên, nên http → https hay www đều được xử lý), mỗi lần sáu trang song song. API tuân thủ robots.txt (quy tắc cho APIBoxBot hoặc *), bỏ qua trang đánh dấu noindex (thẻ meta robots hoặc header X-Robots-Tag), không đi theo liên kết nofollow, và khi một trang khai báo canonical sang URL khác thì trang canonical được đưa vào thay thế. Ảnh, PDF, script và các loại file khác bị bỏ qua.
Điều chỉnh phạm vi bằng max_pages, max_depth (0–10, mặc định 5), path_prefix (chỉ lấy /blog/…), exclude (biểu thức chính quy), keep_query=true cho trang web phân biệt trang theo query string, và ignore_robots khi duyệt chính website của bạn. Mỗi URL có lastmod (theo header Last-Modified), changefreq tuỳ chọn và priority giảm dần theo độ sâu liên kết (priority=false để bỏ).
Kết quả JSON liệt kê các trang kèm tiêu đề và độ sâu, những gì bị bỏ qua và lý do, các sitemap khai báo trong robots.txt và chính nội dung XML; format=xml trả thẳng file sitemap.xml. Số trang mỗi lần gọi tuỳ gói (Free 50, Starter 200, Pro 500, công cụ online 20) và mỗi lần duyệt dừng sau khoảng 25 giây.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
url | query|body | string | có | URL bắt đầu (thường là trang chủ). | |
max_pages | query|body | number | không | Số trang tối đa (mặc định và tối đa: giới hạn của gói). | |
max_depth | query|body | number | không | 5 | Độ sâu liên kết tính từ trang bắt đầu (0–10). |
path_prefix | query|body | string | không | Chỉ lấy URL có đường dẫn bắt đầu bằng chuỗi này, ví dụ /blog/. | |
exclude | query|body | string | không | Biểu thức chính quy cho các URL cần loại bỏ. | |
keep_query | query|body | boolean | không | false | Giữ query string (mặc định: bỏ đi). |
ignore_robots | query|body | boolean | không | false | Bỏ qua robots.txt (dành cho website của bạn). |
changefreq | query|body | string | không | always, hourly, daily, weekly, monthly, yearly hoặc never. | |
priority | query|body | boolean | không | true | Thêm <priority> theo độ sâu. |
format | query|body | string | không | json | json hoặc xml (trả về file sitemap.xml). |
Ví dụ
curl "https://apibox.io.vn/v1/sitemap-generate?url=https://www.sitemaps.org/&max_pages=10" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/sitemap-generate?url=https://www.sitemaps.org/&max_pages=10', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/sitemap-generate?url=https://www.sitemaps.org/&max_pages=10",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/sitemap-generate?url=https://www.sitemaps.org/&max_pages=10');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"url": "https://www.sitemaps.org/",
"site": "https://www.sitemaps.org",
"pages": 5,
"complete": true,
"limits": {
"max_pages": 10,
"max_depth": 5,
"plan_cap": 500
},
"robots_txt": "respected",
"sitemaps_in_robots": [
"https://www.sitemaps.org/sitemap.xml"
],
"skipped": {
"robots": 0,
"noindex": 0,
"not_html": 2,
"errors": 0,
"canonical_elsewhere": 0,
"redirected_away": 0
},
"queued_not_crawled": 0,
"errors": [],
"urls": [
{
"loc": "https://www.sitemaps.org/",
"lastmod": "2021-09-23",
"depth": 0,
"title": "sitemaps.org - Home"
},
{
"loc": "https://www.sitemaps.org/faq.html",
"lastmod": "2021-07-08",
"depth": 1,
"title": "sitemaps.org - FAQ"
},
{
"loc": "https://www.sitemaps.org/protocol.html",
"lastmod": "2022-12-15",
"depth": 1,
"title": "sitemaps.org - Protocol"
}
],
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url><loc>https://www.sitemaps.org/</loc><lastmod>2021-09-23</lastmod><priority>1.0</priority></url>\n <url><loc>https://www.sitemaps.org/faq.html</loc><lastmod>2021-07-08</lastmod><priority>0.8</priority></url>\n <url><loc>https://www.sitemaps.org/protocol.html</loc><lastmod>2022-12-15</lastmod><priority>0.8</priority></url>\n …\n</urlset>\n"
}
Ứng dụng
- Tạo sitemap.xml đầu tiên cho website không có plugin CMS
- Kiểm tra trang nào máy tìm kiếm có thể truy cập
- So sánh trang duyệt được với sitemap đã khai báo
- Tìm trang bị ẩn do noindex hoặc canonical sai
Hỏi đáp
Vì sao thiếu một số trang?
Trang đó không được liên kết từ các trang đã duyệt, bị chặn bởi robots.txt, noindex hoặc canonical sang trang khác, hoặc đã chạm giới hạn số trang: xem skipped và stopped_by.
Có duyệt được website chỉ chạy bằng JavaScript không?
Không, liên kết được đọc từ HTML máy chủ trả về; trang chỉ hiển thị trên trình duyệt sẽ không được phát hiện.
Duyệt được bao nhiêu trang?
Tối đa 50 (Free), 200 (Starter) hoặc 500 (Pro) trang mỗi lần gọi, 20 trang trên công cụ online.
API liên quan
Metadata của URL
Lấy tiêu đề, mô tả, thẻ Open Graph, Twitter Card, favicon, canonical, RSS và JSON-LD của bất kỳ URL nào dưới dạng JSON.
H:HTTP Header
Xem mã trạng thái HTTP và toàn bộ response header của một URL, kèm tóm tắt các security header như HSTS, CSP, X-Frame-Options.
301Kiểm tra chuyển hướng
Theo từng lần chuyển hướng 301, 302, 307, 308 của một URL và nhận toàn bộ chuỗi kèm mã trạng thái, URL cuối và số bước.