Catalog / gabriella-klein.com
66

SEO audit for gabriella-klein.com

gabriella klein

other

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

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

Gabriella Klein online art website

Screenshot of gabriella-klein.com
34
pages crawled
33
indexable pages
0
errors
153
warnings
410
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Canonical 71 0 33 0
Headings 72 0 32 0
Images 73 0 31 0
Agent Readiness 77 0 26 2
Content 77 0 26 10
Duplicate 96 0 5 33
Links 100 0 0 26
Meta Description 100 0 0 33
Mobile 100 0 0 33
Performance 100 0 0 101
Security 100 0 0 66
Sitemap 100 0 0 6
Social 100 0 0 66
Structured Data 100 0 0 33
Titles 100 0 0 1
Findings

Warnings (7 rules)

warning Control has no accessible name

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

warning Thin content (low word count)

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

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

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

  • https://gabriella-klein.com/ — https://www.gabriella-klein.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 · 4 occurrence(s)

warning Images missing alt text

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

Notices (18 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)

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

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

  • https://gabriella-klein.com/ — this page reads as very difficult (Flesch Reading Ease -92, 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.
  • https://gabriella-klein.com/projects/2473200 — this page reads as difficult (Flesch Reading Ease 46, 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.
  • https://gabriella-klein.com/projects/2473236 — this page reads as difficult (Flesch Reading Ease 48, 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.
  • https://gabriella-klein.com/projects/2882242 — this page reads as difficult (Flesch Reading Ease 39, 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.
  • https://gabriella-klein.com/projects/4682342 — this page reads as very difficult (Flesch Reading Ease 16, 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.
  • https://gabriella-klein.com/projects/5916965 — 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.
  • https://gabriella-klein.com/projects/7242404 — this page reads as difficult (Flesch Reading Ease 46, 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.
  • https://gabriella-klein.com/projects/7257865 — this page reads as very difficult (Flesch Reading Ease 29, 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.
  • https://gabriella-klein.com/projects/7279705 — this page reads as difficult (Flesch Reading Ease 37, 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.
  • https://gabriella-klein.com/projects/7280758 — this page reads as difficult (Flesch Reading Ease 35, 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 · 33 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://gabriella-klein.com/blog — the likely hero/LCP image (9tdh7c4kuhreoz1fbzlxrd;700x1304.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://gabriella-klein.com/blog/6609618510043676685 — the likely hero/LCP image (9tdh7c4kuhreoz1fbzlxrd;700x1304.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://gabriella-klein.com/projects/2473200 — the likely hero/LCP image (es1ptfmtf46d2pzn8rcid6;850x584.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://gabriella-klein.com/projects/2473232 — the likely hero/LCP image (5aalunzu1jxcqxzdlrz1zz;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://gabriella-klein.com/projects/2473236 — the likely hero/LCP image (4aypvqpd6cifhqadavmzcf;652x652.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://gabriella-klein.com/projects/2473244 — the likely hero/LCP image (ldr7xijvzr9ddznnbpz2cg;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://gabriella-klein.com/projects/2882242 — the likely hero/LCP image (5c6iauf8nrmcik43yks2xu;538x600.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://gabriella-klein.com/projects/4321220 — the likely hero/LCP image (0rclqbgypdibqnrge6rf4b;960x719.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://gabriella-klein.com/projects/4682342 — the likely hero/LCP image (9a3kurntuhsg84f23rzpdv;960x639.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://gabriella-klein.com/projects/5916965 — the likely hero/LCP image (5poq7jtjlnoeo03mnl1wcf;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://gabriella-klein.com/projects/5970026 — the likely hero/LCP image (8sci9dczex1btge2p0esxz;716x850.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://gabriella-klein.com/projects/6775183 — the likely hero/LCP image (himb16airenbuoyhl4j2rr;960x696.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://gabriella-klein.com/projects/7111717 — the likely hero/LCP image (dhpclbwu2mjdnjec8mj471;427x289.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://gabriella-klein.com/projects/7163808 — the likely hero/LCP image (gopxhdevptefm5cbkoivoa;414x591.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://gabriella-klein.com/projects/7175052 — the likely hero/LCP image (kiygvfw4lmzcb0kcylcjsk;960x725.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://gabriella-klein.com/projects/7190114 — the likely hero/LCP image (admqqgvztarcm7wzz784l0;960x923.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://gabriella-klein.com/projects/7238987 — the likely hero/LCP image (ejtgptlfcxudrbbcesc3fl;960x624.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://gabriella-klein.com/projects/7242404 — the likely hero/LCP image (5trzbe6onveeqncnifyjlb;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://gabriella-klein.com/projects/7257865 — the likely hero/LCP image (jp0fspcqknzegfym82l67x;960x639.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://gabriella-klein.com/projects/7265982 — the likely hero/LCP image (6ijhndnr8vycgp4cxkqoyl;960x639.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://gabriella-klein.com/projects/7274924 — the likely hero/LCP image (2yfxtizqmy6eqmtviwkatv;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://gabriella-klein.com/projects/7275460 — the likely hero/LCP image (c3r4l8vjpaifz9nzbiz6kl;960x710.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://gabriella-klein.com/projects/7279704 — the likely hero/LCP image (kc0a9ezugprdbnjvd1q7qm;960x1439.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://gabriella-klein.com/projects/7279705 — the likely hero/LCP image (ivk5e0iuf1rfoebkgvlicc;960x913.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://gabriella-klein.com/projects/7280758 — the likely hero/LCP image (6b23reldsyvdhcxtj7thga;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.

notice Internal link has no anchor text / accessible name

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

  • https://gabriella-klein.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://gabriella-klein.com/blog/hockneyeffect — 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://gabriella-klein.com/blog/p8gallery — 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://gabriella-klein.com/projects/2473200 — 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://gabriella-klein.com/projects/2473232 — 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://gabriella-klein.com/projects/2473236 — 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://gabriella-klein.com/projects/2473244 — 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://gabriella-klein.com/projects/2473267 — 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://gabriella-klein.com/projects/2882242 — 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://gabriella-klein.com/projects/4321220 — 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://gabriella-klein.com/projects/4682342 — 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://gabriella-klein.com/projects/5916965 — 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://gabriella-klein.com/projects/5970026 — 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://gabriella-klein.com/projects/6775183 — 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://gabriella-klein.com/projects/7163808 — 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://gabriella-klein.com/projects/7175052 — 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://gabriella-klein.com/projects/7190114 — 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://gabriella-klein.com/projects/7238987 — 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://gabriella-klein.com/projects/7242404 — 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://gabriella-klein.com/projects/7257865 — 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://gabriella-klein.com/projects/7274924 — 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://gabriella-klein.com/projects/7275460 — 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://gabriella-klein.com/projects/7279704 — 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://gabriella-klein.com/projects/7279705 — 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://gabriella-klein.com/projects/7280758 — 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 · 33 occurrence(s)

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

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

  • https://gabriella-klein.com/blog — 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://gabriella-klein.com/blog/6609618510043676685 — 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://gabriella-klein.com/projects/2473200 — 10 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://gabriella-klein.com/projects/2473232 — 14 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://gabriella-klein.com/projects/2473236 — 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://gabriella-klein.com/projects/2473244 — 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://gabriella-klein.com/projects/2882242 — 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://gabriella-klein.com/projects/4321220 — 13 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://gabriella-klein.com/projects/4682342 — 11 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gabriella-klein.com/projects/5916965 — 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://gabriella-klein.com/projects/5970026 — 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://gabriella-klein.com/projects/6775183 — 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://gabriella-klein.com/projects/7111717 — 46 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://gabriella-klein.com/projects/7163808 — 21 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://gabriella-klein.com/projects/7175052 — 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://gabriella-klein.com/projects/7190114 — 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://gabriella-klein.com/projects/7238987 — 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://gabriella-klein.com/projects/7242404 — 14 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://gabriella-klein.com/projects/7257865 — 11 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gabriella-klein.com/projects/7265982 — 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://gabriella-klein.com/projects/7274924 — 20 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://gabriella-klein.com/projects/7275460 — 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://gabriella-klein.com/projects/7279704 — 7 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gabriella-klein.com/projects/7279705 — 11 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gabriella-klein.com/projects/7280758 — 10 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 · 6 occurrence(s)

  • https://gabriella-klein.com/blog/6580001291743789069 — 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://gabriella-klein.com/blog/6605108712778498061 — 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://gabriella-klein.com/blog/6609618510043676685 — 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://gabriella-klein.com/blog/gabriellaklein — 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://gabriella-klein.com/blog/hockneyeffect — 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://gabriella-klein.com/blog/p8gallery — 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 · 33 occurrence(s)

  • https://gabriella-klein.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://gabriella-klein.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://gabriella-klein.com/blog — 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://gabriella-klein.com/blog/6609618510043676685 — 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://gabriella-klein.com/projects/2473200 — 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://gabriella-klein.com/projects/2473232 — 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://gabriella-klein.com/projects/2882242 — 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://gabriella-klein.com/projects/4321220 — 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://gabriella-klein.com/projects/4682342 — 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://gabriella-klein.com/projects/5916965 — 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://gabriella-klein.com/projects/5970026 — 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://gabriella-klein.com/projects/6775183 — 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://gabriella-klein.com/projects/7111717 — 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://gabriella-klein.com/projects/7163808 — 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://gabriella-klein.com/projects/7175052 — 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://gabriella-klein.com/projects/7190114 — 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://gabriella-klein.com/projects/7238987 — 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://gabriella-klein.com/projects/7242404 — 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://gabriella-klein.com/projects/7257865 — 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://gabriella-klein.com/projects/7265982 — 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://gabriella-klein.com/projects/7274924 — 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://gabriella-klein.com/projects/7275460 — 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://gabriella-klein.com/projects/7279704 — 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://gabriella-klein.com/projects/7279705 — 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://gabriella-klein.com/projects/7280758 — 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 · 33 occurrence(s)

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

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

notice Indexable page not listed in sitemap

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

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

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

Pages (showing 34 of 34)
URLStatusIndexableWordsIn-links
https://gabriella-klein.com/
gabriella klein
200 yes 172 33
https://gabriella-klein.com/about
About - gabriella klein
200 yes 19 33
https://gabriella-klein.com/blog
Log - gabriella klein
200 yes 47 33
https://gabriella-klein.com/blog/6605108712778498061
Log - gabriella klein
200 yes 24 6
https://gabriella-klein.com/blog/gabriellaklein
Log #gabriellaklein - gabriella klein
200 yes 24 5
https://gabriella-klein.com/blog/hockneyeffect
Log #hockneyeffect - gabriella klein
200 yes 24 5
https://gabriella-klein.com/blog/p8gallery
Log #p8gallery - gabriella klein
200 yes 24 5
https://gabriella-klein.com/blog/6580001291743789069
Log - gabriella klein
200 yes 29 4
https://gabriella-klein.com/blog/6609618510043676685
Log - gabriella klein
200 yes 20 3
https://gabriella-klein.com/projects/2473244
Homescapes 2006 - gabriella klein
200 yes 87 3
https://gabriella-klein.com/projects/7280758
Hold, The Cabin LA 2025 - gabriella klein
200 yes 168 3
https://gabriella-klein.com/projects/2473236
On the Road 2007 - gabriella klein
200 yes 152 3
https://gabriella-klein.com/projects/7279705
Night Train, Petach Tikva Museum of Art 2025 - gabriella klein
200 yes 135 3
https://gabriella-klein.com/projects/2473200
The Near Side of the Moon 2009 - gabriella klein
200 yes 385 3
https://gabriella-klein.com/projects/7279704
Unveiling, Negev Museum of Art, Beer Sheva 2025 - gabriella klein
200 yes 98 3
https://gabriella-klein.com/projects/2882242
Response Time 2012 - gabriella klein
200 yes 145 3
https://gabriella-klein.com/projects/7274924
Both Sides, Beeri Gallery, Tel Aviv 2024 - gabriella klein
200 yes 137 3
https://gabriella-klein.com/projects/2473232
site specific wall paintings and works on paper - gabriella klein
200 yes 282 3
https://gabriella-klein.com/projects/7275460
A Place To Rest, Rehovot Gallery, 20024 - gabriella klein
200 yes 64 3
https://gabriella-klein.com/projects/4321220
Smooth Operator 2012 - gabriella klein
200 yes 493 3
https://gabriella-klein.com/projects/7257865
NOON, Yaar Gallery, 2023 - gabriella klein
200 yes 111 3
https://gabriella-klein.com/projects/5916965
Ashdod Museum of Art 2015 - gabriella klein
200 yes 267 3
https://gabriella-klein.com/projects/7242404
Back to Back, Maya Gallery, 2021 - gabriella klein
200 yes 597 3
https://gabriella-klein.com/projects/4682342
collage - gabriella klein
200 yes 314 3
https://gabriella-klein.com/projects/7265982
BIG DREAMER 2019 - gabriella klein
200 yes 61 3
https://gabriella-klein.com/projects/7163808
I Am a Rock, Maya Gallery, 2018 - gabriella klein
200 yes 106 3
https://gabriella-klein.com/projects/7238987
Facebook AIR 2020 - gabriella klein
200 yes 39 3
https://gabriella-klein.com/projects/5970026
Massachusetts 2016 - gabriella klein
200 yes 98 3
https://gabriella-klein.com/projects/7175052
Beit Tami mural 2019 - gabriella klein
200 yes 51 3
https://gabriella-klein.com/projects/6775183
Hockney Effect 2018 - gabriella klein
200 yes 58 3
https://gabriella-klein.com/projects/7190114
One Day You Won't Be Here, Beita Gallery, 2019 - gabriella klein
200 yes 79 3
https://gabriella-klein.com/projects/2473267
paintings 2000-2007 - gabriella klein
200 yes 133 2
https://gabriella-klein.com/projects/7111717
NEWS - gabriella klein
200 yes 251 2
https://gabriella-klein.com/contact 200 no 0 33

Audit your own site — free

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

Scan your site →