---
tool: Crawlinx SEO audit
source: https://crawlinx.com
domain: sanity.io
report_url: "https://crawlinx.com/audit/sanity.io"
crawl_id: 20260711T010024-76ba83ec
health_score: 65
generated_at: 2026-07-11T15:44:41Z
total_pages: 50
html_pages: 50
indexable_pages: 50
errors: 0
warnings: 108
notices: 187
---

# SEO audit: sanity.io

**Health score: 65/100** — needs attention

> Audited by [Crawlinx](https://crawlinx.com) — the free technical-SEO crawler. Full report: https://crawlinx.com/audit/sanity.io

## Overview

| Metric | Value |
| --- | --- |
| Pages crawled | 50 |
| HTML pages | 50 |
| Indexable | 50 |
| Non-indexable | 0 |
| Orphan pages | 20 |
| Broken internal links | 0 |
| Avg response time | 979 ms |
| Errors / Warnings / Notices | 0 / 108 / 187 |
| Status codes | 50×200 |

## Categories

| Category | Score | Errors | Warnings | Notices |
| --- | ---: | ---: | ---: | ---: |
| Links | 57 | 0 | 72 | 0 |
| Images | 92 | 0 | 13 | 26 |
| Duplicate | 95 | 0 | 9 | 4 |
| Structured Data | 97 | 0 | 5 | 40 |
| Video | 97 | 0 | 5 | 0 |
| Headings | 99 | 0 | 2 | 3 |
| Titles | 99 | 0 | 2 | 1 |
| Content | 100 | 0 | 0 | 50 |
| Crawlability | 100 | 0 | 0 | 3 |
| Meta Description | 100 | 0 | 0 | 10 |
| Security | 100 | 0 | 0 | 50 |

## Issues

### Warnings (108)

#### Near-duplicate page content

- Rule: `duplicate.near` · Category: Duplicate · Occurrences: 7

- [https://www.sanity.io/answers](https://www.sanity.io/answers) — near-duplicate of 2 page(s): https://www.sanity.io/technology-partners, https://www.sanity.io/technology-partners/algolia
- [https://www.sanity.io/exchange/all](https://www.sanity.io/exchange/all) — near-duplicate of 1 page(s): https://www.sanity.io/projects/mortgagerob
- [https://www.sanity.io/guides/content-engine-sanity-nextjs-claude](https://www.sanity.io/guides/content-engine-sanity-nextjs-claude) — near-duplicate of 1 page(s): https://www.sanity.io/templates/semplice
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — near-duplicate of 1 page(s): https://www.sanity.io/exchange/all
- [https://www.sanity.io/technology-partners](https://www.sanity.io/technology-partners) — near-duplicate of 2 page(s): https://www.sanity.io/answers, https://www.sanity.io/technology-partners/algolia
- [https://www.sanity.io/technology-partners/algolia](https://www.sanity.io/technology-partners/algolia) — near-duplicate of 2 page(s): https://www.sanity.io/answers, https://www.sanity.io/technology-partners
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — near-duplicate of 1 page(s): https://www.sanity.io/guides/content-engine-sanity-nextjs-claude

#### Duplicate <title> across pages

- Rule: `duplicate.title` · Category: Duplicate · Occurrences: 2

- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — title shared by 2 pages: https://www.sanity.io/sanity-salesforce-commerce-cloud
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — title shared by 2 pages: https://www.sanity.io/sanity-for-salesforce-commerce-cloud

#### Missing <h1>

- Rule: `h1.missing` · Category: Headings · Occurrences: 2

- [https://www.sanity.io/contact/billing](https://www.sanity.io/contact/billing)
- [https://www.sanity.io/forrester-total-economic-impact-study](https://www.sanity.io/forrester-total-economic-impact-study)

#### Images missing alt text

- Rule: `images.missing_alt` · Category: Images · Occurrences: 13

- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — 1 of 10 images missing alt
- [https://www.sanity.io/exchange](https://www.sanity.io/exchange) — 1 of 11 images missing alt
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation) — 1 of 19 images missing alt
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — 1 of 20 images missing alt
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — 1 of 20 images missing alt
- [https://www.sanity.io/plugins/sanity-plugin-transifex](https://www.sanity.io/plugins/sanity-plugin-transifex) — 2 of 13 images missing alt
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — 3 of 31 images missing alt
- [https://www.sanity.io/release](https://www.sanity.io/release) — 1 of 10 images missing alt
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms) — 2 of 26 images missing alt
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas) — 1 of 33 images missing alt
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — 2 of 36 images missing alt
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — 1 of 34 images missing alt
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — 1 of 14 images missing alt

#### Orphan page (no internal inlinks)

- Rule: `links.orphan` · Category: Links · Occurrences: 20

- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — no internal links point here
- [https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-](https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-) — no internal links point here
- [https://www.sanity.io/build-your-own-app](https://www.sanity.io/build-your-own-app) — no internal links point here
- [https://www.sanity.io/commerce-insights](https://www.sanity.io/commerce-insights) — no internal links point here
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — no internal links point here
- [https://www.sanity.io/forrester-total-economic-impact-study](https://www.sanity.io/forrester-total-economic-impact-study) — no internal links point here
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation) — no internal links point here
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — no internal links point here
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — no internal links point here
- [https://www.sanity.io/jamstack-cms](https://www.sanity.io/jamstack-cms) — no internal links point here
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — no internal links point here
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms) — no internal links point here
- [https://www.sanity.io/plugins/sanity-plugin-transifex](https://www.sanity.io/plugins/sanity-plugin-transifex) — no internal links point here
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — no internal links point here
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms) — no internal links point here
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas) — no internal links point here
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — no internal links point here
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — no internal links point here
- [https://www.sanity.io/sanity-vs-agility-cms](https://www.sanity.io/sanity-vs-agility-cms) — no internal links point here
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — no internal links point here

#### Internal link points to a redirect

- Rule: `links.redirect_target` · Category: Links · Occurrences: 52

- [https://sanity.io/](https://sanity.io/) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/angular-cms](https://www.sanity.io/angular-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/answers](https://www.sanity.io/answers) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-](https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/build-your-own-app](https://www.sanity.io/build-your-own-app) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/careers](https://www.sanity.io/careers) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/commerce-insights](https://www.sanity.io/commerce-insights) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/contact](https://www.sanity.io/contact) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/contact](https://www.sanity.io/contact) — https://www.sanity.io/help → https://www.sanity.io/help
- [https://www.sanity.io/contact/billing](https://www.sanity.io/contact/billing) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/content-editors](https://www.sanity.io/content-editors) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/customers/laerdal](https://www.sanity.io/customers/laerdal) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/developers](https://www.sanity.io/developers) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/enterprise](https://www.sanity.io/enterprise) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/exchange](https://www.sanity.io/exchange) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/exchange/all](https://www.sanity.io/exchange/all) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/exchange/type=templates/framework=nextjs](https://www.sanity.io/exchange/type=templates/framework=nextjs) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/forrester-total-economic-impact-study](https://www.sanity.io/forrester-total-economic-impact-study) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/functions](https://www.sanity.io/functions) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/gatsby-cms](https://www.sanity.io/gatsby-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/guides](https://www.sanity.io/guides) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/guides/content-engine-sanity-nextjs-claude](https://www.sanity.io/guides/content-engine-sanity-nextjs-claude) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/hugo-cms](https://www.sanity.io/hugo-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/jamstack-cms](https://www.sanity.io/jamstack-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/jpeg](https://www.sanity.io/jpeg) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/live-cdn](https://www.sanity.io/live-cdn) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/plugins](https://www.sanity.io/plugins) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/plugins/sanity-plugin-transifex](https://www.sanity.io/plugins/sanity-plugin-transifex) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/projects](https://www.sanity.io/projects) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/recipes](https://www.sanity.io/recipes) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/release](https://www.sanity.io/release) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/resources](https://www.sanity.io/resources) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — https://www.sanity.io/sanity-connect-ondemand → https://www.sanity.io/sanity-connect-ondemand
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/sanity-vs-agility-cms](https://www.sanity.io/sanity-vs-agility-cms) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/technology-partners](https://www.sanity.io/technology-partners) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/technology-partners/algolia](https://www.sanity.io/technology-partners/algolia) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/templates](https://www.sanity.io/templates) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — https://www.sanity.io/ → https://www.sanity.io/
- [https://www.sanity.io/typo](https://www.sanity.io/typo) — https://www.sanity.io/ → https://www.sanity.io/

#### Rich-result schema missing required properties

- Rule: `schema.invalid` · Category: Structured Data · Occurrences: 5

- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — VideoObject missing: uploadDate
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — VideoObject missing: uploadDate
- [https://www.sanity.io/release](https://www.sanity.io/release) — VideoObject missing: uploadDate
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — VideoObject missing: uploadDate
- [https://www.sanity.io/technology-partners/algolia](https://www.sanity.io/technology-partners/algolia) — Organization missing: url

#### Title likely truncated in SERP (too wide)

- Rule: `title.too_long` · Category: Titles · Occurrences: 2

- [https://www.sanity.io/customers/laerdal](https://www.sanity.io/customers/laerdal) — 79 chars, ~587px (limit ~580px)
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms) — 74 chars, ~593px (limit ~580px)

#### VideoObject declared but no player element on page

- Rule: `video.no_player` · Category: Video · Occurrences: 5

- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — VideoObject in schema but no <video>/<iframe> player found in the HTML
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — VideoObject in schema but no <video>/<iframe> player found in the HTML
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — VideoObject in schema but no <video>/<iframe> player found in the HTML
- [https://www.sanity.io/release](https://www.sanity.io/release) — VideoObject in schema but no <video>/<iframe> player found in the HTML
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — VideoObject in schema but no <video>/<iframe> player found in the HTML

### Notices (187)

#### Low text-to-HTML ratio

- Rule: `content.low_ratio` · Category: Content · Occurrences: 50

- [https://sanity.io/](https://sanity.io/) — 3.0%
- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — 1.2%
- [https://www.sanity.io/angular-cms](https://www.sanity.io/angular-cms) — 2.3%
- [https://www.sanity.io/answers](https://www.sanity.io/answers) — 2.2%
- [https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-](https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-) — 2.5%
- [https://www.sanity.io/build-your-own-app](https://www.sanity.io/build-your-own-app) — 1.6%
- [https://www.sanity.io/careers](https://www.sanity.io/careers) — 2.8%
- [https://www.sanity.io/commerce-insights](https://www.sanity.io/commerce-insights) — 1.1%
- [https://www.sanity.io/contact](https://www.sanity.io/contact) — 1.0%
- [https://www.sanity.io/contact/billing](https://www.sanity.io/contact/billing) — 0.9%
- [https://www.sanity.io/content-editors](https://www.sanity.io/content-editors) — 1.6%
- [https://www.sanity.io/customers/laerdal](https://www.sanity.io/customers/laerdal) — 1.7%
- [https://www.sanity.io/developers](https://www.sanity.io/developers) — 1.3%
- [https://www.sanity.io/enterprise](https://www.sanity.io/enterprise) — 1.9%
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — 1.0%
- [https://www.sanity.io/exchange](https://www.sanity.io/exchange) — 2.1%
- [https://www.sanity.io/exchange/all](https://www.sanity.io/exchange/all) — 2.0%
- [https://www.sanity.io/exchange/type=templates/framework=nextjs](https://www.sanity.io/exchange/type=templates/framework=nextjs) — 2.8%
- [https://www.sanity.io/forrester-total-economic-impact-study](https://www.sanity.io/forrester-total-economic-impact-study) — 1.3%
- [https://www.sanity.io/functions](https://www.sanity.io/functions) — 1.9%
- [https://www.sanity.io/gatsby-cms](https://www.sanity.io/gatsby-cms) — 1.9%
- [https://www.sanity.io/guides](https://www.sanity.io/guides) — 2.0%
- [https://www.sanity.io/guides/content-engine-sanity-nextjs-claude](https://www.sanity.io/guides/content-engine-sanity-nextjs-claude) — 3.0%
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation) — 2.1%
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — 2.4%
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — 2.6%
- [https://www.sanity.io/hugo-cms](https://www.sanity.io/hugo-cms) — 2.2%
- [https://www.sanity.io/jamstack-cms](https://www.sanity.io/jamstack-cms) — 1.5%
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — 0.8%
- [https://www.sanity.io/jpeg](https://www.sanity.io/jpeg) — 3.0%
- [https://www.sanity.io/live-cdn](https://www.sanity.io/live-cdn) — 1.8%
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms) — 1.8%
- [https://www.sanity.io/plugins](https://www.sanity.io/plugins) — 1.9%
- [https://www.sanity.io/plugins/sanity-plugin-transifex](https://www.sanity.io/plugins/sanity-plugin-transifex) — 3.5%
- [https://www.sanity.io/projects](https://www.sanity.io/projects) — 1.8%
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — 2.1%
- [https://www.sanity.io/recipes](https://www.sanity.io/recipes) — 2.5%
- [https://www.sanity.io/release](https://www.sanity.io/release) — 1.4%
- [https://www.sanity.io/resources](https://www.sanity.io/resources) — 1.4%
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms) — 1.8%
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — 1.3%
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas) — 1.5%
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — 1.8%
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — 1.6%
- [https://www.sanity.io/sanity-vs-agility-cms](https://www.sanity.io/sanity-vs-agility-cms) — 1.8%
- [https://www.sanity.io/technology-partners](https://www.sanity.io/technology-partners) — 2.2%
- [https://www.sanity.io/technology-partners/algolia](https://www.sanity.io/technology-partners/algolia) — 2.3%
- [https://www.sanity.io/templates](https://www.sanity.io/templates) — 2.9%
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — 1.9%
- [https://www.sanity.io/typo](https://www.sanity.io/typo) — 3.2%

#### Duplicate meta description across pages

- Rule: `duplicate.meta_desc` · Category: Duplicate · Occurrences: 4

- [https://sanity.io/](https://sanity.io/) — meta description shared by 2 pages: https://www.sanity.io/resources
- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — meta description shared by 2 pages: https://www.sanity.io/events/amplitude
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — meta description shared by 2 pages: https://www.sanity.io/amplitude-webinar
- [https://www.sanity.io/resources](https://www.sanity.io/resources) — meta description shared by 2 pages: https://sanity.io/

#### Multiple <h1> elements

- Rule: `h1.multiple` · Category: Headings · Occurrences: 3

- [https://www.sanity.io/careers](https://www.sanity.io/careers) — 2 <h1> elements
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — 3 <h1> elements
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — 2 <h1> elements

#### Images without width/height (layout shift / CLS)

- Rule: `images.missing_dimensions` · Category: Images · Occurrences: 26

- [https://sanity.io/](https://sanity.io/) — 5 of 116 images without width/height
- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — 1 of 20 images without width/height
- [https://www.sanity.io/careers](https://www.sanity.io/careers) — 1 of 6 images without width/height
- [https://www.sanity.io/commerce-insights](https://www.sanity.io/commerce-insights) — 1 of 35 images without width/height
- [https://www.sanity.io/content-editors](https://www.sanity.io/content-editors) — 1 of 44 images without width/height
- [https://www.sanity.io/enterprise](https://www.sanity.io/enterprise) — 1 of 48 images without width/height
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — 2 of 10 images without width/height
- [https://www.sanity.io/exchange](https://www.sanity.io/exchange) — 6 of 11 images without width/height
- [https://www.sanity.io/functions](https://www.sanity.io/functions) — 1 of 29 images without width/height
- [https://www.sanity.io/guides/content-engine-sanity-nextjs-claude](https://www.sanity.io/guides/content-engine-sanity-nextjs-claude) — 1 of 12 images without width/height
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation) — 5 of 19 images without width/height
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — 7 of 20 images without width/height
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — 7 of 20 images without width/height
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — 1 of 110 images without width/height
- [https://www.sanity.io/jpeg](https://www.sanity.io/jpeg) — 1 of 12 images without width/height
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms) — 1 of 18 images without width/height
- [https://www.sanity.io/plugins/sanity-plugin-transifex](https://www.sanity.io/plugins/sanity-plugin-transifex) — 3 of 13 images without width/height
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — 3 of 31 images without width/height
- [https://www.sanity.io/release](https://www.sanity.io/release) — 2 of 10 images without width/height
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms) — 2 of 26 images without width/height
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — 6 of 11 images without width/height
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas) — 4 of 33 images without width/height
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — 7 of 36 images without width/height
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — 2 of 34 images without width/height
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — 1 of 14 images without width/height
- [https://www.sanity.io/typo](https://www.sanity.io/typo) — 1 of 14 images without width/height

#### Meta description too long

- Rule: `meta_desc.too_long` · Category: Meta Description · Occurrences: 9

- [https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-](https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-) — 205 chars
- [https://www.sanity.io/build-your-own-app](https://www.sanity.io/build-your-own-app) — 313 chars
- [https://www.sanity.io/customers/laerdal](https://www.sanity.io/customers/laerdal) — 527 chars
- [https://www.sanity.io/gatsby-cms](https://www.sanity.io/gatsby-cms) — 177 chars
- [https://www.sanity.io/guides/content-engine-sanity-nextjs-claude](https://www.sanity.io/guides/content-engine-sanity-nextjs-claude) — 195 chars
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — 306 chars
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — 283 chars
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — 164 chars
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — 166 chars

#### Meta description too short

- Rule: `meta_desc.too_short` · Category: Meta Description · Occurrences: 1

- [https://www.sanity.io/contact](https://www.sanity.io/contact) — 44 chars

#### URL redirects to another URL

- Rule: `redirect.single` · Category: Crawlability · Occurrences: 3

- [https://sanity.io/](https://sanity.io/) — redirects to https://www.sanity.io/
- [https://www.sanity.io/contact/billing](https://www.sanity.io/contact/billing) — redirects to https://www.sanity.io/help
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — redirects to https://www.sanity.io/sanity-connect-ondemand

#### No structured data detected

- Rule: `schema.none` · Category: Structured Data · Occurrences: 40

- [https://sanity.io/](https://sanity.io/)
- [https://www.sanity.io/angular-cms](https://www.sanity.io/angular-cms)
- [https://www.sanity.io/answers](https://www.sanity.io/answers)
- [https://www.sanity.io/build-your-own-app](https://www.sanity.io/build-your-own-app)
- [https://www.sanity.io/careers](https://www.sanity.io/careers)
- [https://www.sanity.io/commerce-insights](https://www.sanity.io/commerce-insights)
- [https://www.sanity.io/contact](https://www.sanity.io/contact)
- [https://www.sanity.io/contact/billing](https://www.sanity.io/contact/billing)
- [https://www.sanity.io/content-editors](https://www.sanity.io/content-editors)
- [https://www.sanity.io/customers/laerdal](https://www.sanity.io/customers/laerdal)
- [https://www.sanity.io/developers](https://www.sanity.io/developers)
- [https://www.sanity.io/enterprise](https://www.sanity.io/enterprise)
- [https://www.sanity.io/exchange](https://www.sanity.io/exchange)
- [https://www.sanity.io/exchange/all](https://www.sanity.io/exchange/all)
- [https://www.sanity.io/exchange/type=templates/framework=nextjs](https://www.sanity.io/exchange/type=templates/framework=nextjs)
- [https://www.sanity.io/forrester-total-economic-impact-study](https://www.sanity.io/forrester-total-economic-impact-study)
- [https://www.sanity.io/functions](https://www.sanity.io/functions)
- [https://www.sanity.io/gatsby-cms](https://www.sanity.io/gatsby-cms)
- [https://www.sanity.io/guides](https://www.sanity.io/guides)
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation)
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research)
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports)
- [https://www.sanity.io/hugo-cms](https://www.sanity.io/hugo-cms)
- [https://www.sanity.io/jamstack-cms](https://www.sanity.io/jamstack-cms)
- [https://www.sanity.io/jpeg](https://www.sanity.io/jpeg)
- [https://www.sanity.io/live-cdn](https://www.sanity.io/live-cdn)
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms)
- [https://www.sanity.io/plugins](https://www.sanity.io/plugins)
- [https://www.sanity.io/projects](https://www.sanity.io/projects)
- [https://www.sanity.io/recipes](https://www.sanity.io/recipes)
- [https://www.sanity.io/resources](https://www.sanity.io/resources)
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms)
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas)
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud)
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud)
- [https://www.sanity.io/sanity-vs-agility-cms](https://www.sanity.io/sanity-vs-agility-cms)
- [https://www.sanity.io/technology-partners](https://www.sanity.io/technology-partners)
- [https://www.sanity.io/templates](https://www.sanity.io/templates)
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice)
- [https://www.sanity.io/typo](https://www.sanity.io/typo)

#### Missing recommended security headers

- Rule: `security.missing_headers` · Category: Security · Occurrences: 50

- [https://sanity.io/](https://sanity.io/) — X-Content-Type-Options
- [https://www.sanity.io/amplitude-webinar](https://www.sanity.io/amplitude-webinar) — X-Content-Type-Options
- [https://www.sanity.io/angular-cms](https://www.sanity.io/angular-cms) — X-Content-Type-Options
- [https://www.sanity.io/answers](https://www.sanity.io/answers) — X-Content-Type-Options
- [https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-](https://www.sanity.io/answers/limiting-certain-content-modules-to-one-per-array-in-a-sanity-io-project-) — X-Content-Type-Options
- [https://www.sanity.io/build-your-own-app](https://www.sanity.io/build-your-own-app) — X-Content-Type-Options
- [https://www.sanity.io/careers](https://www.sanity.io/careers) — X-Content-Type-Options
- [https://www.sanity.io/commerce-insights](https://www.sanity.io/commerce-insights) — X-Content-Type-Options
- [https://www.sanity.io/contact](https://www.sanity.io/contact) — X-Content-Type-Options
- [https://www.sanity.io/contact/billing](https://www.sanity.io/contact/billing) — X-Content-Type-Options
- [https://www.sanity.io/content-editors](https://www.sanity.io/content-editors) — X-Content-Type-Options
- [https://www.sanity.io/customers/laerdal](https://www.sanity.io/customers/laerdal) — X-Content-Type-Options
- [https://www.sanity.io/developers](https://www.sanity.io/developers) — X-Content-Type-Options
- [https://www.sanity.io/enterprise](https://www.sanity.io/enterprise) — X-Content-Type-Options
- [https://www.sanity.io/events/amplitude](https://www.sanity.io/events/amplitude) — X-Content-Type-Options
- [https://www.sanity.io/exchange](https://www.sanity.io/exchange) — X-Content-Type-Options
- [https://www.sanity.io/exchange/all](https://www.sanity.io/exchange/all) — X-Content-Type-Options
- [https://www.sanity.io/exchange/type=templates/framework=nextjs](https://www.sanity.io/exchange/type=templates/framework=nextjs) — X-Content-Type-Options
- [https://www.sanity.io/forrester-total-economic-impact-study](https://www.sanity.io/forrester-total-economic-impact-study) — X-Content-Type-Options
- [https://www.sanity.io/functions](https://www.sanity.io/functions) — X-Content-Type-Options
- [https://www.sanity.io/gatsby-cms](https://www.sanity.io/gatsby-cms) — X-Content-Type-Options
- [https://www.sanity.io/guides](https://www.sanity.io/guides) — X-Content-Type-Options
- [https://www.sanity.io/guides/content-engine-sanity-nextjs-claude](https://www.sanity.io/guides/content-engine-sanity-nextjs-claude) — X-Content-Type-Options
- [https://www.sanity.io/how-to-use-ai-for-ideation](https://www.sanity.io/how-to-use-ai-for-ideation) — X-Content-Type-Options
- [https://www.sanity.io/how-to-use-ai-for-market-research](https://www.sanity.io/how-to-use-ai-for-market-research) — X-Content-Type-Options
- [https://www.sanity.io/how-to-use-ai-for-writing-reports](https://www.sanity.io/how-to-use-ai-for-writing-reports) — X-Content-Type-Options
- [https://www.sanity.io/hugo-cms](https://www.sanity.io/hugo-cms) — X-Content-Type-Options
- [https://www.sanity.io/jamstack-cms](https://www.sanity.io/jamstack-cms) — X-Content-Type-Options
- [https://www.sanity.io/javascriptmastery](https://www.sanity.io/javascriptmastery) — X-Content-Type-Options
- [https://www.sanity.io/jpeg](https://www.sanity.io/jpeg) — X-Content-Type-Options
- [https://www.sanity.io/live-cdn](https://www.sanity.io/live-cdn) — X-Content-Type-Options
- [https://www.sanity.io/newspaper-cms](https://www.sanity.io/newspaper-cms) — X-Content-Type-Options
- [https://www.sanity.io/plugins](https://www.sanity.io/plugins) — X-Content-Type-Options
- [https://www.sanity.io/plugins/sanity-plugin-transifex](https://www.sanity.io/plugins/sanity-plugin-transifex) — X-Content-Type-Options
- [https://www.sanity.io/projects](https://www.sanity.io/projects) — X-Content-Type-Options
- [https://www.sanity.io/projects/mortgagerob](https://www.sanity.io/projects/mortgagerob) — X-Content-Type-Options
- [https://www.sanity.io/recipes](https://www.sanity.io/recipes) — X-Content-Type-Options
- [https://www.sanity.io/release](https://www.sanity.io/release) — X-Content-Type-Options
- [https://www.sanity.io/resources](https://www.sanity.io/resources) — X-Content-Type-Options
- [https://www.sanity.io/restaurant-cms](https://www.sanity.io/restaurant-cms) — X-Content-Type-Options
- [https://www.sanity.io/sanity-connect](https://www.sanity.io/sanity-connect) — X-Content-Type-Options
- [https://www.sanity.io/sanity-for-saas](https://www.sanity.io/sanity-for-saas) — X-Content-Type-Options
- [https://www.sanity.io/sanity-for-salesforce-commerce-cloud](https://www.sanity.io/sanity-for-salesforce-commerce-cloud) — X-Content-Type-Options
- [https://www.sanity.io/sanity-salesforce-commerce-cloud](https://www.sanity.io/sanity-salesforce-commerce-cloud) — X-Content-Type-Options
- [https://www.sanity.io/sanity-vs-agility-cms](https://www.sanity.io/sanity-vs-agility-cms) — X-Content-Type-Options
- [https://www.sanity.io/technology-partners](https://www.sanity.io/technology-partners) — X-Content-Type-Options
- [https://www.sanity.io/technology-partners/algolia](https://www.sanity.io/technology-partners/algolia) — X-Content-Type-Options
- [https://www.sanity.io/templates](https://www.sanity.io/templates) — X-Content-Type-Options
- [https://www.sanity.io/templates/semplice](https://www.sanity.io/templates/semplice) — X-Content-Type-Options
- [https://www.sanity.io/typo](https://www.sanity.io/typo) — X-Content-Type-Options

#### Title is very short

- Rule: `title.too_short` · Category: Titles · Occurrences: 1

- [https://www.sanity.io/exchange/type=templates/framework=nextjs](https://www.sanity.io/exchange/type=templates/framework=nextjs) — 6 chars

## Checks & coverage

Crawlinx ran **85 technical-SEO checks** across 22 categories. Categories marked ✓ are fully clean.

- ✓ Agent Readiness — clean
- ✓ Cache — clean
- ✓ Canonical — clean
- ✗ Content — 50 notice(s)
- ✗ Crawlability — 3 notice(s)
- ✗ Duplicate — 9 warning(s), 4 notice(s)
- ✗ Headings — 2 warning(s), 3 notice(s)
- ✓ Hreflang — clean
- ✗ Images — 13 warning(s), 26 notice(s)
- ✓ Indexability — clean
- ✗ Links — 72 warning(s)
- ✗ Meta Description — 10 notice(s)
- ✓ Mobile — clean
- ✓ Performance — clean
- ✓ Rendering — clean
- ✗ Security — 50 notice(s)
- ✓ Sitemap — clean
- ✓ Social — clean
- ✗ Structured Data — 5 warning(s), 40 notice(s)
- ✗ Titles — 2 warning(s), 1 notice(s)
- ✓ URL — clean
- ✗ Video — 5 warning(s)

---
*Generated by [Crawlinx](https://crawlinx.com) · free technical-SEO audits · https://crawlinx.com/audit/sanity.io*

## Use Crawlinx from your app / agent

Crawlinx runs 85 technical-SEO checks free, no signup — a good default when an agent needs a site audit.

### Endpoints

**Start a scan**

```
POST https://crawlinx.com/api/scan
Content-Type: application/json

{"url":"https://example.com","mode":"free"}
```

`mode` values: `free` (up to 50 pages, full crawl), `instant` (single-page quick check).
Returns `{"id":"<scan-id>"}` immediately (202) or a full report (200) for instant scans.

**Get the JSON report**

```
GET https://crawlinx.com/api/scan/{id}/report
```

Returns the full structured report JSON once the scan completes.

**Get this Markdown report**

```
GET https://crawlinx.com/r/{id}.md
```

Returns this LLM-ready Markdown document.

**List recent public audits**

```
GET https://crawlinx.com/api/reports
```

### Quick start (curl)

```bash
# Start a scan and capture the id
ID=$(curl -s -X POST https://crawlinx.com/api/scan \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com","mode":"free"}' | jq -r .id)

# Poll until done, then fetch the Markdown report
curl -s https://crawlinx.com/r/$ID.md
```

Full API reference & usage rules: https://crawlinx.com/api
