Catalog / justinprymowicz.com
58

SEO audit for justinprymowicz.com

Justin Prymowicz

otherWordPress

Health 58/100 (fair) · 19 pages crawled · generated 2026-08-26

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

Justin Prymowicz. I do everything sound.

Screenshot of justinprymowicz.com
19
pages crawled
17
indexable pages
4
errors
72
warnings
242
notices
0
orphan pages
2
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 64 2 16 17
Crawlability 89 2 0 16
Content 73 0 17 16
Headings 73 0 17 0
Performance 73 0 17 36
Duplicate 95 0 3 17
Agent Readiness 98 0 1 2
Images 98 0 1 17
Cache 100 0 0 17
Meta Description 100 0 0 17
Security 100 0 0 19
Social 100 0 0 34
Structured Data 100 0 0 17
URL 100 0 0 17
Findings

Errors (2 rules)

error Broken internal link (target 4xx/5xx)

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

error Client error (4xx) response

Rule status.4xx · Crawlability · 2 occurrence(s)

Warnings (8 rules)

warning Control has no accessible name

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

warning Homepage duplicated across protocol/host variants (no redirect)

Rule duplicate.protocol_host · Duplicate · 1 occurrence(s)

  • https://www.justinprymowicz.com/ — http://www.justinprymowicz.com/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.

warning Duplicate <title> across pages

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

warning Images missing alt text

Rule images.missing_alt · Images · 1 occurrence(s)

warning Internal link points to a redirect

Rule links.redirect_target · Links · 16 occurrence(s)

warning Render-blocking script in <head> (no defer/async)

Rule perf.render_blocking · Performance · 17 occurrence(s)

Notices (20 rules)

notice No llms.txt for AI agents

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

notice No main landmark for AI agents

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

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

Rule cache.not_cacheable · Cache · 17 occurrence(s)

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • https://www.justinprymowicz.com/ — the likely hero/LCP image (justinprymowicz.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.

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

Rule images.missing_dimensions · Images · 17 occurrence(s)

notice Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 1 occurrence(s)

  • https://www.justinprymowicz.com/ — 18 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 · 16 occurrence(s)

  • https://www.justinprymowicz.com/Amreeka — 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.
  • https://www.justinprymowicz.com/Assassins_code — 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.
  • https://www.justinprymowicz.com/Grey_Sheep — 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.
  • https://www.justinprymowicz.com/Guildwars2 — 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.
  • https://www.justinprymowicz.com/League — 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.
  • https://www.justinprymowicz.com/Mosque — 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.
  • https://www.justinprymowicz.com/Night_Gamers — 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.
  • https://www.justinprymowicz.com/Recoil — 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.
  • https://www.justinprymowicz.com/Swooshes — 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.
  • https://www.justinprymowicz.com/This_Is_Normal — 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.
  • https://www.justinprymowicz.com/black_box — 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.
  • https://www.justinprymowicz.com/carnada — 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.
  • https://www.justinprymowicz.com/home — 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.
  • https://www.justinprymowicz.com/recoil — 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.
  • https://www.justinprymowicz.com/sunlight — 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.
  • https://www.justinprymowicz.com/zineb — 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 · 17 occurrence(s)

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

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

  • https://www.justinprymowicz.com/ — 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.

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 17 occurrence(s)

  • https://www.justinprymowicz.com/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Amreeka — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Assassins_code — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Grey_Sheep — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Guildwars2 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/League — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Mosque — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Night_Gamers — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Recoil — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/Swooshes — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/This_Is_Normal — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/black_box — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/carnada — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/home — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/recoil — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/sunlight — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.justinprymowicz.com/zineb — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.

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

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

  • https://www.justinprymowicz.com/ — 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.justinprymowicz.com/Amreeka — 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.justinprymowicz.com/Assassins_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.
  • https://www.justinprymowicz.com/Grey_Sheep — 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.justinprymowicz.com/Guildwars2 — 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.justinprymowicz.com/League — 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.justinprymowicz.com/Mosque — 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.justinprymowicz.com/Night_Gamers — 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.justinprymowicz.com/Recoil — 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.justinprymowicz.com/Swooshes — 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.justinprymowicz.com/This_Is_Normal — 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.justinprymowicz.com/black_box — 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.justinprymowicz.com/carnada — 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.justinprymowicz.com/home — 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.justinprymowicz.com/recoil — 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.justinprymowicz.com/sunlight — 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.justinprymowicz.com/zineb — 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 · 16 occurrence(s)

notice Missing recommended security headers

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

Pages (showing 19 of 19)
URLStatusIndexableWordsIn-links
https://www.justinprymowicz.com/Amreeka
Justin Prymowicz | Amreeka
200 yes 9 1
https://www.justinprymowicz.com/Assassins_code
Justin Prymowicz | Assassins_code
200 yes 10 1
https://www.justinprymowicz.com/Grey_Sheep
Justin Prymowicz | Grey_Sheep
200 yes 10 1
https://www.justinprymowicz.com/Guildwars2
Justin Prymowicz | Guildwars2
200 yes 27 1
https://www.justinprymowicz.com/League
Justin Prymowicz | League
200 yes 48 1
https://www.justinprymowicz.com/Mosque
Justin Prymowicz | Mosque
200 yes 12 1
https://www.justinprymowicz.com/Night_Gamers
Justin Prymowicz | Night_Gamers
200 yes 14 1
https://www.justinprymowicz.com/Recoil
Justin Prymowicz | recoil
200 yes 9 1
https://www.justinprymowicz.com/Swooshes
Justin Prymowicz | Swooshes
200 yes 16 1
https://www.justinprymowicz.com/This_Is_Normal
Justin Prymowicz | This_Is_Normal
200 yes 11 1
https://www.justinprymowicz.com/black_box
Justin Prymowicz | black_box
200 yes 10 1
https://www.justinprymowicz.com/carnada
Justin Prymowicz | carnada
200 yes 10 1
https://www.justinprymowicz.com/home
Justin Prymowicz | home
200 yes 9 1
https://www.justinprymowicz.com/recoil
Justin Prymowicz | recoil
200 yes 9 1
https://www.justinprymowicz.com/sunlight
Justin Prymowicz | sunlight
200 yes 11 1
https://www.justinprymowicz.com/zineb
Justin Prymowicz | zineb
200 yes 10 1
https://www.justinprymowicz.com/
Justin Prymowicz
200 yes 146 0
https://www.justinprymowicz.com/The%20Man
Justin Prymowicz | Page not found
404 no 10 1
https://www.justinprymowicz.com/Wrath%20of%20the%20Lich%20King
Justin Prymowicz | Page not found
404 no 10 1

Audit your own site — free

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

Scan your site →