https://anthropic.com/research
0
4
19
Response status code: 200
The page should return HTTP 200. Redirects (3xx) are followed before this check, so anything other than 200 here is a real error.
Expected: 200
Value: 200
"Date": Tue, 16 Jun 2026 19:38:40 GMT
"X-Robots-Tag"
A server-level robots directive sent as an HTTP header. If it contains noindex, search engines will not index the page even if the HTML and robots meta tag say otherwise.
Expected: no noindex directive
Value: (not set)
"Content-Type"
[ + ] [ + ]An SEO audit target should be served as text/html. PDFs, JSON, or other content types are not crawled the same way.
Expected: text/html
Value: text/html; charset=utf-8
"Cache-Control"
[ + ] [ + ]Tells browsers and intermediaries how long to cache the response. Missing cache-control means clients fall back to heuristic defaults, which can hurt repeat-visit performance.
Expected: present
Value: private, no-cache, no-store, max-age=0, must-revalidate
"Strict-Transport-Security"
[ + ] [ + ]HSTS header tells browsers to only connect to this domain over HTTPS. A security best practice and a minor ranking signal.
Expected: present
Present: false
robots.txt allows our user agent
[ + ] [ + ]The site's robots.txt must allow our user agent. If disallowed, the audit returns 502 and is not charged.
Expected: allowed
Allowed: true
User agent: minifetch/1.0 (+https://minifetch.com/site-owner-faq)
served over HTTPS
[ + ] [ + ]SEO-relevant pages should be served over HTTPS. Search engines penalize http pages, browsers show 'Not Secure' warnings, and mixed content protections only activate over HTTPS. This finding looks at the URL we actually fetched (post-redirect), so an audit of http://example.com that redirects to https://example.com passes.
Expected: https
Scheme: https
no http:// resources on this HTTPS page
[ + ] [ + ]On an HTTPS page, any resource loaded over http:// is mixed content. Browsers block active mixed content (scripts, iframes, stylesheets) and warn on passive (images, video). The resources array lists the first 20 offending URLs so you know what to fix; the count and omitted fields tell you the full total.
Expected: 0
Count: 0
title
[ + ] [ + ]The clickable headline shown in Google search results. 30–60 characters is the healthy range, and the upper end (50–60) uses the available width best. Over ~60 characters Google truncates the title and may drop important words. A short title is not broken — it renders fine — but it leaves room to add keywords or communicate the page value, so we flag it as an opportunity rather than an error.
Expected: 30-60 chars
Value: Research \ Anthropic
Length: 20 chars
description
[ + ] [ + ]Often used as the snippet under the title in search results. 70–155 characters is the healthy range. Over ~155 characters Google truncates the snippet; under 70 it still renders fine but leaves room to add benefits, USPs, or a call to action — so a short description is flagged as a missed opportunity, not an error. Google may rewrite the description regardless, but a strong one still influences click-through.
Expected: 70-155 chars
Value: Anthropic is an AI safety and research company that's working to build reliable, interpretable, and steerable AI systems.
Length: 121 chars
canonical tag present
[ + ] [ + ]Tells search engines which URL is the master version when duplicate content exists across multiple URLs. Can appear in the HTML or the Link response header. If both are present they must agree (a disagreement is a fail), and the canonical must be a parseable URL (an unparseable one is a fail, flagged by malformed: true). If no canonical is declared, search engines self-canonicalize the page to its own URL, which is fine unless the page has duplicate URLs the audit cannot see. So a missing canonical is surfaced as information, not graded.
Expected: present
Value: https://www.anthropic.com/research
Source: html
Malformed (unparseable): false
Conflict between HTML and Link header: false
canonical points to this page
[ + ] [ + ]Whether the declared canonical points back at the URL we fetched: value true means it points at this page, false means it points elsewhere. When the canonical is missing or unparseable there's nothing to compare, so this is informational (a note, no status); the canonical finding above carries the detail. If it points elsewhere (false), Google likely treats this page as a duplicate, consolidates ranking signals to the canonical target, and usually shows that URL instead — though a cross-domain canonical is a strong hint Google can still override. Pointing elsewhere is usually deliberate (syndicated content crediting the original), so it's a warn, not a fail. The crossDomain field flags an off-domain canonical as informational, doesn't change status.
Expected: true
Value: true
Canonical URL: https://www.anthropic.com/research
Cross-domain: false
robots meta tag
[ + ] [ + ]The robots meta tag controls whether search engines index this page and follow its links. If absent, Google assumes "index, follow". A noindex value keeps the page out of search results; often intentional (admin pages, staging environments, internal search results) which is why this surfaces as a warn rather than a fail. Same logic as canonicalMatchesSelf: page is opting out of indexing, we surface it but don't presume to grade it.
Expected: no noindex directive
Value: index, follow
lang attribute on <html> tag
The lang attribute on the top-level <html> tag tells search engines and screen readers what language the page is in. Helps with accessibility and international SEO.
Expected: present
Value: en
viewport
[ + ] [ + ]The viewport meta tag tells mobile browsers how to size the page. Pages without it are flagged as not mobile-friendly, which is a ranking factor.
Expected: present
Value: width=device-width, initial-scale=1
hreflang: no hreflang tags declared
structured data blocks
[ + ] [ + ]JSON-LD structured data makes pages eligible for rich results in search (recipe cards, product listings, review stars, etc). itemCount is the number of top-level items Google can evaluate. @graph arrays are expanded so each node counts as its own item, the way Google reads them. types lists the distinct top-level item types; nestedTypes lists supporting entity types found inside those items (an author Person, a logo ImageObject, breadcrumb ListItems) and is informational, since Google treats them as properties of their parent item rather than standalone items. At least one typed item makes the page eligible.
Expected: ≥1 item
Item count (top-level): 0
Item types: (none)
Nested types: (none)
exactly one <h1>
Search engines treat the h1 as the page's primary topic. Multiple h1s dilute the signal; zero h1s leave the page without a clear subject.
Expected: 1
Count: 1
headings hierarchy
[ + ] [ + ]Heading levels should descend without skipping (h2 → h3, not h2 → h4). Skipped levels confuse screen readers and weaken the document's logical structure.
Expected: no skips
Skips found: h1->h3, h2->h4
word count: 640
Visible text word count after stripping HTML tags, scripts, and styles. Under ~300 words is the classic thin-content threshold — but context matters: a 150-word product page with price, specs, and a buy button is not thin content. Use alongside content/HtmlRatio for a fuller picture.
content/HTML ratio: 1.7%
Ratio of visible text bytes to total HTML bytes, as a percentage. A very low ratio (e.g. under 10%) suggests the page is mostly markup and boilerplate with little actual content. Complements wordCount — a 150-word page at 40% text is different from a 150-word page at 2% text.
total images on page: 2
images missing alt text
[ + ] [ + ]Alt text describes images for screen readers and shows up when images fail to load. Search engines also use it to understand image content. Empty alt="" is counted as missing here — decorative images legitimately use empty alt, but on SEO-targeted pages this is rare and worth flagging.
Expected: 0
Count: 0
images missing width/height
[ + ] [ + ]Width and height attributes prevent Cumulative Layout Shift (CLS), a Core Web Vitals metric and a ranking factor. Without them, the page jumps around as images load.
Expected: 0
Count: 0
total links: 108 (internal: 55, external: 53)
in-page anchor links: 3
nofollow links: 0
top internal link targets: 10 unique
Internal pages this page links to most. Counts dedupe query strings and fragments so /pricing?ref=x and /pricing#plans both count as /pricing. Anchor text variants are listed when more than one was used.
https://www.anthropic.com/ — 2×https://www.anthropic.com/research — 2× ("Research" ×2)https://www.anthropic.com/policy — 2× ("Policy" ×2)https://www.anthropic.com/news — 2× ("News" ×2)https://www.anthropic.com/research/natural-language-autoencoders — 2× ("Natural Language Autoencoders: Turning Claude’s thoughts into textInterpretabilityMay 7, 2026AI models like Claude talk in words but think in numbers. In this study, we train Claude to translate its thoughts into human-readable text.", "May 7, 2026InterpretabilityNatural Language Autoencoders: Turning Claude’s thoughts into text")https://www.anthropic.com/research/teaching-claude-why — 2× ("AlignmentMay 8, 2026Teaching Claude whyNew research on how we've reduced agentic misalignment.", "May 8, 2026AlignmentTeaching Claude why")https://www.anthropic.com/research/team/alignment — 1× ("Alignment")https://www.anthropic.com/research/team/economic-research — 1× ("Economic Research")https://www.anthropic.com/research/team/interpretability — 1× ("Interpretability")https://www.anthropic.com/research/team/societal-impacts — 1× ("Societal Impacts")top external domains: 9 unique
External domains this page links out to most.
claude.com — 42×claude.ai — 3×platform.claude.com — 2×status.anthropic.com — 1×support.claude.com — 1×trust.anthropic.com — 1×linkedin.com — 1×x.com — 1×youtube.com — 1×links with empty text
[ + ] [ + ]Counts links with no visible text, no wrapped image, and no aria-label attribute. Screen readers and search engines have nothing to announce or index for these. Icon and SVG links with aria-label are accessible and excluded from this count. Empty link text is also a Google ranking concern because Google uses anchor text to understand what a link points to.
Expected: 0
Count: 0
Open Graph tags
[ + ] [ + ]Open Graph tags control how the page renders when shared on Facebook, LinkedIn, Slack, and most other platforms. og:title, og:description, og:image, and og:type are the minimum required set.
Expected: og:title, og:description, og:image, og:type
Present: og:title, og:description, og:image, og:type
Missing: (none)
og:url points to this page: no og:url declared
Twitter Card tags
[ + ] [ + ]Twitter Card tags control rendering on X / Twitter. twitter:card, twitter:title, and twitter:image are the ideal set, but X falls back to Open Graph when a twitter tag is absent — twitter:title to og:title, twitter:image to og:image, and the card itself renders off og:image. This audit credits that fallback: a twitter tag is only counted as missing when its Open Graph equivalent is also absent, so a page with solid Open Graph tags passes even with no twitter-specific tags. The presentViaOpenGraphFallback field lists which fields are covered by Open Graph rather than declared directly.
Expected: twitter:card, twitter:title, twitter:image
Present: twitter:card, twitter:title, twitter:image
Covered by Open Graph fallback: (none)
Missing: (none)
{
"success": true,
"results": [
{
"data": {
"summary": {
"pass": 19,
"warn": 4,
"fail": 0
},
"requestUrl": "https://anthropic.com/research",
"url": "https://www.anthropic.com/research",
"responseStatusCode": {
"status": "pass",
"expected": 200,
"value": 200
},
"responseHeaders": {
"date": {
"value": "Tue, 16 Jun 2026 19:38:40 GMT"
},
"x-robots-tag": {
"status": "pass",
"expected": "no noindex directive",
"value": null
},
"content-type": {
"status": "pass",
"expected": "text/html",
"value": "text/html; charset=utf-8"
},
"cache-control": {
"status": "pass",
"expected": "present",
"value": "private, no-cache, no-store, max-age=0, must-revalidate"
},
"strict-transport-security": {
"status": "warn",
"expected": "present",
"present": false
}
},
"compliance": {
"robotsTxt": {
"status": "pass",
"expected": "allowed",
"allowed": true,
"userAgent": "minifetch/1.0 (+https://minifetch.com/site-owner-faq)"
},
"https": {
"status": "pass",
"expected": "https",
"value": "https"
},
"mixedContent": {
"status": "pass",
"expected": 0,
"count": 0,
"resources": [],
"omitted": 0
}
},
"metadata": {
"title": {
"status": "warn",
"expected": "30-60",
"value": "Research \\ Anthropic",
"length": 20
},
"description": {
"status": "pass",
"expected": "70-155",
"value": "Anthropic is an AI safety and research company that's working to build reliable, interpretable, and steerable AI systems.",
"length": 121
},
"canonical": {
"status": "pass",
"expected": "present",
"value": "https://www.anthropic.com/research",
"source": "html",
"malformed": false,
"conflictWithLinkHeader": false
},
"canonicalMatchesSelf": {
"status": "pass",
"expected": true,
"value": true,
"canonicalUrl": "https://www.anthropic.com/research",
"crossDomain": false
},
"robots": {
"status": "pass",
"expected": "no noindex directive",
"value": "index, follow"
},
"lang": {
"status": "pass",
"expected": "present",
"value": "en"
},
"viewport": {
"status": "pass",
"expected": "present",
"value": "width=device-width, initial-scale=1"
}
},
"hreflang": {
"note": "no hreflang tags declared",
"count": 0
},
"jsonld": {
"status": "warn",
"expected": "≥1 item",
"itemCount": 0,
"types": [],
"nestedTypes": []
},
"headings": {
"h1": {
"status": "pass",
"expected": 1,
"count": 1
},
"hierarchy": {
"status": "warn",
"expected": "no skips",
"skips": [
"h1->h3",
"h2->h4"
]
}
},
"content": {
"wordCount": 640,
"contentHtmlRatio": 1.7
},
"images": {
"total": 2,
"missingAlt": {
"status": "pass",
"expected": 0,
"count": 0
},
"missingDimensions": {
"status": "pass",
"expected": 0,
"count": 0
}
},
"links": {
"total": 108,
"anchorCount": 3,
"nofollowCount": 0,
"internal": {
"count": 55,
"uniqueTargets": 10,
"topInternalTargets": [
{
"url": "https://www.anthropic.com/",
"count": 2,
"anchorTexts": []
},
{
"url": "https://www.anthropic.com/research",
"count": 2,
"anchorTexts": [
{
"text": "Research",
"count": 2
}
]
},
{
"url": "https://www.anthropic.com/policy",
"count": 2,
"anchorTexts": [
{
"text": "Policy",
"count": 2
}
]
},
{
"url": "https://www.anthropic.com/news",
"count": 2,
"anchorTexts": [
{
"text": "News",
"count": 2
}
]
},
{
"url": "https://www.anthropic.com/research/natural-language-autoencoders",
"count": 2,
"anchorTexts": [
{
"text": "Natural Language Autoencoders: Turning Claude’s thoughts into textInterpretabilityMay 7, 2026AI models like Claude talk in words but think in numbers. In this study, we train Claude to translate its thoughts into human-readable text.",
"count": 1
},
{
"text": "May 7, 2026InterpretabilityNatural Language Autoencoders: Turning Claude’s thoughts into text",
"count": 1
}
]
},
{
"url": "https://www.anthropic.com/research/teaching-claude-why",
"count": 2,
"anchorTexts": [
{
"text": "AlignmentMay 8, 2026Teaching Claude whyNew research on how we've reduced agentic misalignment.",
"count": 1
},
{
"text": "May 8, 2026AlignmentTeaching Claude why",
"count": 1
}
]
},
{
"url": "https://www.anthropic.com/research/team/alignment",
"count": 1,
"anchorTexts": [
{
"text": "Alignment",
"count": 1
}
]
},
{
"url": "https://www.anthropic.com/research/team/economic-research",
"count": 1,
"anchorTexts": [
{
"text": "Economic Research",
"count": 1
}
]
},
{
"url": "https://www.anthropic.com/research/team/interpretability",
"count": 1,
"anchorTexts": [
{
"text": "Interpretability",
"count": 1
}
]
},
{
"url": "https://www.anthropic.com/research/team/societal-impacts",
"count": 1,
"anchorTexts": [
{
"text": "Societal Impacts",
"count": 1
}
]
}
]
},
"external": {
"count": 53,
"uniqueDomains": 9,
"topExternalDomains": [
{
"domain": "claude.com",
"count": 42
},
{
"domain": "claude.ai",
"count": 3
},
{
"domain": "platform.claude.com",
"count": 2
},
{
"domain": "status.anthropic.com",
"count": 1
},
{
"domain": "support.claude.com",
"count": 1
},
{
"domain": "trust.anthropic.com",
"count": 1
},
{
"domain": "linkedin.com",
"count": 1
},
{
"domain": "x.com",
"count": 1
},
{
"domain": "youtube.com",
"count": 1
}
]
},
"emptyLinkText": {
"status": "pass",
"expected": 0,
"count": 0
}
},
"social": {
"openGraph": {
"status": "pass",
"expected": "og:title, og:description, og:image, og:type",
"present": [
"og:title",
"og:description",
"og:image",
"og:type"
],
"missing": []
},
"openGraphUrlMatchesSelf": {
"note": "no og:url declared"
},
"twitterCard": {
"status": "pass",
"expected": "twitter:card, twitter:title, twitter:image",
"present": [
"twitter:card",
"twitter:title",
"twitter:image"
],
"presentViaOpenGraphFallback": [],
"missing": []
}
},
"minifetchCache": {
"hit": "false",
"cachedAt": "2026-06-16T19:38:41.279Z",
"expiresAt": "2026-06-16T19:40:41.279Z"
}
}
}
]
}
Technical SEO audit result for anthropic.com — pass/warn/fail checks all major technical SEO signals. Run it on your own URLs.
Full API Docs for /run/seo-page-audit → Fetch another URL →