Catalog / dion.run
68

SEO audit for dion.run

dion.run

otherNext.js

Health 68/100 (fair) · 9 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)

김동규(Dion)의 블로그

9
pages crawled
8
indexable pages
0
errors
23
warnings
62
notices
2
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Canonical 73 0 8 0
Performance 83 0 5 10
Content 90 0 3 3
Headings 90 0 3 0
Duplicate 93 0 2 2
Links 93 0 2 0
Agent Readiness 100 0 0 1
Crawlability 100 0 0 3
Meta Description 100 0 0 4
Security 100 0 0 8
Sitemap 100 0 0 6
Social 100 0 0 8
Structured Data 100 0 0 8
Titles 100 0 0 9
Findings

Warnings (6 rules)

warning Thin content (low word count)

Rule content.thin · Content · 3 occurrence(s)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 2 occurrence(s)

warning Missing <h1>

Rule h1.missing · Headings · 3 occurrence(s)

warning Hero/LCP image is lazy-loaded (loading=lazy delays LCP)

Rule images.no_lazy_lcp_candidate · Performance · 5 occurrence(s)

  • https://www.dion.run/2023/2023-in-review — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://www.dion.run/2024/start-a-developer — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://www.dion.run/2025/2024-in-review — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://www.dion.run/2026/2025-in-review — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://www.dion.run/2026/good-code — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.

warning Orphan page (no internal inlinks)

Rule links.orphan · Links · 2 occurrence(s)

Notices (15 rules)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

  • https://www.dion.run/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

notice Low text-to-HTML ratio

Rule content.low_ratio · Content · 3 occurrence(s)

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 2 occurrence(s)

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 1 occurrence(s)

  • https://dion.run/about — the likely hero/LCP image (dion.a25b45d8.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 1 occurrence(s)

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 3 occurrence(s)

notice Missing Open Graph tags

Rule og.missing · Social · 8 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 1 occurrence(s)

  • https://dion.run/about — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

notice No Last-Modified header (no conditional GET for unchanged pages)

Rule perf.no_last_modified · Performance · 8 occurrence(s)

  • https://dion.run/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://dion.run/about — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.dion.run/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.dion.run/2023/2023-in-review — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.dion.run/2024/start-a-developer — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.dion.run/2025/2024-in-review — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.dion.run/2026/2025-in-review — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.dion.run/2026/good-code — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice URL redirects to another URL

Rule redirect.single · Crawlability · 3 occurrence(s)

notice Missing recommended security headers

Rule security.missing_headers · Security · 8 occurrence(s)

notice Indexable page not listed in sitemap

Rule sitemap.orphan_not_listed · Sitemap · 6 occurrence(s)

notice Title tag is identical to the H1 (missed keyword variation)

Rule title.same_as_h1 · Titles · 5 occurrence(s)

notice Title is very short

Rule title.too_short · Titles · 4 occurrence(s)

Pages (showing 9 of 9)
URLStatusIndexableWordsIn-links
https://www.dion.run/
dion.run
200 yes 29 8
https://www.dion.run/2023/2023-in-review
2023 회고 - 개발자가 되고싶습니다
200 yes 813 2
https://www.dion.run/2024/start-a-developer
개발자 커리어를 시작하다
200 yes 756 2
https://www.dion.run/2025/2024-in-review
2024 회고 - 시골쥐의 첫 해
200 yes 585 2
https://www.dion.run/2026/2025-in-review
2025 회고 - 역마살(驛馬殺)의 해
200 yes 758 2
https://www.dion.run/2026/good-code
좋은 코드란 무엇일까
200 yes 274 2
https://dion.run/
dion.run
200 yes 29 0
https://dion.run/about
dion.run | About
200 yes 45 0
https://dion.run/atom 200 no 0 0

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →