Catalog / wil-shopping.ch
67

SEO audit for wil-shopping.ch

IGOB entdecken. erleben. geniessen - Wil Shopping in der Stadt

ecommerce

Health 67/100 (fair) · 20 pages crawled · generated 2026-08-26

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

Mit einem Wiler Gutschein die Wiler Geschäfte entdecken, erleben und geniessen. IGOB Interessengemeinschaft Obere Bahnhofstrasse Wil.

Screenshot of wil-shopping.ch
20
pages crawled
11
indexable pages
4
errors
57
warnings
117
notices
4
orphan pages
2
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 45 2 30 0
Crawlability 90 2 0 2
Performance 84 0 11 45
Content 91 0 6 0
Duplicate 91 0 6 5
Indexability 97 0 2 0
Agent Readiness 99 0 1 23
Meta Description 99 0 1 0
Security 100 0 0 15
Social 100 0 0 11
Structured Data 100 0 0 11
URL 100 0 0 5
Findings

Errors (2 rules)

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

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

error Client error (4xx) response

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

Warnings (9 rules)

warning Control has no accessible name

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

warning Thin content (low word count)

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

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Page is noindex

Rule index.noindex · Indexability · 2 occurrence(s)

warning Orphan page (no internal inlinks)

Rule links.orphan · Links · 4 occurrence(s)

warning Internal link points to a redirect

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

warning Missing meta description

Rule meta_desc.missing · Meta Description · 1 occurrence(s)

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

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

Notices (16 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

notice No main landmark for AI agents

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

notice Duplicate meta description across pages

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

  • https://www.wil-shopping.ch/datenschutz — meta description shared by 5 pages: https://www.wil-shopping.ch/impressum/, https://www.wil-shopping.ch/datenschutz/, https://www.wil-shopping.ch/kontakt/
  • https://www.wil-shopping.ch/datenschutz/ — meta description shared by 5 pages: https://www.wil-shopping.ch/impressum/, https://www.wil-shopping.ch/kontakt/, https://www.wil-shopping.ch/datenschutz
  • https://www.wil-shopping.ch/impressum — meta description shared by 5 pages: https://www.wil-shopping.ch/impressum/, https://www.wil-shopping.ch/datenschutz/, https://www.wil-shopping.ch/kontakt/
  • https://www.wil-shopping.ch/impressum/ — meta description shared by 5 pages: https://www.wil-shopping.ch/datenschutz/, https://www.wil-shopping.ch/kontakt/, https://www.wil-shopping.ch/datenschutz
  • https://www.wil-shopping.ch/kontakt/ — meta description shared by 5 pages: https://www.wil-shopping.ch/impressum/, https://www.wil-shopping.ch/datenschutz/, https://www.wil-shopping.ch/datenschutz

notice Likely hero image lacks fetchpriority=high

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

  • https://www.wil-shopping.ch/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/agb/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/datenschutz — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/datenschutz/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/impressum — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/impressum/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/info-fuer-geschaefte/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/jahresprogramm/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/kontakt/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/unsere-geschaefte/ — the likely hero/LCP image (logo_igob.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://www.wil-shopping.ch/wil-shopping/ — the likely hero/LCP image (logo_igob.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.

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

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

  • https://www.wil-shopping.ch/ — 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://www.wil-shopping.ch/agb/ — 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://www.wil-shopping.ch/datenschutz — 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://www.wil-shopping.ch/datenschutz/ — 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://www.wil-shopping.ch/impressum — 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://www.wil-shopping.ch/impressum/ — 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://www.wil-shopping.ch/info-fuer-geschaefte/ — 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://www.wil-shopping.ch/jahresprogramm/ — 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://www.wil-shopping.ch/kontakt/ — 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://www.wil-shopping.ch/unsere-geschaefte/ — 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://www.wil-shopping.ch/wil-shopping/ — 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 · 11 occurrence(s)

  • https://www.wil-shopping.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://www.wil-shopping.ch/agb/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/datenschutz — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/datenschutz/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/impressum — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/impressum/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/info-fuer-geschaefte/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/jahresprogramm/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/kontakt/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/unsere-geschaefte/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.wil-shopping.ch/wil-shopping/ — 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 · 11 occurrence(s)

  • https://www.wil-shopping.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://www.wil-shopping.ch/agb/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/datenschutz — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/datenschutz/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/impressum — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/impressum/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/info-fuer-geschaefte/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/jahresprogramm/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/kontakt/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/unsere-geschaefte/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.wil-shopping.ch/wil-shopping/ — 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 Slow server response

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

notice URL redirects to another URL

Rule redirect.single · Crawlability · 2 occurrence(s)

notice Deprecated schema type with no Google rich result

Rule schema.deprecated_type · Structured Data · 11 occurrence(s)

  • https://www.wil-shopping.ch/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/agb/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/datenschutz — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/datenschutz/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/impressum — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/impressum/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/info-fuer-geschaefte/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/jahresprogramm/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/kontakt/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/unsere-geschaefte/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://www.wil-shopping.ch/wil-shopping/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.

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

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

notice Underscores in URL path (prefer hyphens)

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

Pages (showing 20 of 20)
URLStatusIndexableWordsIn-links
https://www.wil-shopping.ch/
IGOB entdecken. erleben. geniessen - Wil Shopping in der Stadt
200 yes 92 13
https://www.wil-shopping.ch/datenschutz
Datenschutz - IGOB – Wil-Shopping
200 yes 4804 13
https://www.wil-shopping.ch/impressum
Impressum - IGOB – Wil-Shopping
200 yes 53 13
https://www.wil-shopping.ch/info-fuer-geschaefte/
Info für Geschäfte zu Wil-Shopping - IGOB – Wil-Shopping
200 yes 298 13
https://www.wil-shopping.ch/jahresprogramm/
Jahresprogramm und Öffnungszeiten - IGOB – Wil-Shopping
200 yes 122 13
https://www.wil-shopping.ch/kontakt/
Kontakt und Vorstand - IGOB – Wil-Shopping
200 yes 129 13
https://www.wil-shopping.ch/unsere-geschaefte/
Unsere Geschäfte im schönen Wil - IGOB – Wil-Shopping
200 yes 1061 13
https://www.wil-shopping.ch/agb/
AGB Wiler-Geschenkkarte - IGOB – Wil-Shopping
200 yes 895 0
https://www.wil-shopping.ch/datenschutz/
Datenschutz - IGOB – Wil-Shopping
200 yes 4804 0
https://www.wil-shopping.ch/impressum/
Impressum - IGOB – Wil-Shopping
200 yes 53 0
https://www.wil-shopping.ch/wil-shopping/
WIL Shopping Parken zum Nulltarif - IGOB – Wil-Shopping
200 yes 168 0
https://www.wil-shopping.ch/?page_id=522
Seite nicht gefunden - IGOB – Wil-Shopping
404 no 36 1
https://www.wil-shopping.ch/?page_id=569
Seite nicht gefunden - IGOB – Wil-Shopping
404 no 36 1
https://www.wil-shopping.ch/wp-content/uploads/2022/03/leitbild.pdf 200 no 0 1
https://www.wil-shopping.ch/wp-content/uploads/2022/03/planparkplaetze.pdf 200 no 0 1
https://www.wil-shopping.ch/wp-content/uploads/2022/03/statuten.pdf 200 no 0 1
https://www.wil-shopping.ch/wp-content/uploads/2024/07/Beitragsreglement_Anmeldeformular-IGOB-2024.pdf 200 no 0 1
https://www.wil-shopping.ch/wp-content/uploads/2025/09/Geschenkkarten-AGB.pdf 200 no 0 2
https://www.wil-shopping.ch/wp-content/uploads/2025/09/Geschenkkarten-Reglement.pdf 200 no 0 2
https://www.wil-shopping.ch/wp-content/uploads/2026/07/Liste-Geschaefte-Internet-August-2026.pdf 200 no 0 1

Audit your own site — free

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

Scan your site →