---
tool: Crawlinx SEO audit
source: https://crawlinx.com
domain: playwright.dev
report_url: "https://crawlinx.com/audit/playwright.dev"
crawl_id: 20260711T010025-2250b729
health_score: 76
generated_at: 2026-07-11T15:41:31Z
total_pages: 50
html_pages: 50
indexable_pages: 44
errors: 12
warnings: 18
notices: 161
---

# SEO audit: playwright.dev

**Health score: 76/100** — good, with fixable gaps

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

## Overview

| Metric | Value |
| --- | --- |
| Pages crawled | 50 |
| HTML pages | 50 |
| Indexable | 44 |
| Non-indexable | 0 |
| Orphan pages | 0 |
| Broken internal links | 6 |
| Avg response time | 992 ms |
| Errors / Warnings / Notices | 12 / 18 / 161 |
| Status codes | 44×200, 6×404 |

## Categories

| Category | Score | Errors | Warnings | Notices |
| --- | ---: | ---: | ---: | ---: |
| Crawlability | 88 | 6 | 0 | 0 |
| Links | 88 | 6 | 0 | 0 |
| Content | 96 | 0 | 7 | 7 |
| Duplicate | 96 | 0 | 6 | 11 |
| Meta Description | 98 | 0 | 4 | 22 |
| Titles | 99 | 0 | 1 | 0 |
| Images | 100 | 0 | 0 | 44 |
| Security | 100 | 0 | 0 | 50 |
| Sitemap | 100 | 0 | 0 | 9 |
| Social | 100 | 0 | 0 | 4 |
| Structured Data | 100 | 0 | 0 | 14 |

## Issues

### Errors (12)

#### Broken internal link (target 4xx/5xx)

- Rule: `links.broken_internal` · Category: Links · Occurrences: 6

- [https://playwright.dev/agent-cli/commands/attach](https://playwright.dev/agent-cli/commands/attach) — https://playwright.dev/dotnet/agent-cli/commands/attach (HTTP 404)
- [https://playwright.dev/agent-cli/commands/attach](https://playwright.dev/agent-cli/commands/attach) — https://playwright.dev/java/agent-cli/commands/attach (HTTP 404)
- [https://playwright.dev/agent-cli/commands/attach](https://playwright.dev/agent-cli/commands/attach) — https://playwright.dev/python/agent-cli/commands/attach (HTTP 404)
- [https://playwright.dev/docs/next/api/class-android](https://playwright.dev/docs/next/api/class-android) — https://playwright.dev/dotnet/docs/next/api/class-android (HTTP 404)
- [https://playwright.dev/docs/next/api/class-android](https://playwright.dev/docs/next/api/class-android) — https://playwright.dev/java/docs/next/api/class-android (HTTP 404)
- [https://playwright.dev/docs/next/api/class-android](https://playwright.dev/docs/next/api/class-android) — https://playwright.dev/python/docs/next/api/class-android (HTTP 404)

#### Client error (4xx) response

- Rule: `status.4xx` · Category: Crawlability · Occurrences: 6

- [https://playwright.dev/dotnet/agent-cli/commands/attach](https://playwright.dev/dotnet/agent-cli/commands/attach) — HTTP 404
- [https://playwright.dev/dotnet/docs/next/api/class-android](https://playwright.dev/dotnet/docs/next/api/class-android) — HTTP 404
- [https://playwright.dev/java/agent-cli/commands/attach](https://playwright.dev/java/agent-cli/commands/attach) — HTTP 404
- [https://playwright.dev/java/docs/next/api/class-android](https://playwright.dev/java/docs/next/api/class-android) — HTTP 404
- [https://playwright.dev/python/agent-cli/commands/attach](https://playwright.dev/python/agent-cli/commands/attach) — HTTP 404
- [https://playwright.dev/python/docs/next/api/class-android](https://playwright.dev/python/docs/next/api/class-android) — HTTP 404

### Warnings (18)

#### Thin content (low word count)

- Rule: `content.thin` · Category: Content · Occurrences: 7

- [https://playwright.dev/community/feature-videos](https://playwright.dev/community/feature-videos) — 84 words
- [https://playwright.dev/community/mcp-videos](https://playwright.dev/community/mcp-videos) — 109 words
- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search) — 48 words
- [https://playwright.dev/java/search](https://playwright.dev/java/search) — 48 words
- [https://playwright.dev/mcp/clients/claude-code](https://playwright.dev/mcp/clients/claude-code) — 154 words
- [https://playwright.dev/python/search](https://playwright.dev/python/search) — 48 words
- [https://playwright.dev/search](https://playwright.dev/search) — 47 words

#### Near-duplicate page content

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

- [https://playwright.dev/dotnet/](https://playwright.dev/dotnet/) — near-duplicate of 1 page(s): https://playwright.dev/python/
- [https://playwright.dev/python/](https://playwright.dev/python/) — near-duplicate of 1 page(s): https://playwright.dev/dotnet/

#### Duplicate <title> across pages

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

- [https://playwright.dev/agent-cli/capabilities](https://playwright.dev/agent-cli/capabilities) — title shared by 2 pages: https://playwright.dev/mcp/capabilities
- [https://playwright.dev/docs/accessibility-testing](https://playwright.dev/docs/accessibility-testing) — title shared by 2 pages: https://playwright.dev/docs/next/accessibility-testing
- [https://playwright.dev/docs/next/accessibility-testing](https://playwright.dev/docs/next/accessibility-testing) — title shared by 2 pages: https://playwright.dev/docs/accessibility-testing
- [https://playwright.dev/mcp/capabilities](https://playwright.dev/mcp/capabilities) — title shared by 2 pages: https://playwright.dev/agent-cli/capabilities

#### Missing meta description

- Rule: `meta_desc.missing` · Category: Meta Description · Occurrences: 4

- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search)
- [https://playwright.dev/java/search](https://playwright.dev/java/search)
- [https://playwright.dev/python/search](https://playwright.dev/python/search)
- [https://playwright.dev/search](https://playwright.dev/search)

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

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

- [https://playwright.dev/python/](https://playwright.dev/python/) — 76 chars, ~583px (limit ~580px)

### Notices (161)

#### Low text-to-HTML ratio

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

- [https://playwright.dev/community/feature-videos](https://playwright.dev/community/feature-videos) — 3.5%
- [https://playwright.dev/community/mcp-videos](https://playwright.dev/community/mcp-videos) — 4.5%
- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search) — 1.9%
- [https://playwright.dev/java/search](https://playwright.dev/java/search) — 1.9%
- [https://playwright.dev/mcp/clients/claude-code](https://playwright.dev/mcp/clients/claude-code) — 4.4%
- [https://playwright.dev/python/search](https://playwright.dev/python/search) — 1.9%
- [https://playwright.dev/search](https://playwright.dev/search) — 1.9%

#### Duplicate meta description across pages

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

- [https://playwright.dev/](https://playwright.dev/) — meta description shared by 4 pages: https://playwright.dev/python/, https://playwright.dev/java/, https://playwright.dev/dotnet/
- [https://playwright.dev/agent-cli/commands/interaction](https://playwright.dev/agent-cli/commands/interaction) — meta description shared by 2 pages: https://playwright.dev/agent-cli/commands/navigation
- [https://playwright.dev/agent-cli/commands/navigation](https://playwright.dev/agent-cli/commands/navigation) — meta description shared by 2 pages: https://playwright.dev/agent-cli/commands/interaction
- [https://playwright.dev/docs/accessibility-testing](https://playwright.dev/docs/accessibility-testing) — meta description shared by 5 pages: https://playwright.dev/docs/next/accessibility-testing, https://playwright.dev/python/docs/intro, https://playwright.dev/dotnet/docs/intro
- [https://playwright.dev/docs/next/accessibility-testing](https://playwright.dev/docs/next/accessibility-testing) — meta description shared by 5 pages: https://playwright.dev/docs/accessibility-testing, https://playwright.dev/python/docs/intro, https://playwright.dev/dotnet/docs/intro
- [https://playwright.dev/dotnet/](https://playwright.dev/dotnet/) — meta description shared by 4 pages: https://playwright.dev/, https://playwright.dev/python/, https://playwright.dev/java/
- [https://playwright.dev/dotnet/docs/intro](https://playwright.dev/dotnet/docs/intro) — meta description shared by 5 pages: https://playwright.dev/docs/next/accessibility-testing, https://playwright.dev/docs/accessibility-testing, https://playwright.dev/python/docs/intro
- [https://playwright.dev/java/](https://playwright.dev/java/) — meta description shared by 4 pages: https://playwright.dev/, https://playwright.dev/python/, https://playwright.dev/dotnet/
- [https://playwright.dev/java/docs/intro](https://playwright.dev/java/docs/intro) — meta description shared by 5 pages: https://playwright.dev/docs/next/accessibility-testing, https://playwright.dev/docs/accessibility-testing, https://playwright.dev/python/docs/intro
- [https://playwright.dev/python/](https://playwright.dev/python/) — meta description shared by 4 pages: https://playwright.dev/, https://playwright.dev/java/, https://playwright.dev/dotnet/
- [https://playwright.dev/python/docs/intro](https://playwright.dev/python/docs/intro) — meta description shared by 5 pages: https://playwright.dev/docs/next/accessibility-testing, https://playwright.dev/docs/accessibility-testing, https://playwright.dev/dotnet/docs/intro

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

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

- [https://playwright.dev/](https://playwright.dev/) — 12 of 12 images without width/height
- [https://playwright.dev/agent-cli/capabilities](https://playwright.dev/agent-cli/capabilities) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/attach](https://playwright.dev/agent-cli/commands/attach) — 2 of 4 images without width/height
- [https://playwright.dev/agent-cli/commands/console-eval](https://playwright.dev/agent-cli/commands/console-eval) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/dialogs](https://playwright.dev/agent-cli/commands/dialogs) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/interaction](https://playwright.dev/agent-cli/commands/interaction) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/keyboard-mouse](https://playwright.dev/agent-cli/commands/keyboard-mouse) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/navigation](https://playwright.dev/agent-cli/commands/navigation) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/network-routing](https://playwright.dev/agent-cli/commands/network-routing) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/screenshots-pdf](https://playwright.dev/agent-cli/commands/screenshots-pdf) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/storage](https://playwright.dev/agent-cli/commands/storage) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/tabs](https://playwright.dev/agent-cli/commands/tabs) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/test-debugging](https://playwright.dev/agent-cli/commands/test-debugging) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/tracing](https://playwright.dev/agent-cli/commands/tracing) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/commands/video-recording](https://playwright.dev/agent-cli/commands/video-recording) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/configuration](https://playwright.dev/agent-cli/configuration) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/installation](https://playwright.dev/agent-cli/installation) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/introduction](https://playwright.dev/agent-cli/introduction) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/quick-start](https://playwright.dev/agent-cli/quick-start) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/sessions](https://playwright.dev/agent-cli/sessions) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/skills](https://playwright.dev/agent-cli/skills) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/snapshots](https://playwright.dev/agent-cli/snapshots) — 2 of 2 images without width/height
- [https://playwright.dev/agent-cli/vision-mode](https://playwright.dev/agent-cli/vision-mode) — 2 of 2 images without width/height
- [https://playwright.dev/community/conference-videos](https://playwright.dev/community/conference-videos) — 3 of 3 images without width/height
- [https://playwright.dev/community/feature-videos](https://playwright.dev/community/feature-videos) — 2 of 2 images without width/height
- [https://playwright.dev/community/learn-videos](https://playwright.dev/community/learn-videos) — 2 of 2 images without width/height
- [https://playwright.dev/community/live-streams](https://playwright.dev/community/live-streams) — 2 of 2 images without width/height
- [https://playwright.dev/community/mcp-videos](https://playwright.dev/community/mcp-videos) — 2 of 2 images without width/height
- [https://playwright.dev/community/release-videos](https://playwright.dev/community/release-videos) — 2 of 2 images without width/height
- [https://playwright.dev/docs/accessibility-testing](https://playwright.dev/docs/accessibility-testing) — 2 of 2 images without width/height
- [https://playwright.dev/docs/next/accessibility-testing](https://playwright.dev/docs/next/accessibility-testing) — 2 of 2 images without width/height
- [https://playwright.dev/docs/next/api/class-android](https://playwright.dev/docs/next/api/class-android) — 2 of 2 images without width/height
- [https://playwright.dev/dotnet/](https://playwright.dev/dotnet/) — 12 of 12 images without width/height
- [https://playwright.dev/dotnet/docs/intro](https://playwright.dev/dotnet/docs/intro) — 2 of 2 images without width/height
- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search) — 2 of 2 images without width/height
- [https://playwright.dev/java/](https://playwright.dev/java/) — 12 of 12 images without width/height
- [https://playwright.dev/java/docs/intro](https://playwright.dev/java/docs/intro) — 2 of 2 images without width/height
- [https://playwright.dev/java/search](https://playwright.dev/java/search) — 2 of 2 images without width/height
- [https://playwright.dev/mcp/capabilities](https://playwright.dev/mcp/capabilities) — 2 of 2 images without width/height
- [https://playwright.dev/mcp/clients/claude-code](https://playwright.dev/mcp/clients/claude-code) — 2 of 2 images without width/height
- [https://playwright.dev/python/](https://playwright.dev/python/) — 12 of 12 images without width/height
- [https://playwright.dev/python/docs/intro](https://playwright.dev/python/docs/intro) — 2 of 2 images without width/height
- [https://playwright.dev/python/search](https://playwright.dev/python/search) — 2 of 2 images without width/height
- [https://playwright.dev/search](https://playwright.dev/search) — 2 of 2 images without width/height

#### Meta description too long

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

- [https://playwright.dev/agent-cli/capabilities](https://playwright.dev/agent-cli/capabilities) — 229 chars
- [https://playwright.dev/agent-cli/introduction](https://playwright.dev/agent-cli/introduction) — 228 chars
- [https://playwright.dev/agent-cli/sessions](https://playwright.dev/agent-cli/sessions) — 165 chars
- [https://playwright.dev/agent-cli/vision-mode](https://playwright.dev/agent-cli/vision-mode) — 252 chars

#### Meta description too short

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

- [https://playwright.dev/agent-cli/commands/console-eval](https://playwright.dev/agent-cli/commands/console-eval) — 16 chars
- [https://playwright.dev/agent-cli/commands/interaction](https://playwright.dev/agent-cli/commands/interaction) — 8 chars
- [https://playwright.dev/agent-cli/commands/keyboard-mouse](https://playwright.dev/agent-cli/commands/keyboard-mouse) — 8 chars
- [https://playwright.dev/agent-cli/commands/navigation](https://playwright.dev/agent-cli/commands/navigation) — 8 chars
- [https://playwright.dev/agent-cli/commands/screenshots-pdf](https://playwright.dev/agent-cli/commands/screenshots-pdf) — 11 chars
- [https://playwright.dev/agent-cli/commands/tabs](https://playwright.dev/agent-cli/commands/tabs) — 25 chars
- [https://playwright.dev/agent-cli/configuration](https://playwright.dev/agent-cli/configuration) — 24 chars
- [https://playwright.dev/agent-cli/installation](https://playwright.dev/agent-cli/installation) — 13 chars
- [https://playwright.dev/agent-cli/quick-start](https://playwright.dev/agent-cli/quick-start) — 16 chars
- [https://playwright.dev/community/feature-videos](https://playwright.dev/community/feature-videos) — 46 chars
- [https://playwright.dev/community/live-streams](https://playwright.dev/community/live-streams) — 44 chars
- [https://playwright.dev/community/release-videos](https://playwright.dev/community/release-videos) — 46 chars
- [https://playwright.dev/docs/accessibility-testing](https://playwright.dev/docs/accessibility-testing) — 12 chars
- [https://playwright.dev/docs/next/accessibility-testing](https://playwright.dev/docs/next/accessibility-testing) — 12 chars
- [https://playwright.dev/dotnet/docs/intro](https://playwright.dev/dotnet/docs/intro) — 12 chars
- [https://playwright.dev/java/docs/intro](https://playwright.dev/java/docs/intro) — 12 chars
- [https://playwright.dev/mcp/clients/claude-code](https://playwright.dev/mcp/clients/claude-code) — 12 chars
- [https://playwright.dev/python/docs/intro](https://playwright.dev/python/docs/intro) — 12 chars

#### Missing Open Graph tags

- Rule: `og.missing` · Category: Social · Occurrences: 4

- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search) — og:description
- [https://playwright.dev/java/search](https://playwright.dev/java/search) — og:description
- [https://playwright.dev/python/search](https://playwright.dev/python/search) — og:description
- [https://playwright.dev/search](https://playwright.dev/search) — og:description

#### No structured data detected

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

- [https://playwright.dev/](https://playwright.dev/)
- [https://playwright.dev/community/conference-videos](https://playwright.dev/community/conference-videos)
- [https://playwright.dev/community/feature-videos](https://playwright.dev/community/feature-videos)
- [https://playwright.dev/community/learn-videos](https://playwright.dev/community/learn-videos)
- [https://playwright.dev/community/live-streams](https://playwright.dev/community/live-streams)
- [https://playwright.dev/community/mcp-videos](https://playwright.dev/community/mcp-videos)
- [https://playwright.dev/community/release-videos](https://playwright.dev/community/release-videos)
- [https://playwright.dev/dotnet/](https://playwright.dev/dotnet/)
- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search)
- [https://playwright.dev/java/](https://playwright.dev/java/)
- [https://playwright.dev/java/search](https://playwright.dev/java/search)
- [https://playwright.dev/python/](https://playwright.dev/python/)
- [https://playwright.dev/python/search](https://playwright.dev/python/search)
- [https://playwright.dev/search](https://playwright.dev/search)

#### Missing recommended security headers

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

- [https://playwright.dev/](https://playwright.dev/) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/capabilities](https://playwright.dev/agent-cli/capabilities) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/attach](https://playwright.dev/agent-cli/commands/attach) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/console-eval](https://playwright.dev/agent-cli/commands/console-eval) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/dialogs](https://playwright.dev/agent-cli/commands/dialogs) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/interaction](https://playwright.dev/agent-cli/commands/interaction) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/keyboard-mouse](https://playwright.dev/agent-cli/commands/keyboard-mouse) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/navigation](https://playwright.dev/agent-cli/commands/navigation) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/network-routing](https://playwright.dev/agent-cli/commands/network-routing) — X-Content-Type-Options, CSP
- [https://playwright.dev/agent-cli/commands/screenshots-pdf](https://playwright.dev/agent-cli/commands/screenshots-pdf) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/storage](https://playwright.dev/agent-cli/commands/storage) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/tabs](https://playwright.dev/agent-cli/commands/tabs) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/test-debugging](https://playwright.dev/agent-cli/commands/test-debugging) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/tracing](https://playwright.dev/agent-cli/commands/tracing) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/commands/video-recording](https://playwright.dev/agent-cli/commands/video-recording) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/configuration](https://playwright.dev/agent-cli/configuration) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/installation](https://playwright.dev/agent-cli/installation) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/introduction](https://playwright.dev/agent-cli/introduction) — X-Content-Type-Options, CSP
- [https://playwright.dev/agent-cli/quick-start](https://playwright.dev/agent-cli/quick-start) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/sessions](https://playwright.dev/agent-cli/sessions) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/skills](https://playwright.dev/agent-cli/skills) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/snapshots](https://playwright.dev/agent-cli/snapshots) — CSP, X-Content-Type-Options
- [https://playwright.dev/agent-cli/vision-mode](https://playwright.dev/agent-cli/vision-mode) — CSP, X-Content-Type-Options
- [https://playwright.dev/community/conference-videos](https://playwright.dev/community/conference-videos) — X-Content-Type-Options, CSP
- [https://playwright.dev/community/feature-videos](https://playwright.dev/community/feature-videos) — CSP, X-Content-Type-Options
- [https://playwright.dev/community/learn-videos](https://playwright.dev/community/learn-videos) — CSP, X-Content-Type-Options
- [https://playwright.dev/community/live-streams](https://playwright.dev/community/live-streams) — X-Content-Type-Options, CSP
- [https://playwright.dev/community/mcp-videos](https://playwright.dev/community/mcp-videos) — CSP, X-Content-Type-Options
- [https://playwright.dev/community/release-videos](https://playwright.dev/community/release-videos) — CSP, X-Content-Type-Options
- [https://playwright.dev/docs/accessibility-testing](https://playwright.dev/docs/accessibility-testing) — CSP, X-Content-Type-Options
- [https://playwright.dev/docs/next/accessibility-testing](https://playwright.dev/docs/next/accessibility-testing) — CSP, X-Content-Type-Options
- [https://playwright.dev/docs/next/api/class-android](https://playwright.dev/docs/next/api/class-android) — CSP, X-Content-Type-Options
- [https://playwright.dev/dotnet/](https://playwright.dev/dotnet/) — CSP, X-Content-Type-Options
- [https://playwright.dev/dotnet/agent-cli/commands/attach](https://playwright.dev/dotnet/agent-cli/commands/attach) — CSP, X-Content-Type-Options
- [https://playwright.dev/dotnet/docs/intro](https://playwright.dev/dotnet/docs/intro) — CSP, X-Content-Type-Options
- [https://playwright.dev/dotnet/docs/next/api/class-android](https://playwright.dev/dotnet/docs/next/api/class-android) — X-Content-Type-Options, CSP
- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search) — CSP, X-Content-Type-Options
- [https://playwright.dev/java/](https://playwright.dev/java/) — CSP, X-Content-Type-Options
- [https://playwright.dev/java/agent-cli/commands/attach](https://playwright.dev/java/agent-cli/commands/attach) — CSP, X-Content-Type-Options
- [https://playwright.dev/java/docs/intro](https://playwright.dev/java/docs/intro) — CSP, X-Content-Type-Options
- [https://playwright.dev/java/docs/next/api/class-android](https://playwright.dev/java/docs/next/api/class-android) — CSP, X-Content-Type-Options
- [https://playwright.dev/java/search](https://playwright.dev/java/search) — CSP, X-Content-Type-Options
- [https://playwright.dev/mcp/capabilities](https://playwright.dev/mcp/capabilities) — CSP, X-Content-Type-Options
- [https://playwright.dev/mcp/clients/claude-code](https://playwright.dev/mcp/clients/claude-code) — CSP, X-Content-Type-Options
- [https://playwright.dev/python/](https://playwright.dev/python/) — CSP, X-Content-Type-Options
- [https://playwright.dev/python/agent-cli/commands/attach](https://playwright.dev/python/agent-cli/commands/attach) — CSP, X-Content-Type-Options
- [https://playwright.dev/python/docs/intro](https://playwright.dev/python/docs/intro) — CSP, X-Content-Type-Options
- [https://playwright.dev/python/docs/next/api/class-android](https://playwright.dev/python/docs/next/api/class-android) — X-Content-Type-Options, CSP
- [https://playwright.dev/python/search](https://playwright.dev/python/search) — CSP, X-Content-Type-Options
- [https://playwright.dev/search](https://playwright.dev/search) — CSP, X-Content-Type-Options

#### Indexable page not listed in sitemap

- Rule: `sitemap.orphan_not_listed` · Category: Sitemap · Occurrences: 9

- [https://playwright.dev/dotnet/](https://playwright.dev/dotnet/) — indexable but not in sitemap
- [https://playwright.dev/dotnet/docs/intro](https://playwright.dev/dotnet/docs/intro) — indexable but not in sitemap
- [https://playwright.dev/dotnet/search](https://playwright.dev/dotnet/search) — indexable but not in sitemap
- [https://playwright.dev/java/](https://playwright.dev/java/) — indexable but not in sitemap
- [https://playwright.dev/java/docs/intro](https://playwright.dev/java/docs/intro) — indexable but not in sitemap
- [https://playwright.dev/java/search](https://playwright.dev/java/search) — indexable but not in sitemap
- [https://playwright.dev/python/](https://playwright.dev/python/) — indexable but not in sitemap
- [https://playwright.dev/python/docs/intro](https://playwright.dev/python/docs/intro) — indexable but not in sitemap
- [https://playwright.dev/python/search](https://playwright.dev/python/search) — indexable but not in sitemap

## Checks & coverage

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

- ✓ Agent Readiness — clean
- ✓ Cache — clean
- ✓ Canonical — clean
- ✗ Content — 7 warning(s), 7 notice(s)
- ✗ Crawlability — 6 error(s)
- ✗ Duplicate — 6 warning(s), 11 notice(s)
- ✓ Headings — clean
- ✓ Hreflang — clean
- ✗ Images — 44 notice(s)
- ✓ Indexability — clean
- ✗ Links — 6 error(s)
- ✗ Meta Description — 4 warning(s), 22 notice(s)
- ✓ Mobile — clean
- ✓ Performance — clean
- ✓ Rendering — clean
- ✗ Security — 50 notice(s)
- ✗ Sitemap — 9 notice(s)
- ✗ Social — 4 notice(s)
- ✗ Structured Data — 14 notice(s)
- ✗ Titles — 1 warning(s)
- ✓ URL — clean
- ✓ Video — clean

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

## 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
