What changed on the fields search engines read
https://seolyticize.com /api/v1/tools/get_seo_changes Compares each page's status, robots directives (meta and X-Robots-Tag), canonical, hreflang, title, H1 and structured data types between two crawls (default: the latest and the one before), counted by field and by URL template, with every change listed. Critical: noindex added, canonical changed, title dropped, 200 to 404/5xx, hreflang lost, H1 rewritten (under half its words kept) — the changes that cost rankings within days, the first five of which each crawl also files as regression-* issues. Warning: meta description changed, Open Graph tags removed, structured data values changed (schema hash), a Core Web Vital p75 more than 20% worse in Chrome's field data, a template's Lighthouse performance down 10 points or more. Notice: H2 outline changed, page copy changed (body hash). The description, og, h2 and body fields compare only crawls that recorded them. fields, severity and template narrow it. Answers 'what did the last release break', 'did a template lose its canonicals' and 'why did these pages drop out'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredcrawlIdstringagainstCrawlIdstringfieldsstring[]severitystringtemplatestringlimitinteger{
"clientId": "string",
"crawlId": "latest",
"againstCrawlId": null,
"fields": [],
"severity": null,
"template": null,
"limit": 200
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_seo_changes" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","crawlId":"latest","againstCrawlId":null,"fields":[],"severity":null,"template":null,"limit":200}'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/get_seo_changes
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_seo_changes
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_changes
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_changes
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_changes
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_changes
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_seo_changes
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger