Descriptions a template wrote
https://seolyticize.com /api/v1/tools/check_templated_metadata Reads every crawled page's title and meta description (latest crawl, or crawlId) for the shapes bulk generation leaves: a description that opens by restating its own title and closes on a stock call to action ('Try it free now.', 'Get started today!'; templated, high), one that only echoes the title (medium), the title's brand suffix pasted into the description (low), and a description that is the title again (medium). Site risk is high when 3 or more pages and at least 30% of those checked are templated, medium from 10%; a stock closer shared by 3 or more pages is flagged too. Returns the counts, the shared closers, and the flagged pages worst first with a fix each. Deterministic string comparison: a heuristic, which claims no Google update targeted the pattern. Answers 'are our meta descriptions templated' and 'which descriptions should we rewrite'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredcrawlIdstring{
"clientId": "string",
"crawlId": "latest"
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/check_templated_metadata" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","crawlId":"latest"}'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/check_templated_metadata
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/check_templated_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/check_templated_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/check_templated_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/check_templated_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/check_templated_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/check_templated_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger