Catalog / ulflunden.com
66

SEO audit for ulflunden.com

Ulf Lundén

blog

Health 66/100 (fair) · 47 pages crawled · generated 2026-07-29

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

Ulf Lundén works as a freelance based in Gothenburg, Sweden. He specialises in album / band artwork and film post production.

Screenshot of ulflunden.com
47
pages crawled
46
indexable pages
0
errors
210
warnings
431
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Canonical 71 0 46 0
Agent Readiness 71 0 45 2
Content 71 0 45 1
Headings 71 0 45 0
Images 82 0 28 0
Duplicate 99 0 1 46
Links 100 0 0 45
Mobile 100 0 0 46
Performance 100 0 0 102
Security 100 0 0 49
Social 100 0 0 92
Structured Data 100 0 0 46
Titles 100 0 0 2
Findings

Warnings (6 rules)

warning Control has no accessible name

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

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

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

  • https://ulflunden.com/ — https://www.ulflunden.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 Images missing alt text

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

Notices (16 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

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

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 1 occurrence(s)

  • https://ulflunden.com/ — this page reads as very difficult (Flesch Reading Ease -132, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • https://ulflunden.com/projects/6458883 — the likely hero/LCP image (7mrkppldg1mfgabm1hhbei;960x960.jpeg) 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://ulflunden.com/projects/6459955 — the likely hero/LCP image (i24qkpm2frfeavgtnldcv6;960x693.jpeg) 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://ulflunden.com/projects/6461356 — the likely hero/LCP image (lhqmxiiwvlbckgeqle3hmg;960x960.jpeg) 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://ulflunden.com/projects/6461404 — the likely hero/LCP image (ai693t7csfvf6g8mo6hwia;960x959.jpeg) 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://ulflunden.com/projects/6923117 — the likely hero/LCP image (fwiajmopwg3clfalzfvj0m;960x540.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://ulflunden.com/projects/6923137 — the likely hero/LCP image (5gtrejguep9fh6jfzvxcik;960x960.jpeg) 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://ulflunden.com/projects/6954411 — the likely hero/LCP image (9gmx4uysgcwg5p2pohweul;960x1200.jpeg) 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://ulflunden.com/projects/7059647 — the likely hero/LCP image (jauajxzmkoycyaoyvhtjy4;960x960.jpeg) 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://ulflunden.com/projects/7176855 — the likely hero/LCP image (eu0yr0uc3wpeekkoebqc6t;960x1103.jpeg) 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://ulflunden.com/projects/7176859 — the likely hero/LCP image (9wcquobhd3rds62vqktdup;960x540.jpeg) 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://ulflunden.com/projects/7183853 — the likely hero/LCP image (3s44bjsrvn6e8nvhbgzvad;960x1343.jpeg) 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://ulflunden.com/projects/7195674 — the likely hero/LCP image (hmzjomzrjeydshqddkdrcp;800x796.jpeg) 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://ulflunden.com/projects/7200112 — the likely hero/LCP image (602i7dm3ptcfxxelpdl5xl;960x540.jpeg) 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://ulflunden.com/projects/7215806 — the likely hero/LCP image (l9eepb6zaendfuwzmwqnmv;960x782.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://ulflunden.com/projects/7223550 — the likely hero/LCP image (gitkaxpbiumfgu2sc9i35t;960x540.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://ulflunden.com/projects/7270372 — the likely hero/LCP image (8t1byaiqnnpdgblaxcztof;960x640.jpeg) 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://ulflunden.com/projects/7270378 — the likely hero/LCP image (0cnq40cfvavdjijvocsmf4;960x1186.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://ulflunden.com/projects/7270380 — the likely hero/LCP image (7db39iqekzee2hmqfbjx71;960x402.jpeg) 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://ulflunden.com/projects/7270381 — the likely hero/LCP image (3s1wmyib3n3co2kub4ljbq;960x401.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://ulflunden.com/projects/7270387 — the likely hero/LCP image (13izc7wtug4fkg36xuv6ct;960x960.jpeg) 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://ulflunden.com/projects/7270388 — the likely hero/LCP image (8rvhswsrduucqaybqth8ll;960x544.jpeg) 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://ulflunden.com/projects/7270406 — the likely hero/LCP image (1g79ttnlogpdjcioduzio1;original.gif) 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://ulflunden.com/projects/7273745 — the likely hero/LCP image (7xgijnldodncfljxqi1shg;960x1280.jpeg) 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://ulflunden.com/projects/7275550 — the likely hero/LCP image (9bxzgibuws0bajy52jnn39;960x1143.jpeg) 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://ulflunden.com/projects/7278490 — the likely hero/LCP image (hasg8izrhvygfvtx9ulon3;960x540.jpeg) 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 Internal link has no anchor text / accessible name

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

  • https://ulflunden.com/about — 1 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.
  • https://ulflunden.com/projects/7195674 — 1 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.
  • https://ulflunden.com/projects/7223550 — 1 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.
  • https://ulflunden.com/projects/7270372 — 1 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.
  • https://ulflunden.com/projects/7270373 — 1 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.
  • https://ulflunden.com/projects/7270377 — 1 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.
  • https://ulflunden.com/projects/7270378 — 1 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.
  • https://ulflunden.com/projects/7270379 — 1 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.
  • https://ulflunden.com/projects/7270380 — 1 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.
  • https://ulflunden.com/projects/7270381 — 1 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.
  • https://ulflunden.com/projects/7270382 — 1 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.
  • https://ulflunden.com/projects/7270384 — 1 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.
  • https://ulflunden.com/projects/7270387 — 1 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.
  • https://ulflunden.com/projects/7270388 — 1 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.
  • https://ulflunden.com/projects/7270389 — 1 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.
  • https://ulflunden.com/projects/7270390 — 1 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.
  • https://ulflunden.com/projects/7270405 — 1 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.
  • https://ulflunden.com/projects/7270406 — 1 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.
  • https://ulflunden.com/projects/7270407 — 1 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.
  • https://ulflunden.com/projects/7273745 — 1 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.
  • https://ulflunden.com/projects/7275030 — 1 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.
  • https://ulflunden.com/projects/7275545 — 1 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.
  • https://ulflunden.com/projects/7275550 — 1 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.
  • https://ulflunden.com/projects/7278490 — 1 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.
  • https://ulflunden.com/projects/7281728 — 1 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 Missing Open Graph tags

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

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

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

  • https://ulflunden.com/projects/6458883 — 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://ulflunden.com/projects/6459955 — 6 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://ulflunden.com/projects/6461356 — 6 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://ulflunden.com/projects/6461404 — 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://ulflunden.com/projects/6923117 — 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://ulflunden.com/projects/6923137 — 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://ulflunden.com/projects/6954411 — 4 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://ulflunden.com/projects/7059647 — 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://ulflunden.com/projects/7176855 — 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://ulflunden.com/projects/7176859 — 12 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://ulflunden.com/projects/7183853 — 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://ulflunden.com/projects/7195674 — 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://ulflunden.com/projects/7200112 — 8 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://ulflunden.com/projects/7215806 — 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://ulflunden.com/projects/7223550 — 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://ulflunden.com/projects/7270372 — 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://ulflunden.com/projects/7270378 — 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://ulflunden.com/projects/7270380 — 8 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://ulflunden.com/projects/7270381 — 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://ulflunden.com/projects/7270387 — 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://ulflunden.com/projects/7270388 — 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://ulflunden.com/projects/7270406 — 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://ulflunden.com/projects/7273745 — 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://ulflunden.com/projects/7275550 — 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://ulflunden.com/projects/7278490 — 6 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 · 46 occurrence(s)

  • https://ulflunden.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://ulflunden.com/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://ulflunden.com/projects/7195674 — 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://ulflunden.com/projects/7223550 — 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://ulflunden.com/projects/7270372 — 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://ulflunden.com/projects/7270373 — 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://ulflunden.com/projects/7270378 — 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://ulflunden.com/projects/7270379 — 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://ulflunden.com/projects/7270380 — 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://ulflunden.com/projects/7270381 — 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://ulflunden.com/projects/7270382 — 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://ulflunden.com/projects/7270384 — 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://ulflunden.com/projects/7270387 — 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://ulflunden.com/projects/7270388 — 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://ulflunden.com/projects/7270389 — 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://ulflunden.com/projects/7270390 — 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://ulflunden.com/projects/7270405 — 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://ulflunden.com/projects/7270406 — 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://ulflunden.com/projects/7270407 — 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://ulflunden.com/projects/7273745 — 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://ulflunden.com/projects/7275030 — 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://ulflunden.com/projects/7275545 — 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://ulflunden.com/projects/7275550 — 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://ulflunden.com/projects/7278490 — 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://ulflunden.com/projects/7281728 — 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 Missing recommended security headers

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

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 3 occurrence(s)

  • https://ulflunden.com/about — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://ulflunden.com/projects/6954411 — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://ulflunden.com/projects/7176855 — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".

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

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

  • https://ulflunden.com/ — the <title> and the H1 are identical — differentiate them to cover more query variation

notice Title is very short

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

Pages (showing 47 of 47)
URLStatusIndexableWordsIn-links
https://ulflunden.com/
Ulf Lundén
200 yes 208 46
https://ulflunden.com/about
About - Ulf Lundén
200 yes 18 46
https://ulflunden.com/projects/6461398
Bombus - Let her die - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/7270405
Minecraft - Ulf Lundén
200 yes 30 3
https://ulflunden.com/projects/6923491
Bombus - Enter the night - Ulf Lundén
200 yes 30 3
https://ulflunden.com/projects/7275545
Matsmart - Ulf Lundén
200 yes 26 3
https://ulflunden.com/projects/6923496
Europe - Bag of bones - Ulf Lundén
200 yes 28 3
https://ulflunden.com/projects/7275030
Coop - Ulf Lundén
200 yes 35 3
https://ulflunden.com/projects/6458883
Graveyard - Hisingen Blues - Ulf Lundén
200 yes 29 3
https://ulflunden.com/projects/7270389
Mentos - Ulf Lundén
200 yes 31 3
https://ulflunden.com/projects/6461404
Bombus - Repeat until death - Ulf Lundén
200 yes 28 3
https://ulflunden.com/projects/7270388
Samsung - Ulf Lundén
200 yes 36 3
https://ulflunden.com/projects/6923117
Join the Republic - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/7270384
Peas of heaven - Ulf Lundén
200 yes 38 3
https://ulflunden.com/projects/6461356
Graveyard - Innocence & Decadence - Ulf Lundén
200 yes 26 3
https://ulflunden.com/projects/7270387
Wagamama - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/6459955
Expedition Bohuslän - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/7270406
Bush´s Baked Beans - Ulf Lundén
200 yes 33 3
https://ulflunden.com/projects/6954411
Danko Jones - Ulf Lundén
200 yes 24 3
https://ulflunden.com/projects/7275550
WINT - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/7176859
Bombus - Mama - Ulf Lundén
200 yes 22 3
https://ulflunden.com/projects/7270382
Burger King - Ulf Lundén
200 yes 34 3
https://ulflunden.com/projects/7172565
Threadsparency - Ulf Lundén
200 yes 26 3
https://ulflunden.com/projects/7270407
Läkerol - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/7059647
Danko Jones - A Rock Supreme - Ulf Lundén
200 yes 26 3
https://ulflunden.com/projects/7270381
KFC - Ulf Lundén
200 yes 28 3
https://ulflunden.com/projects/6923137
Graveyard - Peace - Ulf Lundén
200 yes 27 3
https://ulflunden.com/projects/7270390
Lotto - Ulf Lundén
200 yes 29 3
https://ulflunden.com/projects/7183853
Tainted Lady - Ulf Lundén
200 yes 24 3
https://ulflunden.com/projects/7278490
Salvatore Ganacci - Ulf Lundén
200 yes 29 3
https://ulflunden.com/projects/7200112
Tjockare än vatten - Ulf Lundén
200 yes 39 3
https://ulflunden.com/projects/7270380
The Diamond - Ulf Lundén
200 yes 34 3
https://ulflunden.com/projects/7176855
Stina Velocette - Nio liv - Ulf Lundén
200 yes 29 3
https://ulflunden.com/projects/7273745
Bombus - Killer - Ulf Lundén
200 yes 20 3
https://ulflunden.com/projects/7215806
Cabaret - Göteborgsoperan - Ulf Lundén
200 yes 32 3
https://ulflunden.com/projects/7270379
Liquid Death - Ulf Lundén
200 yes 38 3
https://ulflunden.com/projects/7223550
Vårvik - Ulf Lundén
200 yes 22 3
https://ulflunden.com/projects/7270376
VISA - Ulf Lundén
200 yes 29 3
https://ulflunden.com/projects/7270375
Tele2 - Ulf Lundén
200 yes 31 3
https://ulflunden.com/projects/7270378
LegalShield - Ulf Lundén
200 yes 28 3
https://ulflunden.com/projects/7270373
Betsson - Ulf Lundén
200 yes 27 3
https://ulflunden.com/projects/7270377
Happy Socks - Ulf Lundén
200 yes 35 3
https://ulflunden.com/projects/7195674
Salvatore Ganacci - Boycycle - Ulf Lundén
200 yes 23 3
https://ulflunden.com/projects/7270372
Afterpay - Ulf Lundén
200 yes 38 3
https://ulflunden.com/projects/6458878
Bombus - The Poet and the Parrot - Ulf Lundén
200 yes 27 2
https://ulflunden.com/projects/7281728
Clash Royale - Ulf Lundén
200 yes 27 2
https://ulflunden.com/contact 200 no 0 46

Audit your own site — free

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

Scan your site →