Catalog / benkyy.net
66

SEO audit for benkyy.net

Benkyy — Bespoke web & software

other

Health 66/100 (fair) · 50 pages crawled · generated 2026-08-26

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

Benkyy designs, builds and ships bespoke websites and software for real businesses. Selected work, the stack behind it, and a simple way to start a project.

50
pages crawled
48
indexable pages
0
errors
79
warnings
321
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Security 71 0 48 0
Hreflang 93 0 12 0
Performance 93 0 12 127
Structured Data 96 0 6 11
Content 99 0 1 2
Agent Readiness 100 0 0 44
Cache 100 0 0 48
Duplicate 100 0 0 3
Geo 100 0 0 1
Images 100 0 0 48
Meta Description 100 0 0 24
Sitemap 100 0 0 2
Social 100 0 0 8
Titles 100 0 0 2
URL 100 0 0 1
Findings

Warnings (6 rules)

warning Thin content (low word count)

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

warning Content-Type header doesn't match the actual content

Rule headers.content_type_mismatch · Security · 48 occurrence(s)

  • https://benkyy.net/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/?p=BLOCK&t=Web%20app — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/about/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/agb.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/check/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/datenschutz.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/de/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/de/?p=BLOCK&t=Web%20app — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/de/learn/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/de/services/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/de/work/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/de/work/block/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/impressum.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/launcher/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/learn/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/ro/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/ro/?p=BLOCK&t=Web%20app — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/ro/learn/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/ro/services/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/ro/work/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/ro/work/block/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/services/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/widerruf.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/work/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://benkyy.net/work/block/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".

warning hreflang set has no self-reference

Rule hreflang.missing_self · Hreflang · 3 occurrence(s)

warning hreflang has no return link (not reciprocal)

Rule hreflang.no_return · Hreflang · 9 occurrence(s)

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

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

  • https://benkyy.net/de/work/ — the likely hero/LCP image (pop.jpg) 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://benkyy.net/de/work/crop/ — the likely hero/LCP image (krone.jpg) 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://benkyy.net/de/work/krone/ — the likely hero/LCP image (tobu.jpg) 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://benkyy.net/de/work/rubys/ — the likely hero/LCP image (crop.jpg) 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://benkyy.net/ro/work/ — the likely hero/LCP image (pop.jpg) 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://benkyy.net/ro/work/crop/ — the likely hero/LCP image (krone.jpg) 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://benkyy.net/ro/work/krone/ — the likely hero/LCP image (tobu.jpg) 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://benkyy.net/ro/work/rubys/ — the likely hero/LCP image (crop.jpg) 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://benkyy.net/work/ — the likely hero/LCP image (pop.jpg) 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://benkyy.net/work/crop/ — the likely hero/LCP image (krone.jpg) 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://benkyy.net/work/krone/ — the likely hero/LCP image (tobu.jpg) 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://benkyy.net/work/rubys/ — the likely hero/LCP image (crop.jpg) 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 LocalBusiness schema missing required properties (name/address)

Rule schema.localbusiness_incomplete · Structured Data · 6 occurrence(s)

  • https://benkyy.net/ — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo), which enrich the result.
  • https://benkyy.net/?p=BLOCK&t=Web%20app — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo), which enrich the result.
  • https://benkyy.net/de/ — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo), which enrich the result.
  • https://benkyy.net/de/?p=BLOCK&t=Web%20app — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo), which enrich the result.
  • https://benkyy.net/ro/ — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo), which enrich the result.
  • https://benkyy.net/ro/?p=BLOCK&t=Web%20app — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo), which enrich the result.

Notices (22 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

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

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

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

notice Low text-to-HTML ratio

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

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

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

  • https://benkyy.net/work/ — this page reads as difficult (Flesch Reading Ease 34, 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 · 3 occurrence(s)

  • https://benkyy.net/ — meta description shared by 3 pages: https://benkyy.net/de/, https://benkyy.net/ro/
  • https://benkyy.net/de/ — meta description shared by 3 pages: https://benkyy.net/, https://benkyy.net/ro/
  • https://benkyy.net/ro/ — meta description shared by 3 pages: https://benkyy.net/, https://benkyy.net/de/

notice robots.txt blocks AI search/citation crawlers

Rule geo.ai_bots_blocked · Geo · 1 occurrence(s)

  • https://benkyy.net/ — robots.txt disallows AI search crawler(s): oai-searchbot (ChatGPT search), perplexitybot (Perplexity). These fetch pages to cite in AI answers, so blocking them removes you from that citation pool. Allowing them is required for AI citations (though not a guarantee of them); blocking training bots like GPTBot/ClaudeBot is a separate, valid choice.

notice Likely hero image lacks fetchpriority=high

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

  • https://benkyy.net/ — the likely hero/LCP image (portrait.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://benkyy.net/?p=BLOCK&t=Web%20app — the likely hero/LCP image (portrait.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://benkyy.net/agb.html — the likely hero/LCP image (logo.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://benkyy.net/check/ — the likely hero/LCP image (logo.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://benkyy.net/datenschutz.html — the likely hero/LCP image (logo.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://benkyy.net/de/ — the likely hero/LCP image (portrait.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://benkyy.net/de/?p=BLOCK&t=Web%20app — the likely hero/LCP image (portrait.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://benkyy.net/de/learn/ — the likely hero/LCP image (react.svg) 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://benkyy.net/de/work/block/ — the likely hero/LCP image (block.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://benkyy.net/de/work/mesh/ — the likely hero/LCP image (mesh.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://benkyy.net/de/work/objekt/ — the likely hero/LCP image (objekt.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://benkyy.net/impressum.html — the likely hero/LCP image (logo.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://benkyy.net/launcher/ — the likely hero/LCP image (launcher.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://benkyy.net/learn/ — the likely hero/LCP image (react.svg) 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://benkyy.net/ro/ — the likely hero/LCP image (portrait.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://benkyy.net/ro/?p=BLOCK&t=Web%20app — the likely hero/LCP image (portrait.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://benkyy.net/ro/learn/ — the likely hero/LCP image (react.svg) 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://benkyy.net/ro/work/block/ — the likely hero/LCP image (block.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://benkyy.net/ro/work/mesh/ — the likely hero/LCP image (mesh.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://benkyy.net/ro/work/objekt/ — the likely hero/LCP image (objekt.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://benkyy.net/widerruf.html — the likely hero/LCP image (logo.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://benkyy.net/work/block/ — the likely hero/LCP image (block.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://benkyy.net/work/launcher/ — the likely hero/LCP image (launcher.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://benkyy.net/work/mesh/ — the likely hero/LCP image (mesh.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://benkyy.net/work/objekt/ — the likely hero/LCP image (objekt.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 · 48 occurrence(s)

notice Meta description too short

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

notice Missing Open Graph tags

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

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

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

  • https://benkyy.net/ — 16 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://benkyy.net/?p=BLOCK&t=Web%20app — 16 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://benkyy.net/about/ — 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://benkyy.net/agb.html — 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://benkyy.net/check/ — 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://benkyy.net/datenschutz.html — 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://benkyy.net/de/ — 16 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://benkyy.net/de/?p=BLOCK&t=Web%20app — 16 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://benkyy.net/de/learn/ — 9 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://benkyy.net/de/services/ — 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://benkyy.net/de/work/ — 30 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://benkyy.net/de/work/block/ — 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://benkyy.net/impressum.html — 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://benkyy.net/launcher/ — 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://benkyy.net/learn/ — 9 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://benkyy.net/ro/ — 16 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://benkyy.net/ro/?p=BLOCK&t=Web%20app — 16 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://benkyy.net/ro/learn/ — 9 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://benkyy.net/ro/services/ — 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://benkyy.net/ro/work/ — 30 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://benkyy.net/ro/work/block/ — 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://benkyy.net/services/ — 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://benkyy.net/widerruf.html — 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://benkyy.net/work/ — 30 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://benkyy.net/work/block/ — 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.

notice Large HTML document

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

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

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

  • https://benkyy.net/ — 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://benkyy.net/?p=BLOCK&t=Web%20app — 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://benkyy.net/about/ — 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://benkyy.net/agb.html — 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://benkyy.net/check/ — 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://benkyy.net/datenschutz.html — 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://benkyy.net/de/ — 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://benkyy.net/de/?p=BLOCK&t=Web%20app — 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://benkyy.net/de/learn/ — 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://benkyy.net/de/services/ — 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://benkyy.net/de/work/ — 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://benkyy.net/de/work/block/ — 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://benkyy.net/impressum.html — 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://benkyy.net/launcher/ — 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://benkyy.net/learn/ — 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://benkyy.net/ro/ — 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://benkyy.net/ro/?p=BLOCK&t=Web%20app — 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://benkyy.net/ro/learn/ — 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://benkyy.net/ro/services/ — 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://benkyy.net/ro/work/ — 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://benkyy.net/ro/work/block/ — 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://benkyy.net/services/ — 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://benkyy.net/widerruf.html — 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://benkyy.net/work/ — 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://benkyy.net/work/block/ — 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 Deep page has no BreadcrumbList structured data

Rule schema.breadcrumb_missing · Structured Data · 3 occurrence(s)

notice FAQPage structured data (rich result removed May 2026)

Rule schema.faq_deprecated · Structured Data · 3 occurrence(s)

  • https://benkyy.net/de/services/ — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://benkyy.net/ro/services/ — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://benkyy.net/services/ — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.

notice Indexable page not listed in sitemap

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

notice Title is very short

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

notice Uppercase letters in URL path

Rule url.uppercase · URL · 1 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://benkyy.net/
Benkyy — Bespoke web & software
200 yes 840 48
https://benkyy.net/datenschutz.html
Datenschutzerklärung — Benkyy
200 yes 1337 47
https://benkyy.net/impressum.html
Impressum — Benkyy
200 yes 258 47
https://benkyy.net/launcher/
Benkyy Launcher — download for Windows
200 yes 208 21
https://benkyy.net/about/
About — Benkyy
200 yes 423 19
https://benkyy.net/learn/
Learn to code — Benkyy Learn
200 yes 636 19
https://benkyy.net/services/
Services — Websites, Web Apps & SEO · Benkyy
200 yes 724 19
https://benkyy.net/work/
Work — Benkyy
200 yes 506 19
https://benkyy.net/work/krone/
KRONE — Case study · Benkyy
200 yes 694 8
https://benkyy.net/work/crop/
CROP — Case study · Benkyy
200 yes 601 8
https://benkyy.net/check/
Free Website Health Check — Benkyy
200 yes 127 6
https://benkyy.net/work/launcher/
Benkyy Launcher — Case study · Benkyy
200 yes 442 3
https://benkyy.net/de/
Benkyy — Web & Software nach Maß
200 yes 781 12
https://benkyy.net/de/about/
Über mich — Benkyy
200 yes 421 12
https://benkyy.net/de/learn/
Programmieren lernen — Benkyy Learn
200 yes 588 12
https://benkyy.net/de/services/
Leistungen — Websites, Web-Apps & SEO · Benkyy
200 yes 663 12
https://benkyy.net/de/work/
Arbeiten — Benkyy
200 yes 449 12
https://benkyy.net/ro/
Benkyy — Web & software la comandă
200 yes 845 12
https://benkyy.net/ro/about/
Despre mine — Benkyy
200 yes 401 12
https://benkyy.net/ro/learn/
Învață să programezi — Benkyy Learn
200 yes 650 12
https://benkyy.net/ro/services/
Servicii — Site-uri, aplicații web & SEO · Benkyy
200 yes 712 12
https://benkyy.net/ro/work/
Proiecte — Benkyy
200 yes 533 12
https://benkyy.net/work/escape/
ESCAPE — Case study · Benkyy
200 yes 506 2
https://benkyy.net/work/rubys/
RUBY’S — Case study · Benkyy
200 yes 632 2
https://benkyy.net/work/mesh/
mesh — Case study · Benkyy
200 yes 475 2
https://benkyy.net/work/objekt/
OBJEKT — Case study · Benkyy
200 yes 515 2
https://benkyy.net/work/block/
BLOCK — Case study · Benkyy
200 yes 599 1
https://benkyy.net/agb.html
AGB — Benkyy
200 yes 1545 2
https://benkyy.net/widerruf.html
Widerrufsbelehrung — Benkyy
200 yes 509 2
https://benkyy.net/de/work/krone/
KRONE — Fallstudie · Benkyy
200 yes 613 2
https://benkyy.net/ro/work/krone/
KRONE — Studiu de caz · Benkyy
200 yes 642 2
https://benkyy.net/de/work/crop/
CROP — Fallstudie · Benkyy
200 yes 539 2
https://benkyy.net/ro/work/crop/
CROP — Studiu de caz · Benkyy
200 yes 601 2
https://benkyy.net/de/work/launcher/
Benkyy Launcher — Fallstudie · Benkyy
200 yes 400 2
https://benkyy.net/ro/work/launcher/
Benkyy Launcher — Studiu de caz · Benkyy
200 yes 427 2
https://benkyy.net/de/work/rubys/
RUBY’S — Fallstudie · Benkyy
200 yes 564 2
https://benkyy.net/ro/work/rubys/
RUBY’S — Studiu de caz · Benkyy
200 yes 607 2
https://benkyy.net/de/work/mesh/
mesh — Fallstudie · Benkyy
200 yes 446 2
https://benkyy.net/ro/work/mesh/
mesh — Studiu de caz · Benkyy
200 yes 485 2
https://benkyy.net/de/work/escape/
ESCAPE — Fallstudie · Benkyy
200 yes 474 2
https://benkyy.net/ro/work/escape/
ESCAPE — Studiu de caz · Benkyy
200 yes 520 2
https://benkyy.net/de/work/objekt/
OBJEKT — Fallstudie · Benkyy
200 yes 490 2
https://benkyy.net/ro/work/objekt/
OBJEKT — Studiu de caz · Benkyy
200 yes 516 2
https://benkyy.net/de/work/block/
BLOCK — Fallstudie · Benkyy
200 yes 540 1
https://benkyy.net/ro/work/block/
BLOCK — Studiu de caz · Benkyy
200 yes 592 1
https://benkyy.net/?p=BLOCK&t=Web%20app
Benkyy — Bespoke web & software
200 yes 840 1
https://benkyy.net/de/?p=BLOCK&t=Web%20app
Benkyy — Web & Software nach Maß
200 yes 781 1
https://benkyy.net/ro/?p=BLOCK&t=Web%20app
Benkyy — Web & software la comandă
200 yes 845 1
https://benkyy.net/assets/gallery/block-1.jpg?v=1783977459 200 no 0 3
https://benkyy.net/download/BenkyyLauncher-Setup.exe?v=3 200 no 0 1

Audit your own site — free

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

Scan your site →