Catalog / monicaheinz.ch
83

SEO audit for monicaheinz.ch

Monica Heinz - Startseite

other

Health 83/100 (good) · 25 pages crawled · generated 2026-08-26

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

Platz für Ihren Slogan

Screenshot of monicaheinz.ch
25
pages crawled
9
indexable pages
0
errors
33
warnings
170
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Performance 84 0 13 31
Agent Readiness 90 0 8 17
Images 90 0 8 9
Headings 98 0 2 0
Duplicate 99 0 1 8
Robots 99 0 1 0
Cache 100 0 0 9
Canonical 100 0 0 1
Content 100 0 0 10
Links 100 0 0 8
Meta Description 100 0 0 9
Security 100 0 0 9
Social 100 0 0 18
Structured Data 100 0 0 9
URL 100 0 0 32
Findings

Warnings (7 rules)

warning Control has no accessible name

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

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

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

  • https://monicaheinz.ch/ — https://www.monicaheinz.ch/ 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 Missing <h1>

Rule h1.missing · Headings · 2 occurrence(s)

warning Images missing alt text

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

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

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

  • https://monicaheinz.ch/Kurzgeschichten/ — the likely hero/LCP image (picture-200) 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://monicaheinz.ch/Romane/ — the likely hero/LCP image (picture-200) 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://monicaheinz.ch/Wettbewerbe/ — the likely hero/LCP image (picture-200) 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://monicaheinz.ch/weitere-Publikationen/ — the likely hero/LCP image (picture-200) 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 Render-blocking script in <head> (no defer/async)

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

warning robots.txt blocks CSS/JS the pages need to render

Rule robots.blocks_css_js · Robots · 1 occurrence(s)

  • https://monicaheinz.ch/ — robots.txt Disallow blocks render-critical CSS/JS under: /.cm4all/handler.php/, /.cm4all/widgetres.php/cm4all.com.widgets.CookiePolicy/ — Google's renderer can't fetch these, so the affected pages may render blank or thin. Allow the asset path(s) for Googlebot.

Notices (23 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

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

notice No main landmark for AI agents

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

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

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

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 1 occurrence(s)

notice Low text-to-HTML ratio

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

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • https://monicaheinz.ch/ — the likely hero/LCP image (picture-200) 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://monicaheinz.ch/Lesungen/ — the likely hero/LCP image (picture-200) 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://monicaheinz.ch/Links-ImpressumDatenschutzerklaerung/ — the likely hero/LCP image (mime_pdf.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://monicaheinz.ch/Startseite/ — the likely hero/LCP image (picture-200) 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://monicaheinz.ch/ueber-mich/ — the likely hero/LCP image (mime_pdf.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

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

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

notice Internal link has no anchor text / accessible name

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

  • https://monicaheinz.ch/ — 2 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://monicaheinz.ch/Lesungen/ — 2 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://monicaheinz.ch/Links-ImpressumDatenschutzerklaerung/ — 2 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://monicaheinz.ch/Romane/ — 4 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://monicaheinz.ch/Startseite/ — 2 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://monicaheinz.ch/Wettbewerbe/ — 18 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://monicaheinz.ch/ueber-mich/ — 2 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://monicaheinz.ch/weitere-Publikationen/ — 2 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 Legacy <meta name=keywords> tag present (Google ignores it)

Rule meta.keywords_present · Content · 9 occurrence(s)

notice Missing Open Graph tags

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

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

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

  • https://monicaheinz.ch/ — 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://monicaheinz.ch/Lesungen/ — 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://monicaheinz.ch/Links-ImpressumDatenschutzerklaerung/ — 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://monicaheinz.ch/Romane/ — 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://monicaheinz.ch/Startseite/ — 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://monicaheinz.ch/Wettbewerbe/ — 18 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://monicaheinz.ch/ueber-mich/ — 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://monicaheinz.ch/weitere-Publikationen/ — 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.

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

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

  • https://monicaheinz.ch/ — 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://monicaheinz.ch/Kurzgeschichten/ — 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://monicaheinz.ch/Lesungen/ — 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://monicaheinz.ch/Links-ImpressumDatenschutzerklaerung/ — 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://monicaheinz.ch/Romane/ — 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://monicaheinz.ch/Startseite/ — 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://monicaheinz.ch/Wettbewerbe/ — 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://monicaheinz.ch/ueber-mich/ — 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://monicaheinz.ch/weitere-Publikationen/ — 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 · 9 occurrence(s)

  • https://monicaheinz.ch/ — 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://monicaheinz.ch/Kurzgeschichten/ — 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://monicaheinz.ch/Lesungen/ — 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://monicaheinz.ch/Links-ImpressumDatenschutzerklaerung/ — 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://monicaheinz.ch/Romane/ — 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://monicaheinz.ch/Startseite/ — 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://monicaheinz.ch/Wettbewerbe/ — 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://monicaheinz.ch/ueber-mich/ — 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://monicaheinz.ch/weitere-Publikationen/ — 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 · 9 occurrence(s)

notice Non-ASCII characters in URL path

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

notice Uppercase letters in URL path

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

Pages (showing 25 of 25)
URLStatusIndexableWordsIn-links
https://monicaheinz.ch/Kurzgeschichten/
Monica Heinz - Kurzgeschichten
200 yes 522 9
https://monicaheinz.ch/Lesungen/
Monica Heinz - Lesungen
200 yes 499 9
https://monicaheinz.ch/Links-ImpressumDatenschutzerklaerung/
Monica Heinz - Links / Impressum/Datenschutzerklärung
200 yes 428 9
https://monicaheinz.ch/Romane/
Monica Heinz - Romane
200 yes 676 9
https://monicaheinz.ch/Startseite/
Monica Heinz - Startseite
200 yes 729 9
https://monicaheinz.ch/Wettbewerbe/
Monica Heinz - Wettbewerbe
200 yes 456 9
https://monicaheinz.ch/ueber-mich/
Monica Heinz - über mich
200 yes 503 9
https://monicaheinz.ch/weitere-Publikationen/
Monica Heinz - weitere Publikationen
200 yes 424 9
https://monicaheinz.ch/
Monica Heinz - Startseite
200 yes 729 0
https://monicaheinz.ch/.cm4all/uproc.php/0/Biografie_Bibliografie%202023%20Monica%20Heinz_1.pdf?cdp=a&_=18bb7fb60b4 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Das%20Zeichen%20der%20Steine.pdf?cdp=a&_=178ab2b1e28 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Datenschutzerkla%CC%88rung_1.pdf?cdp=a&_=18ae65b4b1b 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Deine%20Spuren.pdf?cdp=a&_=178ab2b6090 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Der%20Koffer.pdf?cdp=a&_=17dce274988 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Die%20falsche%20Oma.pdf?cdp=a&_=178aaee7ea0 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Drei%20Affen,%20wirklich.pdf?cdp=a&_=178ab3a5c80 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Interview%20mit%20Monica%20Heinz,%202.%20Platz%20in%20Prosa.pdf?cdp=a&_=178ab2c4708 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Plaudertasche_im_Layout.pdf?cdp=a&_=1851af2fc10 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Rezensionen%20Das%20Bettelarmband.pdf?cdp=a&_=18cb1a30c70 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Rezensionen%20Das%20Hotel%20auf%20den%20Klippen.pdf?cdp=a&_=18cb19edc5f 200 no 0 2
https://monicaheinz.ch/.cm4all/uproc.php/0/Rezensionen%20Das%20Zugticket%20_%20The%20Trainticket_1.pdf?cdp=a&_=18cb1b4d392 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/Seite_33_Oltner_Tagblatt_2022-10-29.pdf?cdp=a&_=18442d93510 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/WAZ%2020_5_2014%20Apho_WettbewerbsgewInnerinnen.pdf?cdp=a&_=178ab5c05b0 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/liebaeugeln.pdf?cdp=a&_=178ab2bf500 200 no 0 1
https://monicaheinz.ch/.cm4all/uproc.php/0/schafft_es_Emma_Heinz.pdf?cdp=a&_=1851acce9f8 200 no 0 1

Audit your own site — free

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

Scan your site →