---
tool: Crawlinx SEO audit
source: https://crawlinx.com
domain: egghead.io
report_url: "https://crawlinx.com/audit/egghead.io"
crawl_id: 20260711T010024-6b7ffae5
health_score: 61
generated_at: 2026-07-11T15:42:53Z
total_pages: 50
html_pages: 47
indexable_pages: 43
errors: 6
warnings: 90
notices: 137
---

# SEO audit: egghead.io

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

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

## Overview

| Metric | Value |
| --- | --- |
| Pages crawled | 50 |
| HTML pages | 47 |
| Indexable | 43 |
| Non-indexable | 2 |
| Orphan pages | 31 |
| Broken internal links | 0 |
| Avg response time | 1373 ms |
| Errors / Warnings / Notices | 6 / 90 / 137 |
| Status codes | 3×0, 45×200, 1×404, 1×500 |

## Categories

| Category | Score | Errors | Warnings | Notices |
| --- | ---: | ---: | ---: | ---: |
| Sitemap | 89 | 5 | 2 | 1 |
| Crawlability | 96 | 1 | 3 | 3 |
| Links | 81 | 0 | 31 | 0 |
| Canonical | 89 | 0 | 18 | 0 |
| Duplicate | 93 | 0 | 12 | 24 |
| Content | 93 | 0 | 11 | 22 |
| Headings | 96 | 0 | 6 | 7 |
| Titles | 98 | 0 | 4 | 0 |
| Indexability | 99 | 0 | 2 | 0 |
| Images | 99 | 0 | 1 | 16 |
| Cache | 100 | 0 | 0 | 9 |
| Meta Description | 100 | 0 | 0 | 6 |
| Performance | 100 | 0 | 0 | 2 |
| Security | 100 | 0 | 0 | 44 |
| Social | 100 | 0 | 0 | 1 |
| Structured Data | 100 | 0 | 0 | 1 |
| URL | 100 | 0 | 0 | 1 |

## Issues

### Errors (6)

#### Non-200 URL listed in sitemap

- Rule: `sitemap.not_200` · Category: Sitemap · Occurrences: 5

- [https://egghead.io/20-days](https://egghead.io/20-days) — listed in sitemap but status 404
- [https://egghead.io/500](https://egghead.io/500) — listed in sitemap but status 500
- [https://egghead.io/confirm](https://egghead.io/confirm) — listed in sitemap but status 0
- [https://egghead.io/confirm/forever](https://egghead.io/confirm/forever) — listed in sitemap but status 0
- [https://egghead.io/confirmed](https://egghead.io/confirmed) — listed in sitemap but status 0

#### Client error (4xx) response

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

- [https://egghead.io/20-days](https://egghead.io/20-days) — HTTP 404

### Warnings (90)

#### Missing canonical tag

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

- [https://egghead.io/](https://egghead.io/)
- [https://egghead.io/clubs/portfolio-project](https://egghead.io/clubs/portfolio-project)
- [https://egghead.io/code-of-conduct](https://egghead.io/code-of-conduct)
- [https://egghead.io/developer-portfolio-foundations](https://egghead.io/developer-portfolio-foundations)
- [https://egghead.io/forever/email](https://egghead.io/forever/email)
- [https://egghead.io/guides](https://egghead.io/guides)
- [https://egghead.io/learn/30x500](https://egghead.io/learn/30x500)
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller)
- [https://egghead.io/level-up](https://egghead.io/level-up)
- [https://egghead.io/own-your-online-presence](https://egghead.io/own-your-online-presence)
- [https://egghead.io/portfolios](https://egghead.io/portfolios)
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email)
- [https://egghead.io/projects/build-a-developer-blog-with-gatsby](https://egghead.io/projects/build-a-developer-blog-with-gatsby)
- [https://egghead.io/signup](https://egghead.io/signup)
- [https://egghead.io/team](https://egghead.io/team)
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed)
- [https://egghead.io/workshop/claude-code](https://egghead.io/workshop/claude-code)
- [https://egghead.io/workshop/claude-code/boss](https://egghead.io/workshop/claude-code/boss)

#### Thin content (low word count)

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

- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — 11 words
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — 24 words
- [https://egghead.io/guides](https://egghead.io/guides) — 193 words
- [https://egghead.io/learn/30x500](https://egghead.io/learn/30x500) — 19 words
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — 11 words
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — 155 words
- [https://egghead.io/pricing](https://egghead.io/pricing) — 97 words
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — 22 words
- [https://egghead.io/team](https://egghead.io/team) — 11 words
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — 44 words
- [https://egghead.io/workshop/claude-code/boss](https://egghead.io/workshop/claude-code/boss) — 118 words

#### Duplicate <title> across pages

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

- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — title shared by 12 pages: https://egghead.io/case-studies, https://egghead.io/forever/email, https://egghead.io/learn/javascript/the-dom/DOMScroller
- [https://egghead.io/case-studies](https://egghead.io/case-studies) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/forever/email, https://egghead.io/learn/javascript/the-dom/DOMScroller
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/learn/javascript/the-dom/DOMScroller
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/signup](https://egghead.io/signup) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/site-directory](https://egghead.io/site-directory) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/talks](https://egghead.io/talks) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/team](https://egghead.io/team) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/topics](https://egghead.io/topics) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — title shared by 12 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/forever/email

#### Incomplete/empty response after retries (likely transient — re-crawl)

- Rule: `fetch.incomplete` · Category: Crawlability · Occurrences: 3

- [https://egghead.io/500](https://egghead.io/500) — HTTP 500, 58 words after 3 attempts
- [https://egghead.io/blocked](https://egghead.io/blocked) — HTTP 200, 12 words after 3 attempts
- [https://egghead.io/instructor](https://egghead.io/instructor) — HTTP 200, 11 words after 3 attempts

#### Missing <h1>

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

- [https://egghead.io/bookmarks](https://egghead.io/bookmarks)
- [https://egghead.io/forever/email](https://egghead.io/forever/email)
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller)
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email)
- [https://egghead.io/team](https://egghead.io/team)
- [https://egghead.io/topics](https://egghead.io/topics)

#### Images missing alt text

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

- [https://egghead.io/projects/build-a-developer-blog-with-gatsby](https://egghead.io/projects/build-a-developer-blog-with-gatsby) — 1 of 2 images missing alt

#### Page is noindex

- Rule: `index.noindex` · Category: Indexability · Occurrences: 1

- [https://egghead.io/answer/online-presence](https://egghead.io/answer/online-presence) — meta/X-Robots: meta=noindex,follow

#### noindex + nofollow (blocks link equity flow)

- Rule: `index.noindex_nofollow` · Category: Indexability · Occurrences: 1

- [https://egghead.io/migration-flags-proof](https://egghead.io/migration-flags-proof) — meta/X-Robots: meta=index,follow header=noindex, nofollow

#### Orphan page (no internal inlinks)

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

- [https://egghead.io/avoid-unexpected-errors-in-angular-16-with-required-attributes](https://egghead.io/avoid-unexpected-errors-in-angular-16-with-required-attributes) — no internal links point here
- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — no internal links point here
- [https://egghead.io/case-studies](https://egghead.io/case-studies) — no internal links point here
- [https://egghead.io/clubs/portfolio-project](https://egghead.io/clubs/portfolio-project) — no internal links point here
- [https://egghead.io/code-of-conduct](https://egghead.io/code-of-conduct) — no internal links point here
- [https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release](https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release) — no internal links point here
- [https://egghead.io/developer-portfolio-foundations](https://egghead.io/developer-portfolio-foundations) — no internal links point here
- [https://egghead.io/embed-pdfs-in-html-with-embed-iframe-and-object-tags](https://egghead.io/embed-pdfs-in-html-with-embed-iframe-and-object-tags) — no internal links point here
- [https://egghead.io/enhance-your-testing-workflow-with-vitest](https://egghead.io/enhance-your-testing-workflow-with-vitest) — no internal links point here
- [https://egghead.io/forever](https://egghead.io/forever) — no internal links point here
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — no internal links point here
- [https://egghead.io/guides](https://egghead.io/guides) — no internal links point here
- [https://egghead.io/learn/30x500](https://egghead.io/learn/30x500) — no internal links point here
- [https://egghead.io/learn/30x500/sales-safari](https://egghead.io/learn/30x500/sales-safari) — no internal links point here
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — no internal links point here
- [https://egghead.io/level-up](https://egghead.io/level-up) — no internal links point here
- [https://egghead.io/own-your-online-presence](https://egghead.io/own-your-online-presence) — no internal links point here
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — no internal links point here
- [https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function](https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function) — no internal links point here
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — no internal links point here
- [https://egghead.io/projects/build-a-developer-blog-with-gatsby](https://egghead.io/projects/build-a-developer-blog-with-gatsby) — no internal links point here
- [https://egghead.io/shaundai-person](https://egghead.io/shaundai-person) — no internal links point here
- [https://egghead.io/signup](https://egghead.io/signup) — no internal links point here
- [https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models](https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models) — no internal links point here
- [https://egghead.io/site-directory](https://egghead.io/site-directory) — no internal links point here
- [https://egghead.io/talks](https://egghead.io/talks) — no internal links point here
- [https://egghead.io/team](https://egghead.io/team) — no internal links point here
- [https://egghead.io/topics](https://egghead.io/topics) — no internal links point here
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — no internal links point here
- [https://egghead.io/workshop/claude-code/boss](https://egghead.io/workshop/claude-code/boss) — no internal links point here
- [https://egghead.io/write-for-egghead](https://egghead.io/write-for-egghead) — no internal links point here

#### Non-indexable URL listed in sitemap

- Rule: `sitemap.non_indexable` · Category: Sitemap · Occurrences: 2

- [https://egghead.io/answer/online-presence](https://egghead.io/answer/online-presence) — listed in sitemap but noindex
- [https://egghead.io/migration-flags-proof](https://egghead.io/migration-flags-proof) — listed in sitemap but noindex

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

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

- [https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release](https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release) — 83 chars, ~659px (limit ~580px)
- [https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function](https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function) — 85 chars, ~663px (limit ~580px)
- [https://egghead.io/shaundai-person](https://egghead.io/shaundai-person) — 76 chars, ~599px (limit ~580px)
- [https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models](https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models) — 77 chars, ~603px (limit ~580px)

### Notices (137)

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

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

- [https://egghead.io/](https://egghead.io/) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/forever](https://egghead.io/forever) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/migration-flags-proof](https://egghead.io/migration-flags-proof) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/team](https://egghead.io/team) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
- [https://egghead.io/workshop/claude-code](https://egghead.io/workshop/claude-code) — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS

#### Low text-to-HTML ratio

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

- [https://egghead.io/](https://egghead.io/) — 0.3%
- [https://egghead.io/avoid-unexpected-errors-in-angular-16-with-required-attributes](https://egghead.io/avoid-unexpected-errors-in-angular-16-with-required-attributes) — 3.7%
- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — 0.5%
- [https://egghead.io/case-studies](https://egghead.io/case-studies) — 1.3%
- [https://egghead.io/courses](https://egghead.io/courses) — 4.4%
- [https://egghead.io/courses/4-things-you-might-not-know-about-chrome-devtools-98f99710](https://egghead.io/courses/4-things-you-might-not-know-about-chrome-devtools-98f99710) — 3.4%
- [https://egghead.io/egghead-for-teams](https://egghead.io/egghead-for-teams) — 4.4%
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — 1.7%
- [https://egghead.io/guides](https://egghead.io/guides) — 2.7%
- [https://egghead.io/learn/30x500](https://egghead.io/learn/30x500) — 0.7%
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — 0.5%
- [https://egghead.io/newsletters/ai-dev-essentials](https://egghead.io/newsletters/ai-dev-essentials) — 1.3%
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — 1.7%
- [https://egghead.io/pricing](https://egghead.io/pricing) — 1.6%
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — 1.5%
- [https://egghead.io/signup](https://egghead.io/signup) — 3.3%
- [https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models](https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models) — 3.8%
- [https://egghead.io/talks](https://egghead.io/talks) — 4.5%
- [https://egghead.io/team](https://egghead.io/team) — 0.5%
- [https://egghead.io/topics](https://egghead.io/topics) — 0.3%
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — 1.6%
- [https://egghead.io/workshop/claude-code/boss](https://egghead.io/workshop/claude-code/boss) — 3.4%

#### Duplicate meta description across pages

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

- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — meta description shared by 22 pages: https://egghead.io/case-studies, https://egghead.io/code-of-conduct, https://egghead.io/courses
- [https://egghead.io/case-studies](https://egghead.io/case-studies) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/code-of-conduct, https://egghead.io/courses
- [https://egghead.io/case-studies/jon-meyers](https://egghead.io/case-studies/jon-meyers) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/clubs/portfolio-project](https://egghead.io/clubs/portfolio-project) — meta description shared by 2 pages: https://egghead.io/level-up
- [https://egghead.io/code-of-conduct](https://egghead.io/code-of-conduct) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/courses
- [https://egghead.io/courses](https://egghead.io/courses) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release](https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/faq](https://egghead.io/faq) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/forever](https://egghead.io/forever) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/learn/30x500](https://egghead.io/learn/30x500) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/learn/30x500/sales-safari](https://egghead.io/learn/30x500/sales-safari) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/level-up](https://egghead.io/level-up) — meta description shared by 2 pages: https://egghead.io/clubs/portfolio-project
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/pricing](https://egghead.io/pricing) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/privacy](https://egghead.io/privacy) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/signup](https://egghead.io/signup) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/site-directory](https://egghead.io/site-directory) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/talks](https://egghead.io/talks) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/team](https://egghead.io/team) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/topics](https://egghead.io/topics) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — meta description shared by 22 pages: https://egghead.io/bookmarks, https://egghead.io/case-studies, https://egghead.io/code-of-conduct

#### Multiple <h1> elements

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

- [https://egghead.io/answer/online-presence](https://egghead.io/answer/online-presence) — 2 <h1> elements
- [https://egghead.io/clubs/portfolio-project](https://egghead.io/clubs/portfolio-project) — 2 <h1> elements
- [https://egghead.io/courses](https://egghead.io/courses) — 439 <h1> elements
- [https://egghead.io/developer-portfolio-foundations](https://egghead.io/developer-portfolio-foundations) — 2 <h1> elements
- [https://egghead.io/level-up](https://egghead.io/level-up) — 2 <h1> elements
- [https://egghead.io/own-your-online-presence](https://egghead.io/own-your-online-presence) — 2 <h1> elements
- [https://egghead.io/projects/build-a-developer-blog-with-gatsby](https://egghead.io/projects/build-a-developer-blog-with-gatsby) — 6 <h1> elements

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

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

- [https://egghead.io/](https://egghead.io/) — 16 of 96 images without width/height
- [https://egghead.io/case-studies](https://egghead.io/case-studies) — 17 of 17 images without width/height
- [https://egghead.io/case-studies/jon-meyers](https://egghead.io/case-studies/jon-meyers) — 4 of 4 images without width/height
- [https://egghead.io/courses](https://egghead.io/courses) — 2161 of 2161 images without width/height
- [https://egghead.io/courses/4-things-you-might-not-know-about-chrome-devtools-98f99710](https://egghead.io/courses/4-things-you-might-not-know-about-chrome-devtools-98f99710) — 4 of 4 images without width/height
- [https://egghead.io/egghead-for-teams](https://egghead.io/egghead-for-teams) — 2 of 2 images without width/height
- [https://egghead.io/enhance-your-testing-workflow-with-vitest](https://egghead.io/enhance-your-testing-workflow-with-vitest) — 4 of 6 images without width/height
- [https://egghead.io/forever](https://egghead.io/forever) — 2 of 2 images without width/height
- [https://egghead.io/guides](https://egghead.io/guides) — 1 of 7 images without width/height
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — 4 of 4 images without width/height
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — 32 of 32 images without width/height
- [https://egghead.io/pricing](https://egghead.io/pricing) — 4 of 4 images without width/height
- [https://egghead.io/projects/build-a-developer-blog-with-gatsby](https://egghead.io/projects/build-a-developer-blog-with-gatsby) — 2 of 2 images without width/height
- [https://egghead.io/signup](https://egghead.io/signup) — 26 of 35 images without width/height
- [https://egghead.io/talks](https://egghead.io/talks) — 80 of 80 images without width/height
- [https://egghead.io/topics](https://egghead.io/topics) — 402 of 402 images without width/height

#### Meta description too long

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

- [https://egghead.io/](https://egghead.io/) — 190 chars
- [https://egghead.io/egghead-for-teams](https://egghead.io/egghead-for-teams) — 166 chars
- [https://egghead.io/embed-pdfs-in-html-with-embed-iframe-and-object-tags](https://egghead.io/embed-pdfs-in-html-with-embed-iframe-and-object-tags) — 170 chars
- [https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function](https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function) — 217 chars
- [https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models](https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models) — 166 chars
- [https://egghead.io/write-for-egghead](https://egghead.io/write-for-egghead) — 171 chars

#### Missing Open Graph tags

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

- [https://egghead.io/case-studies/jon-meyers](https://egghead.io/case-studies/jon-meyers) — og:image

#### Large HTML document

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

- [https://egghead.io/courses](https://egghead.io/courses) — 7.3 MiB

#### Slow server response

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

- [https://egghead.io/migration-flags-proof](https://egghead.io/migration-flags-proof) — 10916 ms

#### Blocked by robots.txt

- Rule: `robots.blocked` · Category: Crawlability · Occurrences: 3

- [https://egghead.io/confirm](https://egghead.io/confirm) — Disallowed by robots.txt; not fetched
- [https://egghead.io/confirm/forever](https://egghead.io/confirm/forever) — Disallowed by robots.txt; not fetched
- [https://egghead.io/confirmed](https://egghead.io/confirmed) — Disallowed by robots.txt; not fetched

#### No structured data detected

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

- [https://egghead.io/](https://egghead.io/)

#### Missing recommended security headers

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

- [https://egghead.io/](https://egghead.io/) — CSP, X-Content-Type-Options
- [https://egghead.io/20-days](https://egghead.io/20-days) — CSP, X-Content-Type-Options
- [https://egghead.io/answer/online-presence](https://egghead.io/answer/online-presence) — CSP, X-Content-Type-Options
- [https://egghead.io/avoid-unexpected-errors-in-angular-16-with-required-attributes](https://egghead.io/avoid-unexpected-errors-in-angular-16-with-required-attributes) — CSP, X-Content-Type-Options
- [https://egghead.io/bookmarks](https://egghead.io/bookmarks) — CSP, X-Content-Type-Options
- [https://egghead.io/case-studies](https://egghead.io/case-studies) — CSP, X-Content-Type-Options
- [https://egghead.io/case-studies/jon-meyers](https://egghead.io/case-studies/jon-meyers) — CSP, X-Content-Type-Options
- [https://egghead.io/clubs/portfolio-project](https://egghead.io/clubs/portfolio-project) — X-Content-Type-Options, CSP
- [https://egghead.io/code-of-conduct](https://egghead.io/code-of-conduct) — CSP, X-Content-Type-Options
- [https://egghead.io/courses](https://egghead.io/courses) — CSP, X-Content-Type-Options
- [https://egghead.io/courses/4-things-you-might-not-know-about-chrome-devtools-98f99710](https://egghead.io/courses/4-things-you-might-not-know-about-chrome-devtools-98f99710) — CSP, X-Content-Type-Options
- [https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release](https://egghead.io/create-a-prerelease-channel-in-your-npm-package-using-semantic-release) — CSP, X-Content-Type-Options
- [https://egghead.io/developer-portfolio-foundations](https://egghead.io/developer-portfolio-foundations) — X-Content-Type-Options, CSP
- [https://egghead.io/egghead-for-teams](https://egghead.io/egghead-for-teams) — X-Content-Type-Options, CSP
- [https://egghead.io/embed-pdfs-in-html-with-embed-iframe-and-object-tags](https://egghead.io/embed-pdfs-in-html-with-embed-iframe-and-object-tags) — CSP, X-Content-Type-Options
- [https://egghead.io/enhance-your-testing-workflow-with-vitest](https://egghead.io/enhance-your-testing-workflow-with-vitest) — CSP, X-Content-Type-Options
- [https://egghead.io/faq](https://egghead.io/faq) — CSP, X-Content-Type-Options
- [https://egghead.io/forever](https://egghead.io/forever) — CSP, X-Content-Type-Options
- [https://egghead.io/forever/email](https://egghead.io/forever/email) — CSP, X-Content-Type-Options
- [https://egghead.io/guides](https://egghead.io/guides) — CSP, X-Content-Type-Options
- [https://egghead.io/learn/30x500](https://egghead.io/learn/30x500) — CSP, X-Content-Type-Options
- [https://egghead.io/learn/30x500/sales-safari](https://egghead.io/learn/30x500/sales-safari) — CSP, X-Content-Type-Options
- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller) — CSP, X-Content-Type-Options
- [https://egghead.io/level-up](https://egghead.io/level-up) — CSP, X-Content-Type-Options
- [https://egghead.io/migration-flags-proof](https://egghead.io/migration-flags-proof) — CSP, X-Content-Type-Options
- [https://egghead.io/newsletters/ai-dev-essentials](https://egghead.io/newsletters/ai-dev-essentials) — CSP, X-Content-Type-Options
- [https://egghead.io/own-your-online-presence](https://egghead.io/own-your-online-presence) — X-Content-Type-Options, CSP
- [https://egghead.io/portfolios](https://egghead.io/portfolios) — CSP, X-Content-Type-Options
- [https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function](https://egghead.io/prevent-javascript-object-tampering-with-the-ses-library-harden-function) — CSP, X-Content-Type-Options
- [https://egghead.io/pricing](https://egghead.io/pricing) — CSP, X-Content-Type-Options
- [https://egghead.io/pricing/email](https://egghead.io/pricing/email) — CSP, X-Content-Type-Options
- [https://egghead.io/privacy](https://egghead.io/privacy) — CSP, X-Content-Type-Options
- [https://egghead.io/projects/build-a-developer-blog-with-gatsby](https://egghead.io/projects/build-a-developer-blog-with-gatsby) — CSP, X-Content-Type-Options
- [https://egghead.io/shaundai-person](https://egghead.io/shaundai-person) — CSP, X-Content-Type-Options
- [https://egghead.io/signup](https://egghead.io/signup) — CSP, X-Content-Type-Options
- [https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models](https://egghead.io/simplify-angular-templates-that-use-observables-with-view-models) — CSP, X-Content-Type-Options
- [https://egghead.io/site-directory](https://egghead.io/site-directory) — CSP, X-Content-Type-Options
- [https://egghead.io/talks](https://egghead.io/talks) — X-Content-Type-Options, CSP
- [https://egghead.io/team](https://egghead.io/team) — X-Content-Type-Options, CSP
- [https://egghead.io/topics](https://egghead.io/topics) — CSP, X-Content-Type-Options
- [https://egghead.io/unsubscribed](https://egghead.io/unsubscribed) — CSP, X-Content-Type-Options
- [https://egghead.io/workshop/claude-code](https://egghead.io/workshop/claude-code) — CSP, X-Content-Type-Options
- [https://egghead.io/workshop/claude-code/boss](https://egghead.io/workshop/claude-code/boss) — CSP, X-Content-Type-Options
- [https://egghead.io/write-for-egghead](https://egghead.io/write-for-egghead) — CSP, X-Content-Type-Options

#### Indexable page not listed in sitemap

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

- [https://egghead.io/](https://egghead.io/) — indexable but not in sitemap

#### Uppercase letters in URL path

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

- [https://egghead.io/learn/javascript/the-dom/DOMScroller](https://egghead.io/learn/javascript/the-dom/DOMScroller)

## Checks & coverage

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

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

---
*Generated by [Crawlinx](https://crawlinx.com) · free technical-SEO audits · https://crawlinx.com/audit/egghead.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
