Site-wide conventions: HSTS preload, slashes, rendering, share image
https://seolyticize.com /api/v1/tools/get_site_conventions Four site-wide checks from a handful of live requests: whether the base domain qualifies for the HSTS preload list (max-age of a year or more, includeSubDomains, preload, http:// redirecting to https://; list membership itself is not checked); the trailing-slash convention, from up to samples crawled paths each asked for with and without the slash (one form redirecting to the other is consistent; both answering 200 is two addresses per page unless both name one canonical; some paths redirecting each way is mixed); dynamic rendering, suspected when Googlebot is served prerendered content and a browser an app shell with a fraction of the words (Google calls it a workaround, not a recommended solution); and the page's og:image, which should answer 200 and be at least 1200×630. url picks the page for the last two (default: the homepage). Answers 'are we ready for HSTS preload', 'do we have trailing-slash duplicates' and 'is our share image big enough'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredurlstringsamplesinteger{
"clientId": "string",
"url": null,
"samples": 8
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_site_conventions" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","url":null,"samples":8}'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_site_conventions
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_site_conventions
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_site_conventions
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_site_conventions
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_site_conventions
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_site_conventions
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_site_conventions
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger