SEO audit for freecodecamp.org
Health 65/100 (fair) · 50 pages crawled · generated 2026-07-11
Download Markdown report (feed to ChatGPT / Claude / Cursor)
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Links | 69 | 0 | 52 | 0 |
| Titles | 92 | 0 | 13 | 0 |
| Structured Data | 95 | 0 | 9 | 0 |
| Headings | 95 | 0 | 8 | 0 |
| Duplicate | 97 | 0 | 5 | 3 |
| Crawlability | 98 | 0 | 3 | 0 |
| Cache | 100 | 0 | 0 | 46 |
| Images | 100 | 0 | 0 | 46 |
| Meta Description | 100 | 0 | 0 | 38 |
| Sitemap | 100 | 0 | 0 | 7 |
| Social | 100 | 0 | 0 | 9 |
| URL | 100 | 0 | 0 | 2 |
Warnings (7 rules)
warning Duplicate <title> across pages
Rule duplicate.title · Duplicate · 5 occurrence(s)
- https://www.freecodecamp.org/italian/news/ — title shared by 2 pages: https://www.freecodecamp.org/portuguese/news/
- https://www.freecodecamp.org/korean/news/ — title shared by 3 pages: https://www.freecodecamp.org/news/, https://www.freecodecamp.org/ukrainian/news/
- https://www.freecodecamp.org/news/ — title shared by 3 pages: https://www.freecodecamp.org/ukrainian/news/, https://www.freecodecamp.org/korean/news/
- https://www.freecodecamp.org/portuguese/news/ — title shared by 2 pages: https://www.freecodecamp.org/italian/news/
- https://www.freecodecamp.org/ukrainian/news/ — title shared by 3 pages: https://www.freecodecamp.org/news/, https://www.freecodecamp.org/korean/news/
warning Incomplete/empty response after retries (likely transient — re-crawl)
Rule fetch.incomplete · Crawlability · 3 occurrence(s)
- https://freecodecamp.org/ — HTTP 200, 0 words after 3 attempts
- https://www.freecodecamp.org/donate/ — HTTP 200, 0 words after 3 attempts
- https://www.freecodecamp.org/learn — HTTP 200, 0 words after 3 attempts
warning Missing <h1>
Rule h1.missing · Headings · 8 occurrence(s)
- https://www.freecodecamp.org/chinese/news/
- https://www.freecodecamp.org/espanol/news/
- https://www.freecodecamp.org/italian/news/
- https://www.freecodecamp.org/japanese/news/
- https://www.freecodecamp.org/korean/news/
- https://www.freecodecamp.org/news/
- https://www.freecodecamp.org/portuguese/news/
- https://www.freecodecamp.org/ukrainian/news/
warning Orphan page (no internal inlinks)
Rule links.orphan · Links · 12 occurrence(s)
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — no internal links point here
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — no internal links point here
- https://www.freecodecamp.org/news/build-a-private-rag-qa-ai-agent-for-your-documents-using-langchain/ — no internal links point here
- https://www.freecodecamp.org/news/code-briefing-the-best-classes-for-learning-statistics-8a3065b27735/ — no internal links point here
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — no internal links point here
- https://www.freecodecamp.org/news/gen-ai-product-experimentation-with-regression-discontinuity-design/ — no internal links point here
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — no internal links point here
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — no internal links point here
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — no internal links point here
- https://www.freecodecamp.org/news/thank-you-for-donating/ — no internal links point here
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — no internal links point here
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — no internal links point here
warning Internal link points to a redirect
Rule links.redirect_target · Links · 40 occurrence(s)
- https://www.freecodecamp.org/korean/news/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/ai-paper-review-self-consistency-improves-chain-of-thought-reasoning-in-language-models/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/author/03balogun/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/build-an-mcp-server-with-fastmcp-for-local-ai-agent/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/build-your-own-healthcare-ai-assistant-with-medgemma-ollama-and-open-webui/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/how-an-lms-software-helps-technical-teams-upskill-faster/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/how-mcp-is-changing-wordpress-development/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/how-to-build-your-own-mcp-server-and-publish-your-chatgpt-app/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/how-to-fix-app-jank-profiling-flutter-apps-with-devtools/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/how-to-turn-a-postman-collection-into-a-maintainable-pytest-suite/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/implement-zero-trust-workload-identity-in-kubernetes-with-spiffe-spire-and-cilium/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/level-up-your-react-skills-with-typescript/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/role-based-access-control-nodejs-rest-api-jwt/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/thank-you-for-donating/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/uplift-modeling-for-personalized-ai-rollouts-in-python/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
- https://www.freecodecamp.org/news/why-does-the-internet-keep-breaking-a-deep-dive-into-aws-us-east-1/ — https://www.freecodecamp.org/donate/ → https://www.freecodecamp.org/donate
warning Rich-result schema missing required properties
Rule schema.invalid · Structured Data · 9 occurrence(s)
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — Article missing: datePublished
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — Article missing: datePublished
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — Article missing: datePublished
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — Article missing: datePublished
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — Article missing: datePublished
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — Article missing: datePublished
- https://www.freecodecamp.org/news/thank-you-for-donating/ — Article missing: datePublished
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — Article missing: datePublished
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — Article missing: datePublished
warning Title likely truncated in SERP (too wide)
Rule title.too_long · Titles · 13 occurrence(s)
- https://www.freecodecamp.org/espanol/news/ — 77 chars, ~619px (limit ~580px)
- https://www.freecodecamp.org/news/ai-paper-review-self-consistency-improves-chain-of-thought-reasoning-in-language-models/ — 88 chars, ~711px (limit ~580px)
- https://www.freecodecamp.org/news/build-pdf-ocr-to-text-converter-javascript/ — 71 chars, ~581px (limit ~580px)
- https://www.freecodecamp.org/news/build-your-own-healthcare-ai-assistant-with-medgemma-ollama-and-open-webui/ — 76 chars, ~626px (limit ~580px)
- https://www.freecodecamp.org/news/gen-ai-product-experimentation-with-regression-discontinuity-design/ — 125 chars, ~987px (limit ~580px)
- https://www.freecodecamp.org/news/how-to-build-your-own-mcp-server-and-publish-your-chatgpt-app/ — 97 chars, ~796px (limit ~580px)
- https://www.freecodecamp.org/news/how-to-fix-app-jank-profiling-flutter-apps-with-devtools/ — 78 chars, ~593px (limit ~580px)
- https://www.freecodecamp.org/news/implement-zero-trust-workload-identity-in-kubernetes-with-spiffe-spire-and-cilium/ — 90 chars, ~715px (limit ~580px)
- https://www.freecodecamp.org/news/role-based-access-control-nodejs-rest-api-jwt/ — 73 chars, ~601px (limit ~580px)
- https://www.freecodecamp.org/news/thank-you-for-donating/ — 77 chars, ~587px (limit ~580px)
- https://www.freecodecamp.org/news/the-hidden-engineering-behind-ai-products-what-devs-should-know/ — 83 chars, ~671px (limit ~580px)
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — 73 chars, ~591px (limit ~580px)
- https://www.freecodecamp.org/news/uplift-modeling-for-personalized-ai-rollouts-in-python/ — 134 chars, ~1032px (limit ~580px)
Notices (7 rules)
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 46 occurrence(s)
- https://www.freecodecamp.org/chinese/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/espanol/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/italian/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/japanese/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/korean/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/author/03balogun/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/build-your-own-healthcare-ai-assistant-with-medgemma-ollama-and-open-webui/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/how-an-lms-software-helps-technical-teams-upskill-faster/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/how-mcp-is-changing-wordpress-development/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/how-to-build-your-own-mcp-server-and-publish-your-chatgpt-app/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/how-to-turn-a-postman-collection-into-a-maintainable-pytest-suite/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/role-based-access-control-nodejs-rest-api-jwt/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/thank-you-for-donating/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/news/uplift-modeling-for-personalized-ai-rollouts-in-python/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/portuguese/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://www.freecodecamp.org/ukrainian/news/ — Cache-Control: (none) · cloudflare: DYNAMIC
notice Duplicate meta description across pages
Rule duplicate.meta_desc · Duplicate · 3 occurrence(s)
- https://www.freecodecamp.org/korean/news/ — meta description shared by 3 pages: https://www.freecodecamp.org/news/, https://www.freecodecamp.org/ukrainian/news/
- https://www.freecodecamp.org/news/ — meta description shared by 3 pages: https://www.freecodecamp.org/ukrainian/news/, https://www.freecodecamp.org/korean/news/
- https://www.freecodecamp.org/ukrainian/news/ — meta description shared by 3 pages: https://www.freecodecamp.org/news/, https://www.freecodecamp.org/korean/news/
notice Images without width/height (layout shift / CLS)
Rule images.missing_dimensions · Images · 46 occurrence(s)
- https://www.freecodecamp.org/chinese/news/ — 3 of 75 images without width/height
- https://www.freecodecamp.org/espanol/news/ — 3 of 61 images without width/height
- https://www.freecodecamp.org/italian/news/ — 3 of 76 images without width/height
- https://www.freecodecamp.org/japanese/news/ — 3 of 75 images without width/height
- https://www.freecodecamp.org/korean/news/ — 3 of 77 images without width/height
- https://www.freecodecamp.org/news/ — 3 of 53 images without width/height
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — 3 of 4 images without width/height
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — 3 of 4 images without width/height
- https://www.freecodecamp.org/news/author/03balogun/ — 3 of 6 images without width/height
- https://www.freecodecamp.org/news/build-your-own-healthcare-ai-assistant-with-medgemma-ollama-and-open-webui/ — 3 of 8 images without width/height
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — 3 of 5 images without width/height
- https://www.freecodecamp.org/news/how-an-lms-software-helps-technical-teams-upskill-faster/ — 3 of 6 images without width/height
- https://www.freecodecamp.org/news/how-mcp-is-changing-wordpress-development/ — 3 of 9 images without width/height
- https://www.freecodecamp.org/news/how-to-build-your-own-mcp-server-and-publish-your-chatgpt-app/ — 3 of 29 images without width/height
- https://www.freecodecamp.org/news/how-to-turn-a-postman-collection-into-a-maintainable-pytest-suite/ — 3 of 7 images without width/height
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — 3 of 3 images without width/height
- https://www.freecodecamp.org/news/role-based-access-control-nodejs-rest-api-jwt/ — 3 of 6 images without width/height
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — 3 of 7 images without width/height
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — 3 of 3 images without width/height
- https://www.freecodecamp.org/news/thank-you-for-donating/ — 3 of 4 images without width/height
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — 3 of 5 images without width/height
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — 3 of 7 images without width/height
- https://www.freecodecamp.org/news/uplift-modeling-for-personalized-ai-rollouts-in-python/ — 3 of 8 images without width/height
- https://www.freecodecamp.org/portuguese/news/ — 3 of 64 images without width/height
- https://www.freecodecamp.org/ukrainian/news/ — 3 of 78 images without width/height
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 38 occurrence(s)
- https://www.freecodecamp.org/espanol/news/ — 179 chars
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — 335 chars
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — 333 chars
- https://www.freecodecamp.org/news/ai-paper-review-self-consistency-improves-chain-of-thought-reasoning-in-language-models/ — 199 chars
- https://www.freecodecamp.org/news/build-an-mcp-server-with-fastmcp-for-local-ai-agent/ — 200 chars
- https://www.freecodecamp.org/news/build-pdf-ocr-to-text-converter-javascript/ — 199 chars
- https://www.freecodecamp.org/news/build-your-own-healthcare-ai-assistant-with-medgemma-ollama-and-open-webui/ — 200 chars
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — 318 chars
- https://www.freecodecamp.org/news/how-an-lms-software-helps-technical-teams-upskill-faster/ — 199 chars
- https://www.freecodecamp.org/news/how-mcp-is-changing-wordpress-development/ — 200 chars
- https://www.freecodecamp.org/news/how-to-build-your-own-local-ai-agent-with-tool-calling-and-memory/ — 200 chars
- https://www.freecodecamp.org/news/how-to-build-your-own-mcp-server-and-publish-your-chatgpt-app/ — 200 chars
- https://www.freecodecamp.org/news/how-to-fix-app-jank-profiling-flutter-apps-with-devtools/ — 200 chars
- https://www.freecodecamp.org/news/how-to-turn-a-postman-collection-into-a-maintainable-pytest-suite/ — 200 chars
- https://www.freecodecamp.org/news/implement-zero-trust-workload-identity-in-kubernetes-with-spiffe-spire-and-cilium/ — 200 chars
- https://www.freecodecamp.org/news/level-up-your-react-skills-with-typescript/ — 199 chars
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — 298 chars
- https://www.freecodecamp.org/news/role-based-access-control-nodejs-rest-api-jwt/ — 200 chars
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — 326 chars
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — 335 chars
- https://www.freecodecamp.org/news/thank-you-for-donating/ — 314 chars
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — 319 chars
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — 304 chars
- https://www.freecodecamp.org/news/uplift-modeling-for-personalized-ai-rollouts-in-python/ — 200 chars
- https://www.freecodecamp.org/news/why-does-the-internet-keep-breaking-a-deep-dive-into-aws-us-east-1/ — 199 chars
notice Missing Open Graph tags
Rule og.missing · Social · 9 occurrence(s)
- https://www.freecodecamp.org/news/2025-supporter-wallpaper/ — og:image
- https://www.freecodecamp.org/news/2025-top-contributor-wallpaper/ — og:image
- https://www.freecodecamp.org/news/freecodecamp-supporter-happy-2023-wallpaper/ — og:image
- https://www.freecodecamp.org/news/podcast-guest-checklist/ — og:image
- https://www.freecodecamp.org/news/super-secret-supporter-wallpaper/ — og:image
- https://www.freecodecamp.org/news/thank-you-for-being-a-supporter/ — og:image
- https://www.freecodecamp.org/news/thank-you-for-donating/ — og:image
- https://www.freecodecamp.org/news/top-contributor-happy-2023-wallpaper/ — og:image
- https://www.freecodecamp.org/news/top-open-source-contributor-wallpaper/ — og:image
notice Indexable page not listed in sitemap
Rule sitemap.orphan_not_listed · Sitemap · 7 occurrence(s)
- https://www.freecodecamp.org/chinese/news/ — indexable but not in sitemap
- https://www.freecodecamp.org/espanol/news/ — indexable but not in sitemap
- https://www.freecodecamp.org/italian/news/ — indexable but not in sitemap
- https://www.freecodecamp.org/japanese/news/ — indexable but not in sitemap
- https://www.freecodecamp.org/korean/news/ — indexable but not in sitemap
- https://www.freecodecamp.org/portuguese/news/ — indexable but not in sitemap
- https://www.freecodecamp.org/ukrainian/news/ — indexable but not in sitemap
notice URL is very long
Rule url.too_long · URL · 2 occurrence(s)
Audit your own site — free
77 checks, internal PageRank, render-diff. No signup, results in ~30s.