SEO audit for aaronkim.studio
Aaron Kim Studio | Graphic & UI/UX designer
Health 68/100 (fair) · 11 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)Aaron Kim Studio. NewYork Graphic Designer and Productive Designer
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Meta Description | 75 | 0 | 9 | 0 |
| Content | 89 | 0 | 4 | 11 |
| Headings | 89 | 0 | 4 | 3 |
| Agent Readiness | 97 | 0 | 1 | 0 |
| Duplicate | 100 | 0 | 0 | 2 |
| Images | 100 | 0 | 0 | 2 |
| Links | 100 | 0 | 0 | 2 |
| Performance | 100 | 0 | 0 | 28 |
| Security | 100 | 0 | 0 | 11 |
| Social | 100 | 0 | 0 | 11 |
| Structured Data | 100 | 0 | 0 | 10 |
| URL | 100 | 0 | 0 | 3 |
Warnings (4 rules)
warning Control has no accessible name
Rule agent.control_no_name · Agent Readiness · 1 occurrence(s)
- https://www.aaronkim.studio/ — 3 button/link(s) with no text or aria-label — an agent can't target them
warning Thin content (low word count)
Rule content.thin · Content · 4 occurrence(s)
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 — 105 words
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — 110 words
- https://www.aaronkim.studio/milk-man — 129 words
- https://www.aaronkim.studio/paradise — 111 words
warning Missing <h1>
Rule h1.missing · Headings · 4 occurrence(s)
warning Missing meta description
Rule meta_desc.missing · Meta Description · 9 occurrence(s)
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles
- https://www.aaronkim.studio/airbnb
- https://www.aaronkim.studio/archive
- https://www.aaronkim.studio/bahaus
- https://www.aaronkim.studio/milk-man
- https://www.aaronkim.studio/paradise
- https://www.aaronkim.studio/ten-principles
Notices (13 rules)
notice Low text-to-HTML ratio
Rule content.low_ratio · Content · 11 occurrence(s)
- https://www.aaronkim.studio/ — 0.9%
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 — 0.2%
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — 0.1%
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — 0.2%
- https://www.aaronkim.studio/airbnb — 0.4%
- https://www.aaronkim.studio/archive — 0.8%
- https://www.aaronkim.studio/bahaus — 0.4%
- https://www.aaronkim.studio/info — 0.5%
- https://www.aaronkim.studio/milk-man — 0.2%
- https://www.aaronkim.studio/paradise — 0.1%
- https://www.aaronkim.studio/ten-principles — 0.4%
notice Duplicate meta description across pages
Rule duplicate.meta_desc · Duplicate · 2 occurrence(s)
- https://www.aaronkim.studio/ — meta description shared by 2 pages: https://www.aaronkim.studio/info
- https://www.aaronkim.studio/info — meta description shared by 2 pages: https://www.aaronkim.studio/
notice Multiple <h1> elements
Rule h1.multiple · Headings · 3 occurrence(s)
- https://www.aaronkim.studio/ — 10 <h1> elements
- https://www.aaronkim.studio/airbnb — 3 <h1> elements
- https://www.aaronkim.studio/archive — 16 <h1> elements
notice Likely hero image lacks fetchpriority=high
Rule images.hero_no_fetchpriority · Performance · 6 occurrence(s)
- https://www.aaronkim.studio/ — the likely hero/LCP image (a3c153_f715c6851a21478e9f729ef439890d9d~mv2.png) 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.
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — the likely hero/LCP image (12a6a5_bf444cfceff04ad592b0f2708f2e7ac0~mv2.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.
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — the likely hero/LCP image (12a6a5_6fd9e95b237b482588bc95cddf8a32ed~mv2.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.
- https://www.aaronkim.studio/info — the likely hero/LCP image (11062b_54c6f2eca20d45249602b093c8225b8ef000.png) 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.
- https://www.aaronkim.studio/paradise — the likely hero/LCP image (11062b_cb7690ff99db4287a29d3738684a8cfff000.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.
- https://www.aaronkim.studio/ten-principles — the likely hero/LCP image (12a6a5_c22f6d532f6641a7838e1107deb06292~mv2.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 Images without width/height (layout shift / CLS)
Rule images.missing_dimensions · Images · 2 occurrence(s)
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — 5 of 5 images without width/height
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — 3 of 3 images without width/height
notice Internal link has no anchor text / accessible name
Rule links.no_anchor_text · Links · 1 occurrence(s)
- https://www.aaronkim.studio/ — 3 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
notice Page has only one internal inlink (fragile crawl path)
Rule links.single_inlink · Links · 1 occurrence(s)
- https://www.aaronkim.studio/paradise — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
notice Missing Open Graph tags
Rule og.missing · Social · 11 occurrence(s)
- https://www.aaronkim.studio/ — og:image
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 — og:description, og:image
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — og:description, og:image
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — og:description, og:image
- https://www.aaronkim.studio/airbnb — og:description, og:image
- https://www.aaronkim.studio/archive — og:description, og:image
- https://www.aaronkim.studio/bahaus — og:description, og:image
- https://www.aaronkim.studio/info — og:image
- https://www.aaronkim.studio/milk-man — og:description, og:image
- https://www.aaronkim.studio/paradise — og:description, og:image
- https://www.aaronkim.studio/ten-principles — og:description, og:image
notice Legacy image format (jpg/png/gif) with no next-gen fallback
Rule perf.images_legacy_format · Performance · 11 occurrence(s)
- https://www.aaronkim.studio/ — 15 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.
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 — 25 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.
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — 5 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.
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — 3 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.
- https://www.aaronkim.studio/airbnb — 35 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.
- https://www.aaronkim.studio/archive — 2 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.
- https://www.aaronkim.studio/bahaus — 23 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.
- https://www.aaronkim.studio/info — 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.
- https://www.aaronkim.studio/milk-man — 18 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.
- https://www.aaronkim.studio/paradise — 7 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.
- https://www.aaronkim.studio/ten-principles — 11 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 · 11 occurrence(s)
- https://www.aaronkim.studio/ — 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.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 — 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.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — 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.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — 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.aaronkim.studio/airbnb — 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.aaronkim.studio/archive — 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.aaronkim.studio/bahaus — 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.aaronkim.studio/info — 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.aaronkim.studio/milk-man — 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.aaronkim.studio/paradise — 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.aaronkim.studio/ten-principles — 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 No structured data detected
Rule schema.none · Structured Data · 10 occurrence(s)
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles
- https://www.aaronkim.studio/airbnb
- https://www.aaronkim.studio/archive
- https://www.aaronkim.studio/bahaus
- https://www.aaronkim.studio/info
- https://www.aaronkim.studio/milk-man
- https://www.aaronkim.studio/paradise
- https://www.aaronkim.studio/ten-principles
notice Missing recommended security headers
Rule security.missing_headers · Security · 11 occurrence(s)
- https://www.aaronkim.studio/ — CSP
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 — CSP
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob — CSP
- https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles — CSP
- https://www.aaronkim.studio/airbnb — CSP
- https://www.aaronkim.studio/archive — CSP
- https://www.aaronkim.studio/bahaus — CSP
- https://www.aaronkim.studio/info — CSP
- https://www.aaronkim.studio/milk-man — CSP
- https://www.aaronkim.studio/paradise — CSP
- https://www.aaronkim.studio/ten-principles — CSP
notice Non-ASCII characters in URL path
Rule url.non_ascii · URL · 3 occurrence(s)
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://www.aaronkim.studio/ Aaron Kim Studio | Graphic & UI/UX designer |
200 | yes | 587 | 11 |
| https://www.aaronkim.studio/info Aaron Kim Studio, | Graphic Designer |
200 | yes | 285 | 11 |
| https://www.aaronkim.studio/archive Archive | Aaron Studio |
200 | yes | 617 | 5 |
| https://www.aaronkim.studio/ten-principles Ten Principles | Aaron Studio |
200 | yes | 311 | 3 |
| https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-airbnb-1 newyorktimes | Aaron Studio |
200 | yes | 105 | 2 |
| https://www.aaronkim.studio/airbnb Airbnb | Aaron Studio |
200 | yes | 322 | 2 |
| https://www.aaronkim.studio/bahaus bahaus project | Aaron Studio |
200 | yes | 211 | 2 |
| https://www.aaronkim.studio/milk-man milk man | Aaron Studio |
200 | yes | 129 | 2 |
| https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-enob Moc Mallen | Aaron Studio |
200 | yes | 110 | 2 |
| https://www.aaronkim.studio/%EB%B3%B5%EC%A0%9C-ten-principles Enob | Aaron Studio |
200 | yes | 205 | 2 |
| https://www.aaronkim.studio/paradise paradise | Aaron Studio |
200 | yes | 111 | 1 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.