Is the sitemap telling the truth
https://seolyticize.com /api/v1/tools/validate_sitemap Checks the sitemaps a crawl read against the pages it found: entries that do not answer 200, are noindexed or are canonicalised elsewhere; indexable pages no sitemap lists (the sitemap's coverage of the crawl) and listed pages the crawl never reached (the crawl's coverage of the sitemap); lastmod accuracy against the previous crawl (content changed but lastmod did not, lastmod moved but nothing changed, dates in the future, every entry stamped with the build date); image and video sitemap coverage; and the entries added, removed and re-dated since the previous crawl. With checkFiles (default on) it also reads each sitemap file live, up to 20 — robots.txt's Sitemap: lines, the files the crawl read and what an index names — and judges each on its own: over 50,000 URLs or 50 MB uncompressed (critical), XML errors with their line number, not declared in robots.txt, http:// entries, <priority>/<changefreq> (ignored by Google), over 1,000 image:image per URL and the deprecated image tags, video entries missing thumbnail_loc, title, description or a content/player address, and news sitemaps over 1,000 entries, older than two days or missing publication name, language, date or title. Answers 'is our sitemap clean', 'does Google trust our lastmod' and 'which pages are missing from the sitemap'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredcrawlIdstringcheckFilesboolean{
"clientId": "string",
"crawlId": "latest",
"checkFiles": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/validate_sitemap" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","crawlId":"latest","checkFiles":true}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/validate_sitemap
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/validate_sitemap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/validate_sitemap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/validate_sitemap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/validate_sitemap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/validate_sitemap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/validate_sitemap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger