SEO + AEO Audit
Shoukat · 1.0.0 · deterministic checks, evidence from the live response
88
B+

https://typesafe.ai

https://typesafe.ai/
HTTP 200 TTFB 501.3 ms server Framer/26fa766 checks 203 page saas_product fail 2 warn 29 pass 93

Category scorecard

Technical & Delivery
77
20 pass 13 warn 2 fail 9 info
Structured Data
83
5 pass 2 warn 0 fail 10 info
AEO Content & Trust
86
14 pass 5 warn 0 fail 24 info
AEO Infrastructure
91
13 pass 5 warn 0 fail 17 info
On-page SEO
94
16 pass 4 warn 0 fail 17 info
Crawlability & Indexing
100
25 pass 0 warn 0 fail 2 info

Assessment · what this means

The fundamentals hold. What remains is refinement rather than repair.

discover the pages 0.55parse and quote 0.88identify the business 0.52find trust signals 0.23

https://typesafe.ai scored 88 out of 100 (B+) across 203 checks, with 2 outright failures and 29 warnings. Jev typed the page as saas_product.

On the four questions that decide AI-answer visibility: machines partly discover the pages (0.55), clearly yes parse and quote the content (0.88), partly tell who the business is (0.52), and only weakly find signals to trust it (0.23).

The area with the most to gain is credibility signals. Worth doing this quarter rather than immediately.

At least one finding needs a human specialist rather than a generated file.

For whoever writes the content

0.90 · Topic vocabulary is echoed in the answer contentEcho the page's own topic terms in the lead and answer paragraphs.
0.75 · Definition/summary present in the first screenOpen with a 1-2 sentence definition or summary of the topic.

For a developer

1.35 · Images use modern formatsConvert the bulk of raster images to WebP or AVIF.
1.35 · Framing is controlledSend X-Frame-Options: DENY or CSP frame-ancestors 'none'.
0.90 · Viewport meta is correctUse <meta name="viewport" content="width=device-width, initial-scale=1">.

Files we can generate for you

0.68 · JSON-LD structured data is presentAdd a JSON-LD block (Organization and WebSite at minimum).
· This assessment was served from cache because the same page and findings were analysed before.
· 32 of 124 scored checks are our own threshold or an adjacent measurement rather than a documented requirement, and are marked as such below.
· Off-page drivers are the strongest known influence on AI citation and this tool cannot see them: brand web mentions correlate about 0.664 with AI Overview visibility against 0.218 for backlinks, and AI-perceived domain authority is reported as roughly 6x more influential than any page-level feature.
· Reddit and forum presence shapes AI answers but is not a property of the audited page.
· Per-engine citation monitoring needs the engine's own reporting (Search Console's generative AI report, Bing's AI Performance) rather than a fetch.
Judgements by Jev, prose assembled deterministically from the measured facts. jev-cached · 2527 Jev tokens · $0.00010613 · 899.1 ms · model jev-1.13.0

Evidence basis · why you can trust this number, and where not to

scored checks124 of 203 total. The rest are context (info) or not applicable to this page type.
rest on a source92 of 124 scored checks rest on a standard, a vendor requirement or vendor documentation.
our invention or proxy32 scored checks are our own threshold or an adjacent measurement. They are listed below and marked OUR-INVENTION or PROXY.
policy corrections6 check(s) were adjusted by evidence policy from what the module asserted. Each is recorded with its reason in the JSON.
standingcheck we still score
COMMUNITY-CONVENTIONllms.txt is present
aeo.llms_present
COMMUNITY-CONVENTIONMarkdown/plain-text page variant offered
aeo.md_variant
COMMUNITY-CONVENTIONAccept: text/markdown negotiation honored
aeo.accept_markdown
COMMUNITY-CONVENTIONContent served without a consent cookie
aeo.cookie_free
COMMUNITY-CONVENTIONSchema.org structured data present
aeo.schema_types
OUR-INVENTIONFAQ/Q&A block present in HTML
aeo.faq_block
OUR-INVENTIONParagraphs are short (median word count)
aeo.para_median
OUR-INVENTIONOpening paragraph is a direct answer (<60 words)
aeo.direct_answer
OUR-INVENTIONOnly one meta description
meta.description.duplicate
OUR-INVENTIONBelow-the-fold images lazy-load
images.lazy
OUR-INVENTIONPage has internal links
links.internal
OUR-INVENTIONNo empty anchor text
anchors.empty
OUR-INVENTIONOutbound links carry appropriate rel
links.external_rel
OUR-INVENTIONOpen Graph tags are complete
og.complete
OUR-INVENTIONog:image is absolute with dimensions
og.image_abs
OUR-INVENTIONTwitter card is configured
twitter.card
OUR-INVENTIONCharacter encoding is declared
meta.charset
OUR-INVENTIONViewport meta is set
meta.viewport
OUR-INVENTIONNo deprecated HTML tags
html.legacy_tags
OUR-INVENTIONInline styles/scripts are minimal
maintainability.inline
OUR-INVENTIONApple touch icon is declared
icons.apple_touch
PROXYPage has substantive content
aeo.content_length
PROXYDefinition/summary present in the first screen
aeo.first_screen
PROXYHTTP Last-Modified header present
aeo.http_last_modified
PROXYAuthor page is reachable
aeo.author_page
PROXYSocial profile links present
aeo.social_links
PROXYExternal links are followed
aeo.external_nofollow
PROXYSentence length is reasonable
aeo.sentence_length
PROXYH1 topic terms appear in the first paragraph
aeo.h1_in_first_paragraph
PROXYNo repeated sentences
aeo.duplicate_sentences
PROXYNo repeated headings
aeo.duplicate_headings
PROXYAlt text is descriptive
aeo.alt_text_quality
known limitsOff-page drivers are the strongest known influence on AI citation and this tool cannot see them: brand web mentions correlate about 0.664 with AI Overview visibility against 0.218 for backlinks, and AI-perceived domain authority is reported as roughly 6x more influential than any page-level feature.

Reddit and forum presence shapes AI answers but is not a property of the audited page.

Per-engine citation monitoring needs the engine's own reporting (Search Console's generative AI report, Bing's AI Performance) rather than a fetch.

Jev page profile · what applies to this page

page typesaas_product · decided by jev · 910.5 ms · 911 input tokens · jev-1.13.0
transactionalFalse
FAQ natural hereTrue
content-primaryFalse
not applicablenone, every check applied to this page type

Page snapshot

titleHome - TypeSafe AI (18 chars)
meta descriptionTypeSafe AI is an AI lab building machine-native intelligence infrastructure for automation, designed to make decisions within software. Try our first System One Model, Jev, in early access.
words827
h1 count2
links24 total, 16 internal
images22
structured data0 block(s): none

Failures, highest impact first

resultseveritycheckwt
failmediumImages use modern formatsVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
17/22 unoptimised; e.g. https://framerusercontent.com/images/ub9RBlmGZ0n3brL8IMauQjE23o.png?width=409...; https://framerusercontent.com/images/XFb8UYrphxzo3oDjnsjiEEnkczg.png?width=40...; https://framerusercontent.com/images/xfYFVnZ38Ftcb2Kkwzm7Rxk4ro.png?width=409...
Convert the bulk of raster images to WebP or AVIF.
1.5
failmediumFraming is controlledVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
No X-Frame-Options or CSP frame-ancestors; clickjacking is possible.
x-frame-options and frame-ancestors both absent
Send X-Frame-Options: DENY or CSP frame-ancestors 'none'.
1.5

Warnings

resultseveritycheckwt
warnmediumDefinition/summary present in the first screenPROXY
AEO Content & Trust
adjacent measurement unless listed below
First 2 paragraphs carry only 3 words — little to lift for a direct answer.
TypeSafe AI
Open with a 1-2 sentence definition or summary of the topic.
3.0
warnmediumTopic vocabulary is echoed in the answer contentVENDOR-DOCUMENTED
AEO Content & Trust
prompt-content alignment was the dominant on-page lever
1/6 distinctive title/H1 terms reappear in the answering content; missing: took, opposite, research, direction, home. (Proxy: token overlap for semantic prompt-content alignment.)
found: typesafe | missing: took, opposite, research, direction, home
Echo the page's own topic terms in the lead and answer paragraphs.
2.0
warnmediumViewport meta is correctVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
Viewport present but missing width=device-width or initial-scale.
width=device-width
Use <meta name="viewport" content="width=device-width, initial-scale=1">.
2.0
warnlowH1 topic terms appear in the first paragraphPROXY
AEO Content & Trust
adjacent measurement unless listed below
The opening paragraph does not reuse the H1's key terms.
H1: We took the opposite research direction vs first paragraph: TypeSafe AI
Reflect the H1 topic in the lead sentence.
1.5
warnlowJSON-LD structured data is presentVENDOR-DOCUMENTED
Structured Data
structured data is recommended, never required in order to rank
No JSON-LD was found. Google does not require structured data in order to rank; it is recommended and can enable rich results.
no <script type=application/ld+json> blocks in the raw HTML
Add a JSON-LD block (Organization and WebSite at minimum).
1.5
warnlowThird-party script domains are limitedVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
events.framer.com, framerusercontent.com
1.5
warnlowDOM size is reasonableVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
1686 elements
Trim widget-heavy markup.
1.5
warnmediumContent-Security-Policy is setVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
No CSP; XSS payloads have no allow-list to run against.
content-security-policy absent
Ship a restrictive Content-Security-Policy.
1.5
warnlow404 page is a styled HTML pageVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
404 has a title but no obvious navigation back into the site.
HTTP 404; title present, nav absent
Add nav/links to the 404 template.
1.5
warnmediumSchema.org structured data presentCOMMUNITY-CONVENTION
AEO Infrastructure
community practice unless listed below
No JSON-LD / microdata schema types found.
absence check: nothing matching this test was found on the page (see the detail line for what was searched)
Add JSON-LD (Article, WebPage, FAQPage, Product, ...).
1.0
warnlowAlt text is descriptivePROXY
AEO Content & Trust
adjacent measurement unless listed below
22 of 22 image(s) have empty or filename-style alt text.
(empty alt), (empty alt), (empty alt), (empty alt), (empty alt)
Describe images in alt text instead of leaving filenames.
1.0
warnmediumNo empty anchor textOUR-INVENTION
On-page SEO
our thresholds unless listed below
Links with no visible text are invisible to users and crawlers.
3 empty anchor(s), e.g. href="./"
Give every link visible text, or an aria-label/title.
1.0
warnlowCache max-age is saneVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
A sub-5-minute TTL on the HTML document defeats most caching.
max-age=0
Raise max-age for cacheable documents.
1.0
warnlowCharset is declaredVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
Charset declared in a <meta> tag but not the Content-Type header.
charset=utf-8 (meta)
Add charset to the Content-Type header too.
1.0
warnlowThird-party iframes are limitedVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
www.unicorn.studio
1.0
warnlowReferrer-Policy is setVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
Absent; the browser default (strict-origin-when-cross-origin) applies.
referrer-policy absent
1.0
warnlowPermissions-Policy is setVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
Absent; powerful browser features are open to any frame.
permissions-policy absent
1.0
warnlowWeb app manifest is linkedVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
no manifest link
Add <link rel="manifest" href="/manifest.webmanifest">.
1.0
warnlowllms.txt is presentCOMMUNITY-CONVENTION
AEO Infrastructure
A proposal by Answer.AI, not a standard of any body. Google has stated it does not use it.
No /llms.txt. llms.txt is a community proposal (llmstxt.org), not a standard of any standards body, and Google has stated it does not use it; its effect on citations is unproven.
HTTP 404
Publish /llms.txt as text/plain with a summary and key links if you want to support this community convention.
0.5
warnmediumMarkdown/plain-text page variant offeredCOMMUNITY-CONVENTION
AEO Infrastructure
text/markdown is IANA-registered but no fetch contract is documented
No .md / index.md variant returns markdown or plain text.
https://typesafe.ai/index.md -> HTTP 404 (text/html; charset=utf-8)
Serve a .md or /index.md mirror, or honor Accept: text/markdown.
0.5
warnlowFAQPage structured data presentVENDOR-DOCUMENTED
AEO Infrastructure
the FAQ rich result is retired; the schema.org type remains valid
No FAQPage schema; without it, an answer engine must infer Q&A pairs.
(no schema types)
Add FAQPage JSON-LD for the questions this page answers.
0.5
warnlowXML feed availableSTANDARDS-BACKED
AEO Infrastructure
feed format is standard; the citation benefit is not documented
No XML feed found in <link> tags or at the usual paths.
absence check: nothing matching this test was found on the page (see the detail line for what was searched)
Publish an RSS or Atom feed and link it from the page head.
0.5
warnlowNo repeated headingsPROXY
AEO Content & Trust
adjacent measurement unless listed below
1 heading(s) repeat verbatim.
x2: open roles
Deduplicate repeated headings.
0.5
warnlowOutbound links carry appropriate relOUR-INVENTION
On-page SEO
our thresholds unless listed below
Outbound links that are paid or untrusted should be nofollow/sponsored.
8/8 outbound link(s) are followed (no rel)
Add rel="nofollow" or rel="sponsored" where appropriate.
0.5
warnlowog:image is absolute with dimensionsOUR-INVENTION
On-page SEO
our thresholds unless listed below
Social platforms need an absolute URL and known dimensions to render the image immediately.
https://framerusercontent.com/images/RtIGTDwO43jR4ZDilesXiR5znc.jpg (missing og:image:width/height)
Use an absolute https URL and add og:image:width/height.
0.5
warnlowInline styles/scripts are minimalOUR-INVENTION
On-page SEO
our thresholds unless listed below
Heavy inline styling/scripting bloats HTML and blocks caching.
11 inline script(s), 9 <style> block(s), 916 style attr(s)
Move styles/scripts to external, cacheable files.
0.5
warnlowog:image dimensions are declaredVENDOR-DOCUMENTED
Structured Data
schema.org and Google structured data docs
og:image:width / og:image:height are missing.
absence check: nothing matching this test was found on the page (see the detail line for what was searched)
Add og:image:width and og:image:height.
0.5
warnlowsecurity.txt is publishedVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
No security.txt; security researchers have no contact route.
/.well-known/security.txt and /security.txt both absent
Publish /.well-known/security.txt per RFC 9116.
0.5
warnlowtheme-color meta is setVENDOR-DOCUMENTED
Technical & Delivery
web.dev and MDN guidance, security header specs
no theme-color meta
Add <meta name="theme-color" content="#...">.
0.5

Every check, by category

Technical & Delivery77/100 · 44 checks
resultseveritycheckwt
failmediumImages use modern formatsVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
17/22 unoptimised; e.g. https://framerusercontent.com/images/ub9RBlmGZ0n3brL8IMauQjE23o.png?width=409...; https://framerusercontent.com/images/XFb8UYrphxzo3oDjnsjiEEnkczg.png?width=40...; https://framerusercontent.com/images/xfYFVnZ38Ftcb2Kkwzm7Rxk4ro.png?width=409...
Convert the bulk of raster images to WebP or AVIF.
1.5
failmediumFraming is controlledVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No X-Frame-Options or CSP frame-ancestors; clickjacking is possible.
x-frame-options and frame-ancestors both absent
Send X-Frame-Options: DENY or CSP frame-ancestors 'none'.
1.5
warnmediumViewport meta is correctVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Viewport present but missing width=device-width or initial-scale.
width=device-width
Use <meta name="viewport" content="width=device-width, initial-scale=1">.
2.0
warnlowThird-party script domains are limitedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
events.framer.com, framerusercontent.com
1.5
warnlowDOM size is reasonableVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
1686 elements
Trim widget-heavy markup.
1.5
warnmediumContent-Security-Policy is setVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No CSP; XSS payloads have no allow-list to run against.
content-security-policy absent
Ship a restrictive Content-Security-Policy.
1.5
warnlow404 page is a styled HTML pageVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
404 has a title but no obvious navigation back into the site.
HTTP 404; title present, nav absent
Add nav/links to the 404 template.
1.5
warnlowCache max-age is saneVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
A sub-5-minute TTL on the HTML document defeats most caching.
max-age=0
Raise max-age for cacheable documents.
1.0
warnlowCharset is declaredVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Charset declared in a <meta> tag but not the Content-Type header.
charset=utf-8 (meta)
Add charset to the Content-Type header too.
1.0
warnlowThird-party iframes are limitedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
www.unicorn.studio
1.0
warnlowReferrer-Policy is setVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Absent; the browser default (strict-origin-when-cross-origin) applies.
referrer-policy absent
1.0
warnlowPermissions-Policy is setVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Absent; powerful browser features are open to any frame.
permissions-policy absent
1.0
warnlowWeb app manifest is linkedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
no manifest link
Add <link rel="manifest" href="/manifest.webmanifest">.
1.0
warnlowsecurity.txt is publishedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No security.txt; security researchers have no contact route.
/.well-known/security.txt and /security.txt both absent
Publish /.well-known/security.txt per RFC 9116.
0.5
warnlowtheme-color meta is setVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
no theme-color meta
Add <meta name="theme-color" content="#...">.
0.5
passinfoTime to first byte is within budgetVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
HEAD request to the final URL; includes connect + TLS + server processing and excludes body download, so it is a close proxy for TTFB. Full document (GET, body included) took 501.3 ms. Single unauthenticated request from the audit host; network latency dominates, so this band is a sanity check, not a ranking cutoff.
76.9 ms (HEAD)
2.0
passinfoHTML is served compressedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Compression negotiated with the audit client's Accept-Encoding (requests default gzip/deflate); a brotli-only server may appear uncompressed here even though real browsers get br.
content-encoding: gzip
2.0
passinfoContent-Type is text/htmlVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
text/html
2.0
passinfoStrict-Transport-Security set with long max-ageVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
max-age=31536000
2.0
passinfoCache-Control header is presentVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
public, max-age=0, must-revalidate
1.5
passinfoHTML document weight is reasonableVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Measured via content-length header.
82018 bytes
1.5
passinfoJS assets are compressedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
1/1 compressed (gzip)
1.5
passinfoRender-blocking stylesheet count is lowVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
0 render-blocking stylesheet(s) in <head>
Inline critical CSS or split stylesheets by media.
1.5
passinfoNo render-blocking scripts in <head>VENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
0 blocking external script(s) in <head>
Add defer (or async) to head scripts.
1.5
passinfoX-Content-Type-Options: nosniffVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
nosniff
1.5
passinfoServer banner hides its versionVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
server: Framer/26fa766
1.5
passinfoLegal & trust pages are reachableVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
4 of 7 common paths return 200.
privacy-policy=200 privacy=200 terms=200 terms-of-service=200 cookie-policy=404 contact=404 about=404
Publish privacy, terms and contact pages and link them site-wide.
1.5
passinfoDocument declares a DOCTYPEVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
1.0
passinfoConditional-request validator presentVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
etag: "ba3f056349b1fb740e4c6eb1e40d6b92"
1.0
passinfoExternal scripts use async or deferVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Body-end synchronous scripts are a legitimate pattern; flagged only as a count.
no external scripts
1.0
passinfoImage count is manageableVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
22 images
1.0
passinfoImages declare width & heightVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
22/22 have width+height
1.0
passinfoBelow-fold images are lazy-loadedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
22/22 images use loading=lazy
1.0
passinfoApple touch icon is declaredVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
https://framerusercontent.com/images/kcuF2BEp5XaVfkmFB634IPRKQH0.png
0.5
passinfoThird-party origins are preconnectedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
1 preconnect/dns-prefetch hint(s)
0.5
infoinfoHTTP protocol version (1.1 / 2 / 3)VENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
The negotiated protocol version is not exposed by the fetch layer (response headers do not carry it). Report only; not measured.
not observable via ctx.headers
0
infoinfoHTML vs referenced-asset transfer weightVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Only the first 5 CSS and 5 JS assets were fetched, and sizes are content-length as-served (i.e. already compressed when an encoding is present). Nothing is estimated.
HTML 82018 bytes; 1 measured asset(s) 0 bytes
0
infoinfoCSS assets are compressedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No external assets of this type to test.
0
infoinfohumans.txt is publishedVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No humans.txt (an optional credits file).
/humans.txt = 404
0
infoinfoService worker is registeredVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No serviceWorker.register() call found in inline scripts; not every site is a PWA.
no service worker registration string
0
infoinfoTap targets are large enoughVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Requires a rendered layout; not measurable from static HTML.
0
infoinfoBase font size is legible on mobileVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Requires rendering; not measurable from static HTML.
0
infoinfoCDN / edge location hintVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
No recognised CDN/edge header present.
0
infoinfoTrailing-slash variant canonicalisesVENDOR-DOCUMENTED
web.dev and MDN guidance, security header specs
Audited URL is the root; no trailing-slash variant to test.
0
Structured Data83/100 · 17 checks
resultseveritycheckwt
warnlowJSON-LD structured data is presentVENDOR-DOCUMENTED
structured data is recommended, never required in order to rank
No JSON-LD was found. Google does not require structured data in order to rank; it is recommended and can enable rich results.
no <script type=application/ld+json> blocks in the raw HTML
Add a JSON-LD block (Organization and WebSite at minimum).
1.5
warnlowog:image dimensions are declaredVENDOR-DOCUMENTED
schema.org and Google structured data docs
og:image:width / og:image:height are missing.
absence check: nothing matching this test was found on the page (see the detail line for what was searched)
Add og:image:width and og:image:height.
0.5
passinfoog:image is absolute and reachableVENDOR-DOCUMENTED
schema.org and Google structured data docs
https://framerusercontent.com/images/RtIGTDwO43jR4ZDilesXiR5znc.jpg
no og:image declared in <head>
1.5
passinfoog:url matches the canonicalVENDOR-DOCUMENTED
schema.org and Google structured data docs
1.0
passinfoog:type matches the contentVENDOR-DOCUMENTED
schema.org and Google structured data docs
og:type=website
0.5
passinfotwitter:card value is validVENDOR-DOCUMENTED
schema.org and Google structured data docs
twitter:card=summary_large_image
0.5
passinfotwitter:image is presentVENDOR-DOCUMENTED
schema.org and Google structured data docs
0.5
infoinfoEvery JSON-LD block is an object or @graphVENDOR-DOCUMENTED
schema.org and Google structured data docs
No JSON-LD blocks to inspect.
0
infoinfoMicrodata usageVENDOR-DOCUMENTED
schema.org and Google structured data docs
0 element(s) with itemscope. Site does not use Microdata.
0
infoinfoRDFa usageVENDOR-DOCUMENTED
schema.org and Google structured data docs
0 element(s) with @typeof. Site does not use RDFa.
0
infoinfoSchema types found on the pageVENDOR-DOCUMENTED
schema.org and Google structured data docs
No @type values found.
0
infoinfoImage, logo, url and @id values are absolute URLsVENDOR-DOCUMENTED
full URLs recommended
No structured-data URL values to inspect.
0
infoinfoNo conflicting duplicate schemaVENDOR-DOCUMENTED
schema.org and Google structured data docs
No typed nodes to compare for conflicts.
0
infoinfoNo deprecated or superseded typesVENDOR-DOCUMENTED
schema.org and Google structured data docs
No schema types found to check for deprecation.
0
infoinfoFAQ questions match visible page contentVENDOR-REQUIRED
markup must match visible content
No FAQPage questions to compare.
0
infoinfoOffer prices match visible page contentVENDOR-DOCUMENTED
schema.org and Google structured data docs
No Offer nodes to compare.
0
infoinfoArticle headline matches the page h1VENDOR-DOCUMENTED
schema.org and Google structured data docs
No Article headline and/or h1 to compare.
0
AEO Content & Trust86/100 · 43 checks
resultseveritycheckwt
warnmediumDefinition/summary present in the first screenPROXY
adjacent measurement unless listed below
First 2 paragraphs carry only 3 words — little to lift for a direct answer.
TypeSafe AI
Open with a 1-2 sentence definition or summary of the topic.
3.0
warnmediumTopic vocabulary is echoed in the answer contentVENDOR-DOCUMENTED
prompt-content alignment was the dominant on-page lever
1/6 distinctive title/H1 terms reappear in the answering content; missing: took, opposite, research, direction, home. (Proxy: token overlap for semantic prompt-content alignment.)
found: typesafe | missing: took, opposite, research, direction, home
Echo the page's own topic terms in the lead and answer paragraphs.
2.0
warnlowH1 topic terms appear in the first paragraphPROXY
adjacent measurement unless listed below
The opening paragraph does not reuse the H1's key terms.
H1: We took the opposite research direction vs first paragraph: TypeSafe AI
Reflect the H1 topic in the lead sentence.
1.5
warnlowAlt text is descriptivePROXY
adjacent measurement unless listed below
22 of 22 image(s) have empty or filename-style alt text.
(empty alt), (empty alt), (empty alt), (empty alt), (empty alt)
Describe images in alt text instead of leaving filenames.
1.0
warnlowNo repeated headingsPROXY
adjacent measurement unless listed below
1 heading(s) repeat verbatim.
x2: open roles
Deduplicate repeated headings.
0.5
passinfoPage has substantive contentPROXY
adjacent measurement unless listed below
827 words of body text
2.0
passinfoClaim density and specificityVENDOR-DOCUMENTED
Princeton GEO found statistics addition among the strongest methods
126 numbers, 3 percentages, 9 dates, 0 unit mentions and 3 currency amounts. Scored: Princeton GEO (KDD'24) found 'Statistics Addition' among the top methods (~+37% relative visibility); specific figures are what answer engines lift. (Threshold is our proxy, not a documented standard.)
15 specific citable figures
2.0
passinfoFreshness is verifiableVENDOR-DOCUMENTED
freshness is a documented signal, modest in effect
1 freshness signal(s) present.
Sun, 27 Sep 2026 22:27:30 GMT
2.0
passinfoPage text is quotable (snippet control)VENDOR-DOCUMENTED
nosnippet, max-snippet and data-nosnippet are documented controls
No nosnippet / max-snippet / data-nosnippet directive found — the page text is eligible to be quoted.
2.0
passinfoCitation crawlers can access the siteVENDOR-DOCUMENTED
per-vendor crawler documentation
No citation crawler is blocked in robots.txt (or no matching group, which defaults to allowed).
OAI-SearchBot:allowed; PerplexityBot:allowed; Claude-SearchBot:allowed; ChatGPT-User:allowed; Perplexity-User:allowed; Amzn-SearchBot:allowed; Meta-WebIndexer:allowed; Googlebot:allowed
2.0
passinfoContent is accessible to answer enginesVENDOR-DOCUMENTED
documented property
No `isAccessibleForFree` marker and no paywall / login-wall markup detected — the text is accessible to answer engines.
2.0
passinfoMachine-readable freshnessVENDOR-DOCUMENTED
lastmod and HTTP validators are the machine-readable freshness signals
A machine-readable freshness signal (HTTP Last-Modified header and/or sitemap <lastmod>) is present — the machine-readable half of freshness, which Bing documents as a signal.
Sun, 27 Sep 2026 22:27:30 GMT
1.5
passinfoSocial profile links presentPROXY
adjacent measurement unless listed below
2 social profile(s) linked.
linkedin.com, x.com
1.5
passinfoHTTP Last-Modified header presentPROXY
adjacent measurement unless listed below
The response carries a Last-Modified header.
Sun, 27 Sep 2026 22:27:30 GMT
1.0
passinfoOutbound citations existVENDOR-DOCUMENTED
outbound linking is documented practice
2 external link(s) to 1 domain(s).
ashbyhq.com
1.0
passinfoNo repeated sentencesPROXY
adjacent measurement unless listed below
No sentence (≥8 words) repeats verbatim.
1.0
passinfoAuthor page is reachablePROXY
adjacent measurement unless listed below
https://typesafe.ai/team
0.5
passinfoExternal links are followedPROXY
adjacent measurement unless listed below
2 followed vs 0 nofollow/sponsored/ugc.
0.5
passinfoSentence length is reasonablePROXY
adjacent measurement unless listed below
avg 13.3 words/sentence; longest (61 words): TypeSafe AI Manifesto Our Team Docs Sign in Contact sales Manifesto Team Contact ∵ ⩆ ⩆ ∵ Clock Tool 1.1 Sunday, Sep 27, 2026 22:2...
0.5
infoinfoHeadings phrased as questionsOUR-INVENTION
Q&A formatting alone did not improve absorption
No heading ends in '?'. Not scored: question-shaped headings are formatting, not a documented citation lever.
0 question headings
0
infoinfoFAQ-style Q&A pair presentOUR-INVENTION
format alone does not help; alignment does, so this is measured but not scored
No question heading is immediately followed by an answer paragraph. Not scored: FAQ formatting is not a documented citation driver.
0
infoinfoList/table densityPROXY
adjacent measurement unless listed below
0 <li> + 0 <tr> = 0 structured items per 827 words → 0.0 per 1000 words.
0
infoinfoParagraph length is scannableOUR-INVENTION
our metric, no evidence it affects citation
199 paragraphs; average 3.9 words, median 2 words. Not scored: no study ties paragraph length to AI citation; Google states chunking is not required.
0
infoinfoNo single oversized paragraphOUR-INVENTION
our metric, no evidence
Longest paragraph is 58 words. Not scored: paragraph size is not a documented citation driver.
Reinforcement Learning from Human Feedback (RLHF) has led to LLMs that are optimized for human preferences. This has led to models that are superhuman at ins...
0
infoinfoTL;DR / summary block presentOUR-INVENTION
no evidence
A summary-style block was detected. Not scored: TLDR/BLUF is a weak positive (Discovered Labs +0.05), too small to weigh.
The Bitterest Lesson Read More TL;DR: Compute drives progress in AI, but what good is progress if you are not doing the right task! AI: too good to be true, too bad to be useful | TypeSafe AI Read ...
0
infoinfoPublished date is declaredPROXY
adjacent measurement unless listed below
No datePublished / article:published_time signal found.
0
infoinfoModified date is declaredPROXY
adjacent measurement unless listed below
No dateModified / article:modified_time signal found.
0
infoinfoVisible 'last updated' text presentPROXY
adjacent measurement unless listed below
No visible 'last updated / reviewed' text found.
0
infoinfoAuthor byline is detectablePROXY
author signals showed an inverse correlation in one large study; scoring this would mislead
No author signal found. Not scored: bylines are human-trust hygiene, not an AI-citation lever (Seer: inverse correlation).
0
infoinfoAbout page is reachablePROXY
adjacent measurement unless listed below
No /about, /about-us or /company page responded 200. Not scored: EEAT surface is not a documented citation driver.
probed /about /about-us /company /about.html — none returned 200
0
infoinfoContact page is reachablePROXY
adjacent measurement unless listed below
No /contact, /contact-us, /support or /help page responded 200. Not scored: EEAT surface is not a citation driver.
0
infoinfoContact methods are discoverablePROXY
adjacent measurement unless listed below
Email/phone/address found. Not scored: contact discoverability is EEAT hygiene, not a documented AI-citation lever.
email: hello@typesafe.ai
0
infoinfoPhysical address presentPROXY
adjacent measurement unless listed below
No street address or Organization-address schema found (expected for local/brick-and-mortar businesses).
0
infoinfoPrivacy policy is reachablePROXY
adjacent measurement unless listed below
A privacy policy is reachable. Not scored: EEAT/legitimacy hygiene, not a documented AI-citation lever.
https://typesafe.ai/privacy, https://typesafe.ai/privacy-policy
0
infoinfoTerms page is reachablePROXY
adjacent measurement unless listed below
A terms page is reachable. Not scored: EEAT/legitimacy hygiene, not a documented AI-citation lever.
https://typesafe.ai/terms, https://typesafe.ai/terms-of-service
0
infoinfoRefund/returns policy is reachablePROXY
adjacent measurement unless listed below
No Product/Offer schema or cart/checkout cues, so a refund policy was not expected.
0
infoinfoOrganization name is consistentPROXY
adjacent measurement unless listed below
No Organization schema name found to compare against the title/footer.
0
infoinfoCites high-authority sourcesOUR-INVENTION
the favoured-domain list is ours
External links exist but none match the fixed high-authority list. Not scored: the list is arbitrary, not evidence-based.
ashbyhq.com
0
infoinfoReadability is computableOUR-INVENTION
no evidence that Flesch scores relate to citation
Flesch Reading Ease 51.9, Flesch-Kincaid grade 10.1 (syllable-counted, 809 words / 49 sentences). Not scored: readability is human hygiene, not a documented AI-citation lever.
0
infoinfoTop topic termsPROXY
adjacent measurement unless listed below
Top 10 terms after stopword removal: jev (17), models (17), gpt (12), decisions (11), typesafe (11), intelligence (9), rlhf (9), chat (8), llm (7), rlcd (7).
0
infoinfoPrimary language detectedPROXY
adjacent measurement unless listed below
Latin-script / English (en) — 4258 Latin chars vs 0 Arabic-script
0
infoinfoFAQ/Q&A schema presentPROXY
adjacent measurement unless listed below
No FAQPage/QAPage schema (a bonus, not required).
0
infoinfoAttributable entity summaryPROXY
adjacent measurement unless listed below
Present: author=(none); organization schema=(none); publisher=(none); sameAs count=0. Missing: author, organization schema, publisher.
0
AEO Infrastructure91/100 · 35 checks
resultseveritycheckwt
warnmediumSchema.org structured data presentCOMMUNITY-CONVENTION
community practice unless listed below
No JSON-LD / microdata schema types found.
absence check: nothing matching this test was found on the page (see the detail line for what was searched)
Add JSON-LD (Article, WebPage, FAQPage, Product, ...).
1.0
warnlowllms.txt is presentCOMMUNITY-CONVENTION
A proposal by Answer.AI, not a standard of any body. Google has stated it does not use it.
No /llms.txt. llms.txt is a community proposal (llmstxt.org), not a standard of any standards body, and Google has stated it does not use it; its effect on citations is unproven.
HTTP 404
Publish /llms.txt as text/plain with a summary and key links if you want to support this community convention.
0.5
warnmediumMarkdown/plain-text page variant offeredCOMMUNITY-CONVENTION
text/markdown is IANA-registered but no fetch contract is documented
No .md / index.md variant returns markdown or plain text.
https://typesafe.ai/index.md -> HTTP 404 (text/html; charset=utf-8)
Serve a .md or /index.md mirror, or honor Accept: text/markdown.
0.5
warnlowFAQPage structured data presentVENDOR-DOCUMENTED
the FAQ rich result is retired; the schema.org type remains valid
No FAQPage schema; without it, an answer engine must infer Q&A pairs.
(no schema types)
Add FAQPage JSON-LD for the questions this page answers.
0.5
warnlowXML feed availableSTANDARDS-BACKED
feed format is standard; the citation benefit is not documented
No XML feed found in <link> tags or at the usual paths.
absence check: nothing matching this test was found on the page (see the detail line for what was searched)
Publish an RSS or Atom feed and link it from the page head.
0.5
passinforobots.txt does not blanket-block all AI crawlersSTANDARDS-BACKED
blanket disallow semantics
3.0
passinfoCitation bots are not blockedVENDOR-DOCUMENTED
training crawlers and citation crawlers behave differently; Google-Extended does not control AI Overviews
None of the 12 citation bots are blocked at the root.
2.0
passinfoPrimary text present in raw HTMLVENDOR-DOCUMENTED
JS rendering guidance; answer crawlers often do not execute scripts
827 words present in the raw HTML.
827 words
2.0
passinfoHomepage is served as text/htmlSTANDARDS-BACKED
content type semantics
Answer engines can parse an HTML document.
text/html
1.0
passinfoSitemap is plain XML (no JS)STANDARDS-BACKED
sitemap protocol
14 URL(s) in plain XML.
text/xml · https://typesafe.ai/sitemap.xml
1.0
passinfoContent served without a consent cookieCOMMUNITY-CONVENTION
plausible, not documented
The server set no cookies, so no cookie-gated consent wall blocks the first bytes.
1.0
passinfoMeta description presentVENDOR-DOCUMENTED
snippet suggestion, not a ranking requirement
Answer engines use the description as a citation snippet.
TypeSafe AI is an AI lab building machine-native intelligence infrastructure for automation, designed to make decisions within software. Try our first System One Model, Jev, in early access.
1.0
passinfoCharacter encoding is declaredSTANDARDS-BACKED
character encoding declaration
from <meta charset>
0.5
passinfoAccept: text/markdown negotiation honoredCOMMUNITY-CONVENTION
community practice
The server returns a markdown/plain content-type when asked.
Accept: text/html -> 'text/html' | Accept: text/markdown -> 'text/markdown'
0.5
passinfoFAQ/Q&A block present in HTMLOUR-INVENTION
no documented effect on citation
FAQ signal detected viaheading.
0 <details>, 0 faq-classed element(s)
0.5
passinfoParagraphs are short (median word count)OUR-INVENTION
our metric, no documented threshold
Short paragraphs are easier for an answer engine to lift.
median 2 words across 181 paragraphs
0.5
passinfoOpening paragraph is a direct answer (<60 words)OUR-INVENTION
our metric, no documented threshold
A short opening paragraph reads as a direct answer.
TypeSafe AI
0.5
passinfoOpen Graph title and description presentVENDOR-DOCUMENTED
social preview, not a search signal
Home - TypeSafe AI
0.5
infoinfollms.txt is served as text/plain or text/markdownCOMMUNITY-CONVENTION
no fetch contract is documented by any vendor
llms.txt not available to inspect.
0.5
infoinfollms.txt parses as markdownCOMMUNITY-CONVENTION
format is the proposal's own convention
llms.txt not available to inspect.
0.5
infoinfollms.txt has an H1COMMUNITY-CONVENTION
the proposal's shape, not a requirement
llms.txt not available to inspect.
0.5
infoinfollms.txt contains a markdown linkCOMMUNITY-CONVENTION
the proposal's shape, not a requirement
llms.txt not available to inspect.
0.5
infoinfoCitation meta tags presentVENDOR-DOCUMENTED
scholarly indexing only
No citation_* / Dublin Core meta tags.
0.5
infoinfollms.txt is under our heuristic size limitOUR-INVENTION
the 512KB ceiling is ours
llms.txt not available to inspect.
0
infoinfollms-full.txt full-content exportCOMMUNITY-CONVENTION
community practice unless listed below
No /llms-full.txt (HTTP 404). Optional full-content export.
0
infoinfoAI crawler access matrixCOMMUNITY-CONVENTION
community practice unless listed below
Resolved from robots.txt for 24 agents (12 citation, 12 training/data).
GPTBot: allowed; ClaudeBot: allowed; Google-Extended: allowed; Applebot-Extended: allowed; CCBot: allowed; Bytespider: allowed; Meta-ExternalAgent: allowed; Amazonbot: allowed; cohere-ai: allowed; Diffbot: allowed; Timpibot: allowed; ImagesiftBot: allowed; OAI-SearchBot: allowed; ChatGPT-User: allowed; PerplexityBot: allowed; Perplexity-User: allowed; Claude-SearchBot: allowed; Claude-User: allowed; Googlebot: allowed; Applebot: allowed; DuckAssistBot: allowed; YouBot: allowed; Amzn-SearchBot: allowed; Meta-WebIndexer: allowed
0
infoinfoTraining/data bots are blockedVENDOR-DOCUMENTED
blocking a training crawler is a licensing choice, not an AEO loss
None of the 12 training/data bots are blocked.
0
infoinfollms.txt references the audited pageCOMMUNITY-CONVENTION
community practice unless listed below
No /llms.txt to check.
0
infoinfoDefinition lists presentCOMMUNITY-CONVENTION
community practice unless listed below
No <dl> term/definition pairs.
0
infoinfoTables presentCOMMUNITY-CONVENTION
community practice unless listed below
No <table> elements.
0
infoinfoOrdered lists presentCOMMUNITY-CONVENTION
community practice unless listed below
No <ol> ordered-list elements.
0
infoinfoFeed probe matrixCOMMUNITY-CONVENTION
community practice unless listed below
Result of probing page <link> tags and common feed paths.
https://typesafe.ai/feed -> HTTP 404 (text/html; charset=utf-8); https://typesafe.ai/rss.xml -> HTTP 404 (text/html; charset=utf-8); https://typesafe.ai/atom.xml -> HTTP 404 (text/html; charset=utf-8); https://typesafe.ai/feed.xml -> HTTP 404 (text/html; charset=utf-8); https://typesafe.ai/rss -> HTTP 404 (text/html; charset=utf-8)
0
infoinfoai.txt security policy publishedCOMMUNITY-CONVENTION
community practice unless listed below
Optional machine-readable AI-usage policy.
/ai.txt -> HTTP 404; /.well-known/ai.txt -> HTTP 404
0
infoinfoJSON-LD blocks are validCOMMUNITY-CONVENTION
community practice unless listed below
No JSON-LD blocks on the page.
0
infoinfoPage has an H1 headingSTANDARDS-BACKED
HTML permits multiple h1 elements; no engine documents a count rule
2 H1 elements. HTML permits multiple H1s and neither Google nor Bing documents a count rule; visual prominence is what matters, not the tag count.
We took the opposite research direction | 193.6x Faster, 444.6x Cheaper.
0
On-page SEO94/100 · 37 checks
resultseveritycheckwt
warnmediumNo empty anchor textOUR-INVENTION
our thresholds unless listed below
Links with no visible text are invisible to users and crawlers.
3 empty anchor(s), e.g. href="./"
Give every link visible text, or an aria-label/title.
1.0
warnlowOutbound links carry appropriate relOUR-INVENTION
our thresholds unless listed below
Outbound links that are paid or untrusted should be nofollow/sponsored.
8/8 outbound link(s) are followed (no rel)
Add rel="nofollow" or rel="sponsored" where appropriate.
0.5
warnlowog:image is absolute with dimensionsOUR-INVENTION
our thresholds unless listed below
Social platforms need an absolute URL and known dimensions to render the image immediately.
https://framerusercontent.com/images/RtIGTDwO43jR4ZDilesXiR5znc.jpg (missing og:image:width/height)
Use an absolute https URL and add og:image:width/height.
0.5
warnlowInline styles/scripts are minimalOUR-INVENTION
our thresholds unless listed below
Heavy inline styling/scripting bloats HTML and blocks caching.
11 inline script(s), 9 <style> block(s), 916 style attr(s)
Move styles/scripts to external, cacheable files.
0.5
passinfoPage has a <title>VENDOR-REQUIRED
a title is used to generate the title link
"Home - TypeSafe AI"
3.0
passinfoViewport meta is setOUR-INVENTION
our thresholds unless listed below
width=device-width
2.0
passinfoHeading hierarchy has no skipsVENDOR-DOCUMENTED
logical hierarchy documented by Bing
1.5
passinfoImage alt coverageSTANDARDS-BACKED
WCAG 1.1.1 requires text alternatives
22/22 images have descriptive or decorative (empty) alt text (100.0%)
1.5
passinfoOpen Graph tags are completeOUR-INVENTION
our thresholds unless listed below
og:title, og:description, og:image, og:url, og:type all present
1.5
passinfoFirst 100 words contain real contentVENDOR-DOCUMENTED
surface key information early
Opens with "Home - TypeSafe AI TypeSafe AI Manifesto Our Team Docs Sign in Contact sales Manifesto Team Contact TypeSafeAI 1.1 Lo..."
1.0
passinfoImages declare width/heightVENDOR-DOCUMENTED
layout shift guidance
Every image carries explicit dimensions.
1.0
passinfoPage has internal linksOUR-INVENTION
our thresholds unless listed below
9 unique internal link(s)
1.0
passinfoAnchors are descriptiveVENDOR-DOCUMENTED
relevant anchor text documented by Bing
1.0
passinfoCharacter encoding is declaredOUR-INVENTION
our thresholds unless listed below
utf-8
1.0
passinfoNo deprecated HTML tagsOUR-INVENTION
our thresholds unless listed below
1.0
passinfoOnly one meta descriptionOUR-INVENTION
our thresholds unless listed below
0.5
passinfoMeta description is presentVENDOR-DOCUMENTED
documented as a suggestion Google sometimes uses
TypeSafe AI is an AI lab building machine-native intelligence infrastructure for automation, designed to make decisions within software. Try our first System...
0.5
passinfoBelow-the-fold images lazy-loadOUR-INVENTION
our thresholds unless listed below
22/22 images lazy-loading
0.5
passinfoTwitter card is configuredOUR-INVENTION
our thresholds unless listed below
twitter:card=summary_large_image with image
0.5
passinfoApple touch icon is declaredOUR-INVENTION
our thresholds unless listed below
https://framerusercontent.com/images/kcuF2BEp5XaVfkmFB634IPRKQH0.png
0.5
infoinfoTitle length is in a healthy bandOUR-INVENTION
Google documents no limit; truncation is by device width
Title is 18 characters. Google documents no limit; the title link is truncated in Search results as needed, typically to fit the device width (https://developers.google.com/search/docs/appearance/title-link). The 30-65 character band is ours, not Google's.
0
infoinfoTitle is not a copy of the H1OUR-INVENTION
no documentation requires the title to differ from the h1
Title and H1 differ. No documentation requires the title to differ from the H1.
0
infoinfoMeta description length is in bandOUR-INVENTION
no documented limit
Meta description is 190 characters. Google documents no limit; the snippet is truncated in Search results as needed, typically to fit the device width (https://developers.google.com/search/docs/appearance/snippet). The 70-160 character band is ours.
0
infoinfoExactly one H1STANDARDS-BACKED
multiple h1 is valid HTML; no documented count rule
2 <h1> elements. Multiple H1s are valid HTML; the documented concern is visual prominence, not the tag count (Google's title-link guidance warns against headings of equal visual weight). No count rule is documented.
0
infoinfoH1 length is reasonableOUR-INVENTION
our band, nothing documents it
No single H1 to measure. The 3-60 character band is ours; nothing documents it.
0
infoinfoHeading count is saneOUR-INVENTION
our threshold
9 heading(s) on the page. The <=30 threshold is ours; no engine documents a heading-count limit.
0
infoinfoPage word countVENDOR-DOCUMENTED
thin content guidance exists, with no number
827 words in the main visible text. No universal minimum; very thin pages are typically under ~300 words but this is not a ranking law.
0
infoinfoText-to-HTML ratioOUR-INVENTION
our threshold
1.0% text-to-HTML ratio. The >=10% threshold is ours; no engine documents a text-to-HTML ratio requirement.
0
infoinfoA clear primary CTA is presentOUR-INVENTION
conversion practice, not a search signal
No CTA copy was matched. A call to action is conversion practice, not a ranking factor.
0
infoinfoTitle/description share terms with the H1OUR-INVENTION
our thresholds unless listed below
H1 "We took the opposite research direction" shares 0 of 5 terms with the title and 0 with the description.
0
infoinfoContent language vs lang attributeOUR-INVENTION
our thresholds unless listed below
lang="en"; dominant script in text is Latin (Latin 4258, Arabic 0, Hebrew 0, CJK 0); matches the declared language.
0
infoinfoModern image formats in useVENDOR-DOCUMENTED
format guidance
No raster images (webp/avif/png/jpg) detected; possibly SVG or none.
0
infoinfoOrphan-page signal (links vs sitemap)OUR-INVENTION
our thresholds unless listed below
Page links to 9 internal URL(s); the sitemap lists 14 URL(s). A page that links to nothing is a dead end; true orphan status (nothing links to THIS page) cannot be measured from here.
0
infoinfotarget=_blank links use rel=noopenerOUR-INVENTION
a security concern, not a search signal
6/6 target=_blank link(s) missing rel=noopener. This is a security concern (reverse-tabnabbing), not a search signal.
0
infoinfotheme-color is declaredOUR-INVENTION
our thresholds unless listed below
No theme-color meta tag (affects mobile browser chrome only).
0
infoinfoMeta keywords tagOUR-INVENTION
our thresholds unless listed below
No meta keywords tag (fine; it is largely ignored).
0
infoinfoRTL pages declare dir="rtl"OUR-INVENTION
our thresholds unless listed below
lang="en" is not RTL; dir check not applicable.
0
Crawlability & Indexing100/100 · 27 checks
resultseveritycheckwt
passinfoServed over HTTPSSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
3.0
passinfoHomepage returns HTTP 200STANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
3.0
passinforobots.txt does not block the whole siteSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
3.0
passinfoCanonical link is declaredSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
https://typesafe.ai/
3.0
passinfoPage is not marked noindexSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
3.0
passinfoXML sitemap is present and validSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
https://typesafe.ai/sitemap.xml with 14 <loc> entries
2.5
passinfohttp:// redirects to https://STANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
http:// upgrades to https://
https://typesafe.ai/
2.0
passinforobots.txt existsSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
64 bytes
2.0
passinfoCanonical points at this pageSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
2.0
passinfox-robots-tag does not block indexingSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
2.0
passinfoMissing pages return 404, not a soft 200STANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
Probe returned HTTP 404
2.0
passinfoRedirect chain is shortSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
0 redirect(s) before the final document.
1.5
passinforobots.txt advertises a sitemapSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
https://typesafe.ai/sitemap.xml
1.5
passinfowww and non-www agree on the canonical hostSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
1.5
passinforobots.txt is not an HTML error pageSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
1.0
passinfoSitemap lists URLsSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
14 URL(s) listed
1.0
passinfoHomepage appears in the sitemapSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
1.0
passinfoCanonical is an absolute URLSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
1.0
passinfohtml lang attribute is setSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
lang="en"
1.0
passinfoURL length is reasonableSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
20 characters
1.0
passinfoCanonical URL has no tracking parametersSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
1.0
passinfoRedirects do not expose a default portSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
0.5
passinfoURL uses hyphens not underscoresSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
0.5
passinfoHostname is lowercaseSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
0.5
passinfoFavicon is declaredSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
0.5
infoinfohreflang annotations presentSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
No hreflang set. Fine for a single-language site, a gap for multi-locale.
0
infoinfoads.txt is publishedSTANDARDS-BACKED
robots.txt protocol, sitemap protocol, W3C HTML and URL specs
No ads.txt. Only relevant if you sell ad inventory.
0