---
tool: Crawlinx SEO audit
source: https://crawlinx.com
domain: basecamp.com
report_url: "https://crawlinx.com/audit/basecamp.com"
crawl_id: 20260711T010024-0097721e
health_score: 67
generated_at: 2026-07-11T15:42:08Z
total_pages: 50
html_pages: 46
indexable_pages: 46
errors: 0
warnings: 98
notices: 216
---

# SEO audit: basecamp.com

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

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

## Overview

| Metric | Value |
| --- | --- |
| Pages crawled | 50 |
| HTML pages | 46 |
| Indexable | 46 |
| Non-indexable | 0 |
| Orphan pages | 0 |
| Broken internal links | 0 |
| Avg response time | 1085 ms |
| Errors / Warnings / Notices | 0 / 98 / 216 |
| Status codes | 50×200 |

## Categories

| Category | Score | Errors | Warnings | Notices |
| --- | ---: | ---: | ---: | ---: |
| Links | 59 | 0 | 69 | 0 |
| Canonical | 94 | 0 | 10 | 0 |
| Duplicate | 95 | 0 | 8 | 4 |
| Meta Description | 96 | 0 | 7 | 12 |
| Structured Data | 99 | 0 | 2 | 10 |
| Content | 99 | 0 | 1 | 0 |
| Titles | 99 | 0 | 1 | 4 |
| Cache | 100 | 0 | 0 | 46 |
| Crawlability | 100 | 0 | 0 | 4 |
| Headings | 100 | 0 | 0 | 12 |
| Images | 100 | 0 | 0 | 16 |
| Performance | 100 | 0 | 0 | 7 |
| Security | 100 | 0 | 0 | 46 |
| Sitemap | 100 | 0 | 0 | 46 |
| Social | 100 | 0 | 0 | 7 |
| URL | 100 | 0 | 0 | 2 |

## Issues

### Warnings (98)

#### Missing canonical tag

- Rule: `canonical.missing` · Category: Canonical · Occurrences: 10

- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal)
- [https://basecamp.com/handbook](https://basecamp.com/handbook)
- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks)
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started)
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work)
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career)
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices)
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems)
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals)
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup)

#### Thin content (low word count)

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

- [https://basecamp.com/newsletter](https://basecamp.com/newsletter) — 48 words

#### Duplicate page content

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

- [https://basecamp.com/5](https://basecamp.com/5) — content shared by 2 pages: https://basecamp.com/new
- [https://basecamp.com/extras](https://basecamp.com/extras) — content shared by 2 pages: https://basecamp.com/integrations
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — content shared by 2 pages: https://basecamp.com/extras
- [https://basecamp.com/new](https://basecamp.com/new) — content shared by 2 pages: https://basecamp.com/5

#### Duplicate <title> across pages

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

- [https://basecamp.com/5](https://basecamp.com/5) — title shared by 2 pages: https://basecamp.com/new
- [https://basecamp.com/extras](https://basecamp.com/extras) — title shared by 2 pages: https://basecamp.com/integrations
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — title shared by 2 pages: https://basecamp.com/extras
- [https://basecamp.com/new](https://basecamp.com/new) — title shared by 2 pages: https://basecamp.com/5

#### Internal link points to a redirect

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

- [https://basecamp.com/](https://basecamp.com/) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/](https://basecamp.com/) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/5](https://basecamp.com/5) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/5](https://basecamp.com/5) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/about](https://basecamp.com/about) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/about](https://basecamp.com/about) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/accessibility](https://basecamp.com/accessibility) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/accessibility](https://basecamp.com/accessibility) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/agents](https://basecamp.com/agents) — https://basecamp.com/extras → https://basecamp.com/integrations
- [https://basecamp.com/agents](https://basecamp.com/agents) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/agents](https://basecamp.com/agents) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/apps](https://basecamp.com/apps) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/apps](https://basecamp.com/apps) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/before-and-after](https://basecamp.com/before-and-after) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/before-and-after](https://basecamp.com/before-and-after) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/books](https://basecamp.com/books) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/books](https://basecamp.com/books) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/classes](https://basecamp.com/classes) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/classes](https://basecamp.com/classes) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/cloud-exit](https://basecamp.com/cloud-exit) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/cloud-exit](https://basecamp.com/cloud-exit) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/community](https://basecamp.com/community) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/community](https://basecamp.com/community) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/customers](https://basecamp.com/customers) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/customers](https://basecamp.com/customers) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/extras](https://basecamp.com/extras) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/extras](https://basecamp.com/extras) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/features](https://basecamp.com/features) — https://basecamp.com/extras → https://basecamp.com/integrations
- [https://basecamp.com/features](https://basecamp.com/features) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/features](https://basecamp.com/features) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/guides/group-chat-problems](https://basecamp.com/guides/group-chat-problems) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/guides/group-chat-problems](https://basecamp.com/guides/group-chat-problems) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/guides/how-we-communicate](https://basecamp.com/guides/how-we-communicate) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/guides/how-we-communicate](https://basecamp.com/guides/how-we-communicate) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/guides/how-we-make-decisions](https://basecamp.com/guides/how-we-make-decisions) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/guides/how-we-make-decisions](https://basecamp.com/guides/how-we-make-decisions) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/guides/seven-shipping-principles](https://basecamp.com/guides/seven-shipping-principles) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/guides/seven-shipping-principles](https://basecamp.com/guides/seven-shipping-principles) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/guides/why-we-choose-profit](https://basecamp.com/guides/why-we-choose-profit) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/guides/why-we-choose-profit](https://basecamp.com/guides/why-we-choose-profit) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/hill-charts](https://basecamp.com/hill-charts) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/hill-charts](https://basecamp.com/hill-charts) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/keyboard](https://basecamp.com/keyboard) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/keyboard](https://basecamp.com/keyboard) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/learn](https://basecamp.com/learn) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/learn](https://basecamp.com/learn) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/live](https://basecamp.com/live) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/live](https://basecamp.com/live) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/new](https://basecamp.com/new) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/new](https://basecamp.com/new) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/overkill](https://basecamp.com/overkill) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/overkill](https://basecamp.com/overkill) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/paths](https://basecamp.com/paths) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/paths](https://basecamp.com/paths) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/pricing](https://basecamp.com/pricing) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/pricing](https://basecamp.com/pricing) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/reliable](https://basecamp.com/reliable) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/reliable](https://basecamp.com/reliable) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/small](https://basecamp.com/small) — https://basecamp.com/new → https://basecamp.com/5
- [https://basecamp.com/small](https://basecamp.com/small) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/small](https://basecamp.com/small) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/support](https://basecamp.com/support) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/support](https://basecamp.com/support) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/support/testimonials](https://basecamp.com/support/testimonials) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/support/testimonials](https://basecamp.com/support/testimonials) — https://basecamp.com/security → https://37signals.com/policies/security
- [https://basecamp.com/underdogs](https://basecamp.com/underdogs) — https://basecamp.com/privacy → https://37signals.com/policies/privacy
- [https://basecamp.com/underdogs](https://basecamp.com/underdogs) — https://basecamp.com/security → https://37signals.com/policies/security

#### Missing meta description

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

- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks)
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started)
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work)
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career)
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices)
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems)
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals)

#### Rich-result schema missing required properties

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

- [https://basecamp.com/privacy](https://basecamp.com/privacy) — Article missing: datePublished
- [https://basecamp.com/security](https://basecamp.com/security) — Article missing: datePublished

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

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

- [https://basecamp.com/apps](https://basecamp.com/apps) — 91 chars, ~738px (limit ~580px)

### Notices (216)

#### Page served uncached (no-store/private or CDN bypass)

- Rule: `cache.not_cacheable` · Category: Cache · Occurrences: 46

- [https://basecamp.com/](https://basecamp.com/) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/5](https://basecamp.com/5) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/about](https://basecamp.com/about) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/accessibility](https://basecamp.com/accessibility) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/agents](https://basecamp.com/agents) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/apps](https://basecamp.com/apps) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/before-and-after](https://basecamp.com/before-and-after) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/books](https://basecamp.com/books) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/classes](https://basecamp.com/classes) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/cloud-exit](https://basecamp.com/cloud-exit) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/community](https://basecamp.com/community) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/customers](https://basecamp.com/customers) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/extras](https://basecamp.com/extras) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/features](https://basecamp.com/features) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/guides/group-chat-problems](https://basecamp.com/guides/group-chat-problems) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/guides/how-we-communicate](https://basecamp.com/guides/how-we-communicate) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/guides/how-we-make-decisions](https://basecamp.com/guides/how-we-make-decisions) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/guides/seven-shipping-principles](https://basecamp.com/guides/seven-shipping-principles) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/guides/why-we-choose-profit](https://basecamp.com/guides/why-we-choose-profit) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook](https://basecamp.com/handbook) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/hill-charts](https://basecamp.com/hill-charts) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/keyboard](https://basecamp.com/keyboard) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/learn](https://basecamp.com/learn) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/live](https://basecamp.com/live) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/new](https://basecamp.com/new) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/newsletter](https://basecamp.com/newsletter) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/overkill](https://basecamp.com/overkill) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/paths](https://basecamp.com/paths) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/pricing](https://basecamp.com/pricing) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/privacy](https://basecamp.com/privacy) — Cache-Control: (none) · cloudflare: DYNAMIC
- [https://basecamp.com/reliable](https://basecamp.com/reliable) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/security](https://basecamp.com/security) — Cache-Control: (none) · cloudflare: DYNAMIC
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/small](https://basecamp.com/small) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/support](https://basecamp.com/support) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/support/testimonials](https://basecamp.com/support/testimonials) — Cache-Control: (none) · cloudflare: BYPASS
- [https://basecamp.com/underdogs](https://basecamp.com/underdogs) — Cache-Control: (none) · cloudflare: BYPASS

#### Duplicate meta description across pages

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

- [https://basecamp.com/5](https://basecamp.com/5) — meta description shared by 2 pages: https://basecamp.com/new
- [https://basecamp.com/extras](https://basecamp.com/extras) — meta description shared by 2 pages: https://basecamp.com/integrations
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — meta description shared by 2 pages: https://basecamp.com/extras
- [https://basecamp.com/new](https://basecamp.com/new) — meta description shared by 2 pages: https://basecamp.com/5

#### Multiple <h1> elements

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

- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal) — 2 <h1> elements
- [https://basecamp.com/handbook](https://basecamp.com/handbook) — 2 <h1> elements
- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks) — 2 <h1> elements
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started) — 2 <h1> elements
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work) — 2 <h1> elements
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career) — 2 <h1> elements
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices) — 2 <h1> elements
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems) — 2 <h1> elements
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals) — 2 <h1> elements
- [https://basecamp.com/privacy](https://basecamp.com/privacy) — 2 <h1> elements
- [https://basecamp.com/security](https://basecamp.com/security) — 2 <h1> elements
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup) — 2 <h1> elements

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

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

- [https://basecamp.com/](https://basecamp.com/) — 1 of 3 images without width/height
- [https://basecamp.com/5](https://basecamp.com/5) — 25 of 26 images without width/height
- [https://basecamp.com/agents](https://basecamp.com/agents) — 1 of 1 images without width/height
- [https://basecamp.com/apps](https://basecamp.com/apps) — 2 of 2 images without width/height
- [https://basecamp.com/before-and-after](https://basecamp.com/before-and-after) — 1 of 1 images without width/height
- [https://basecamp.com/books](https://basecamp.com/books) — 5 of 5 images without width/height
- [https://basecamp.com/community](https://basecamp.com/community) — 4 of 4 images without width/height
- [https://basecamp.com/extras](https://basecamp.com/extras) — 91 of 91 images without width/height
- [https://basecamp.com/features](https://basecamp.com/features) — 17 of 17 images without width/height
- [https://basecamp.com/hill-charts](https://basecamp.com/hill-charts) — 8 of 8 images without width/height
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — 91 of 91 images without width/height
- [https://basecamp.com/learn](https://basecamp.com/learn) — 8 of 8 images without width/height
- [https://basecamp.com/new](https://basecamp.com/new) — 25 of 26 images without width/height
- [https://basecamp.com/privacy](https://basecamp.com/privacy) — 2 of 2 images without width/height
- [https://basecamp.com/security](https://basecamp.com/security) — 2 of 2 images without width/height
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup) — 1 of 1 images without width/height

#### Meta description too long

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

- [https://basecamp.com/](https://basecamp.com/) — 183 chars
- [https://basecamp.com/5](https://basecamp.com/5) — 223 chars
- [https://basecamp.com/features](https://basecamp.com/features) — 300 chars
- [https://basecamp.com/guides/how-we-communicate](https://basecamp.com/guides/how-we-communicate) — 260 chars
- [https://basecamp.com/guides/how-we-make-decisions](https://basecamp.com/guides/how-we-make-decisions) — 188 chars
- [https://basecamp.com/guides/why-we-choose-profit](https://basecamp.com/guides/why-we-choose-profit) — 271 chars
- [https://basecamp.com/new](https://basecamp.com/new) — 223 chars
- [https://basecamp.com/reliable](https://basecamp.com/reliable) — 236 chars
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup) — 184 chars
- [https://basecamp.com/small](https://basecamp.com/small) — 239 chars
- [https://basecamp.com/support](https://basecamp.com/support) — 227 chars

#### Meta description too short

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

- [https://basecamp.com/overkill](https://basecamp.com/overkill) — 42 chars

#### Missing Open Graph tags

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

- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks) — og:description
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started) — og:description
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work) — og:description
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career) — og:description
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices) — og:description
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems) — og:description
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals) — og:description

#### Large HTML document

- Rule: `perf.large_html` · Category: Performance · Occurrences: 4

- [https://basecamp.com/desktop/Basecamp-setup.exe](https://basecamp.com/desktop/Basecamp-setup.exe) — 23.8 MiB
- [https://basecamp.com/desktop/Basecamp.dmg](https://basecamp.com/desktop/Basecamp.dmg) — 23.7 MiB
- [https://basecamp.com/gettingreal/getting-real.pdf](https://basecamp.com/gettingreal/getting-real.pdf) — 6.4 MiB
- [https://basecamp.com/shapeup/shape-up.pdf](https://basecamp.com/shapeup/shape-up.pdf) — 10.7 MiB

#### Slow server response

- Rule: `perf.slow_response` · Category: Performance · Occurrences: 3

- [https://basecamp.com/desktop/Basecamp.dmg](https://basecamp.com/desktop/Basecamp.dmg) — 3287 ms
- [https://basecamp.com/gettingreal/getting-real.pdf](https://basecamp.com/gettingreal/getting-real.pdf) — 3526 ms
- [https://basecamp.com/shapeup/shape-up.pdf](https://basecamp.com/shapeup/shape-up.pdf) — 3481 ms

#### URL redirects to another URL

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

- [https://basecamp.com/extras](https://basecamp.com/extras) — redirects to https://basecamp.com/integrations
- [https://basecamp.com/new](https://basecamp.com/new) — redirects to https://basecamp.com/5
- [https://basecamp.com/privacy](https://basecamp.com/privacy) — redirects to https://37signals.com/policies/privacy
- [https://basecamp.com/security](https://basecamp.com/security) — redirects to https://37signals.com/policies/security

#### No structured data detected

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

- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal)
- [https://basecamp.com/handbook](https://basecamp.com/handbook)
- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks)
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started)
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work)
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career)
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices)
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems)
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals)
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup)

#### Missing recommended security headers

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

- [https://basecamp.com/](https://basecamp.com/) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/5](https://basecamp.com/5) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/about](https://basecamp.com/about) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/accessibility](https://basecamp.com/accessibility) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/agents](https://basecamp.com/agents) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/apps](https://basecamp.com/apps) — CSP, X-Content-Type-Options, HSTS
- [https://basecamp.com/before-and-after](https://basecamp.com/before-and-after) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/books](https://basecamp.com/books) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/classes](https://basecamp.com/classes) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/cloud-exit](https://basecamp.com/cloud-exit) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/community](https://basecamp.com/community) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/customers](https://basecamp.com/customers) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/extras](https://basecamp.com/extras) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/features](https://basecamp.com/features) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/guides/group-chat-problems](https://basecamp.com/guides/group-chat-problems) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/guides/how-we-communicate](https://basecamp.com/guides/how-we-communicate) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/guides/how-we-make-decisions](https://basecamp.com/guides/how-we-make-decisions) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/guides/seven-shipping-principles](https://basecamp.com/guides/seven-shipping-principles) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/guides/why-we-choose-profit](https://basecamp.com/guides/why-we-choose-profit) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook](https://basecamp.com/handbook) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/hill-charts](https://basecamp.com/hill-charts) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/keyboard](https://basecamp.com/keyboard) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/learn](https://basecamp.com/learn) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/live](https://basecamp.com/live) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/new](https://basecamp.com/new) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/newsletter](https://basecamp.com/newsletter) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/overkill](https://basecamp.com/overkill) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/paths](https://basecamp.com/paths) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/pricing](https://basecamp.com/pricing) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/privacy](https://basecamp.com/privacy) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/reliable](https://basecamp.com/reliable) — X-Content-Type-Options, HSTS, CSP
- [https://basecamp.com/security](https://basecamp.com/security) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/small](https://basecamp.com/small) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/support](https://basecamp.com/support) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/support/testimonials](https://basecamp.com/support/testimonials) — HSTS, CSP, X-Content-Type-Options
- [https://basecamp.com/underdogs](https://basecamp.com/underdogs) — HSTS, CSP, X-Content-Type-Options

#### Indexable page not listed in sitemap

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

- [https://basecamp.com/](https://basecamp.com/) — indexable but not in sitemap
- [https://basecamp.com/5](https://basecamp.com/5) — indexable but not in sitemap
- [https://basecamp.com/about](https://basecamp.com/about) — indexable but not in sitemap
- [https://basecamp.com/accessibility](https://basecamp.com/accessibility) — indexable but not in sitemap
- [https://basecamp.com/agents](https://basecamp.com/agents) — indexable but not in sitemap
- [https://basecamp.com/apps](https://basecamp.com/apps) — indexable but not in sitemap
- [https://basecamp.com/before-and-after](https://basecamp.com/before-and-after) — indexable but not in sitemap
- [https://basecamp.com/books](https://basecamp.com/books) — indexable but not in sitemap
- [https://basecamp.com/classes](https://basecamp.com/classes) — indexable but not in sitemap
- [https://basecamp.com/cloud-exit](https://basecamp.com/cloud-exit) — indexable but not in sitemap
- [https://basecamp.com/community](https://basecamp.com/community) — indexable but not in sitemap
- [https://basecamp.com/customers](https://basecamp.com/customers) — indexable but not in sitemap
- [https://basecamp.com/extras](https://basecamp.com/extras) — indexable but not in sitemap
- [https://basecamp.com/features](https://basecamp.com/features) — indexable but not in sitemap
- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal) — indexable but not in sitemap
- [https://basecamp.com/guides/group-chat-problems](https://basecamp.com/guides/group-chat-problems) — indexable but not in sitemap
- [https://basecamp.com/guides/how-we-communicate](https://basecamp.com/guides/how-we-communicate) — indexable but not in sitemap
- [https://basecamp.com/guides/how-we-make-decisions](https://basecamp.com/guides/how-we-make-decisions) — indexable but not in sitemap
- [https://basecamp.com/guides/seven-shipping-principles](https://basecamp.com/guides/seven-shipping-principles) — indexable but not in sitemap
- [https://basecamp.com/guides/why-we-choose-profit](https://basecamp.com/guides/why-we-choose-profit) — indexable but not in sitemap
- [https://basecamp.com/handbook](https://basecamp.com/handbook) — indexable but not in sitemap
- [https://basecamp.com/handbook/benefits-and-perks](https://basecamp.com/handbook/benefits-and-perks) — indexable but not in sitemap
- [https://basecamp.com/handbook/getting-started](https://basecamp.com/handbook/getting-started) — indexable but not in sitemap
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work) — indexable but not in sitemap
- [https://basecamp.com/handbook/making-a-career](https://basecamp.com/handbook/making-a-career) — indexable but not in sitemap
- [https://basecamp.com/handbook/managing-work-devices](https://basecamp.com/handbook/managing-work-devices) — indexable but not in sitemap
- [https://basecamp.com/handbook/our-internal-systems](https://basecamp.com/handbook/our-internal-systems) — indexable but not in sitemap
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals) — indexable but not in sitemap
- [https://basecamp.com/hill-charts](https://basecamp.com/hill-charts) — indexable but not in sitemap
- [https://basecamp.com/integrations](https://basecamp.com/integrations) — indexable but not in sitemap
- [https://basecamp.com/keyboard](https://basecamp.com/keyboard) — indexable but not in sitemap
- [https://basecamp.com/learn](https://basecamp.com/learn) — indexable but not in sitemap
- [https://basecamp.com/live](https://basecamp.com/live) — indexable but not in sitemap
- [https://basecamp.com/new](https://basecamp.com/new) — indexable but not in sitemap
- [https://basecamp.com/newsletter](https://basecamp.com/newsletter) — indexable but not in sitemap
- [https://basecamp.com/overkill](https://basecamp.com/overkill) — indexable but not in sitemap
- [https://basecamp.com/paths](https://basecamp.com/paths) — indexable but not in sitemap
- [https://basecamp.com/pricing](https://basecamp.com/pricing) — indexable but not in sitemap
- [https://basecamp.com/privacy](https://basecamp.com/privacy) — indexable but not in sitemap
- [https://basecamp.com/reliable](https://basecamp.com/reliable) — indexable but not in sitemap
- [https://basecamp.com/security](https://basecamp.com/security) — indexable but not in sitemap
- [https://basecamp.com/shapeup](https://basecamp.com/shapeup) — indexable but not in sitemap
- [https://basecamp.com/small](https://basecamp.com/small) — indexable but not in sitemap
- [https://basecamp.com/support](https://basecamp.com/support) — indexable but not in sitemap
- [https://basecamp.com/support/testimonials](https://basecamp.com/support/testimonials) — indexable but not in sitemap
- [https://basecamp.com/underdogs](https://basecamp.com/underdogs) — indexable but not in sitemap

#### Title is very short

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

- [https://basecamp.com/](https://basecamp.com/) — 8 chars
- [https://basecamp.com/gettingreal](https://basecamp.com/gettingreal) — 12 chars
- [https://basecamp.com/handbook/how-we-work](https://basecamp.com/handbook/how-we-work) — 11 chars
- [https://basecamp.com/handbook/our-rituals](https://basecamp.com/handbook/our-rituals) — 11 chars

#### Uppercase letters in URL path

- Rule: `url.uppercase` · Category: URL · Occurrences: 2

- [https://basecamp.com/desktop/Basecamp-setup.exe](https://basecamp.com/desktop/Basecamp-setup.exe)
- [https://basecamp.com/desktop/Basecamp.dmg](https://basecamp.com/desktop/Basecamp.dmg)

## Checks & coverage

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

- ✓ Agent Readiness — clean
- ✗ Cache — 46 notice(s)
- ✗ Canonical — 10 warning(s)
- ✗ Content — 1 warning(s)
- ✗ Crawlability — 4 notice(s)
- ✗ Duplicate — 8 warning(s), 4 notice(s)
- ✗ Headings — 12 notice(s)
- ✓ Hreflang — clean
- ✗ Images — 16 notice(s)
- ✓ Indexability — clean
- ✗ Links — 69 warning(s)
- ✗ Meta Description — 7 warning(s), 12 notice(s)
- ✓ Mobile — clean
- ✗ Performance — 7 notice(s)
- ✓ Rendering — clean
- ✗ Security — 46 notice(s)
- ✗ Sitemap — 46 notice(s)
- ✗ Social — 7 notice(s)
- ✗ Structured Data — 2 warning(s), 10 notice(s)
- ✗ Titles — 1 warning(s), 4 notice(s)
- ✗ URL — 2 notice(s)
- ✓ Video — clean

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

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