Catalog / thomaspucher.com
65

SEO audit for thomaspucher.com

Atelier Thomas Pucher | Atelier Thomas Pucher

otherWordPress

Health 65/100 (fair) · 50 pages crawled · generated 2026-07-29

Download Markdown report (feed to ChatGPT / Claude / Cursor)
50
pages crawled
50
indexable pages
0
errors
153
warnings
615
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Content 70 0 50 49
Meta Description 70 0 50 0
Performance 70 0 50 188
Agent Readiness 99 0 1 2
Images 99 0 1 44
Titles 99 0 1 0
Links 100 0 0 1
Mobile 100 0 0 50
Security 100 0 0 100
Social 100 0 0 100
Structured Data 100 0 0 50
URL 100 0 0 31
Findings

Warnings (6 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 · 50 occurrence(s)

warning Images missing alt text

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

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

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

warning Title likely truncated in SERP (too wide)

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

Notices (16 rules)

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 · 1 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://www.thomaspucher.com/ — the likely hero/LCP image (1_coa.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://www.thomaspucher.com/007_korea-yeon-meong/ — the likely hero/LCP image (007_atelier_thomas_pucher_korea_yeon_meong_fertig-1-1.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://www.thomaspucher.com/015-oic/ — the likely hero/LCP image (015_oic_pp_fertig-1.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://www.thomaspucher.com/030_estag/ — the likely hero/LCP image (030_atelier_thomas_pucher_estag_final-1.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://www.thomaspucher.com/053_tartu-hefefabrik/ — the likely hero/LCP image (053_atelier_thomas_pucher_tartu_hefefabrik_fertig-1.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://www.thomaspucher.com/067_kopenhagen-statens-naturhistoriske-museum/ — the likely hero/LCP image (067_atelier-thomas-pucher_kopenhagen_statens_naturhistoriske_museum_fertig-1.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://www.thomaspucher.com/098_china-north-city/ — the likely hero/LCP image (098_atelier_thomas_pucher_china_north_city_1_final-1.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://www.thomaspucher.com/104_tartu-kunstmuseum/ — the likely hero/LCP image (104_atelier_thomas_pucher_tartu_kunstmuseum_fertig-1.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://www.thomaspucher.com/128-lwl/ — the likely hero/LCP image (128_atelier_thomas_pucher_lwl_fertig-1.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://www.thomaspucher.com/217_v2p-tribunen/ — the likely hero/LCP image (2016_news_217_tribünen_gallery.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://www.thomaspucher.com/271_bg-brg-sillgasse/ — the likely hero/LCP image (271_atelier_thomas_pucher_brg_innsbruck_-1.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://www.thomaspucher.com/apsects-post-7/ — the likely hero/LCP image (039_atelier_thomas_pucher_nik_fertig-1.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://www.thomaspucher.com/aspects-post-3/ — the likely hero/LCP image (089_atelier_thomas_pucher_aks_parkhaus_fertig-1.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://www.thomaspucher.com/aspects-post-4/ — the likely hero/LCP image (231_atelier-thomas-pucher_china_above_the_clouds_01-1.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://www.thomaspucher.com/aspects-post-6/ — the likely hero/LCP image (052_atelier_thomas_pucher_spar_gamlitz_fertig-1.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://www.thomaspucher.com/aspects-work/ — the likely hero/LCP image (161_atelier_thomas_pucher_lusail-sails_fertig-1.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://www.thomaspucher.com/cafe-promenade/ — the likely hero/LCP image (099_atelier_thomas_pucher_tallinna_mussikakeskkooli_fertig-1.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://www.thomaspucher.com/news-post-1/ — the likely hero/LCP image (184_atelier_thomas_pucher_rh_reininghaus-goes-smart_fertig-1.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://www.thomaspucher.com/news-post-6/ — the likely hero/LCP image (063_atelier_thomas_pucher_villa_sk_fertig-1.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://www.thomaspucher.com/news-post-7/ — the likely hero/LCP image (217_atelier_thomas_pucher_v2p_rondo_fertig-1.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://www.thomaspucher.com/the-flower-of-life/ — the likely hero/LCP image (001_atelier_thomas_pucher_wachkoma_final-1.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://www.thomaspucher.com/university-library/ — the likely hero/LCP image (254_atelier-thomas-pucher_u3a_updated_19-11-14-1.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://www.thomaspucher.com/work-post-2/ — the likely hero/LCP image (090_atelier_thomas_pucher_sinfonia-varsovia_01_fertig-1.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://www.thomaspucher.com/work-post-5/ — the likely hero/LCP image (089_atelier-thomas-pucher_aks_fertig-1.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://www.thomaspucher.com/work-post-6/ — the likely hero/LCP image (062_atelier_thomas_pucher_muc_fertig-1.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 · 44 occurrence(s)

notice Internal link has no anchor text / accessible name

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

  • https://www.thomaspucher.com/ — 10 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 · 50 occurrence(s)

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

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

  • https://www.thomaspucher.com/ — 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://www.thomaspucher.com/007_korea-yeon-meong/ — 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://www.thomaspucher.com/015-oic/ — 42 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.thomaspucher.com/030_estag/ — 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://www.thomaspucher.com/053_tartu-hefefabrik/ — 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://www.thomaspucher.com/067_kopenhagen-statens-naturhistoriske-museum/ — 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://www.thomaspucher.com/098_china-north-city/ — 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://www.thomaspucher.com/104_tartu-kunstmuseum/ — 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://www.thomaspucher.com/128-lwl/ — 17 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.thomaspucher.com/217_v2p-tribunen/ — 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.thomaspucher.com/271_bg-brg-sillgasse/ — 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://www.thomaspucher.com/apsects-post-7/ — 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://www.thomaspucher.com/aspects-post-3/ — 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://www.thomaspucher.com/aspects-post-4/ — 28 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.thomaspucher.com/aspects-post-6/ — 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://www.thomaspucher.com/aspects-work/ — 15 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.thomaspucher.com/cafe-promenade/ — 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://www.thomaspucher.com/news-post-1/ — 35 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.thomaspucher.com/news-post-6/ — 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://www.thomaspucher.com/news-post-7/ — 33 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.thomaspucher.com/the-flower-of-life/ — 31 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.thomaspucher.com/university-library/ — 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://www.thomaspucher.com/work-post-2/ — 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://www.thomaspucher.com/work-post-5/ — 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://www.thomaspucher.com/work-post-6/ — 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 · 50 occurrence(s)

  • https://www.thomaspucher.com/ — 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.thomaspucher.com/015-oic/ — 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.thomaspucher.com/030_estag/ — 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.thomaspucher.com/053_tartu-hefefabrik/ — 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.thomaspucher.com/067_kopenhagen-statens-naturhistoriske-museum/ — 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.thomaspucher.com/098_china-north-city/ — 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.thomaspucher.com/104_tartu-kunstmuseum/ — 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.thomaspucher.com/128-lwl/ — 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.thomaspucher.com/217_v2p-tribunen/ — 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.thomaspucher.com/271_bg-brg-sillgasse/ — 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.thomaspucher.com/apsects-post-7/ — 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.thomaspucher.com/aspects-post-3/ — 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.thomaspucher.com/aspects-post-4/ — 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.thomaspucher.com/aspects-post-6/ — 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.thomaspucher.com/aspects-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://www.thomaspucher.com/cafe-promenade/ — 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.thomaspucher.com/news-post-1/ — 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.thomaspucher.com/news-post-6/ — 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.thomaspucher.com/news-post-7/ — 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.thomaspucher.com/the-flower-of-life/ — 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.thomaspucher.com/university-library/ — 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.thomaspucher.com/work-aspects-news/ — 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.thomaspucher.com/work-post-2/ — 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.thomaspucher.com/work-post-5/ — 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.thomaspucher.com/work-post-6/ — 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 · 50 occurrence(s)

  • https://www.thomaspucher.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://www.thomaspucher.com/015-oic/ — 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.thomaspucher.com/030_estag/ — 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.thomaspucher.com/053_tartu-hefefabrik/ — 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.thomaspucher.com/067_kopenhagen-statens-naturhistoriske-museum/ — 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.thomaspucher.com/098_china-north-city/ — 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.thomaspucher.com/104_tartu-kunstmuseum/ — 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.thomaspucher.com/128-lwl/ — 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.thomaspucher.com/217_v2p-tribunen/ — 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.thomaspucher.com/271_bg-brg-sillgasse/ — 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.thomaspucher.com/apsects-post-7/ — 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.thomaspucher.com/aspects-post-3/ — 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.thomaspucher.com/aspects-post-4/ — 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.thomaspucher.com/aspects-post-6/ — 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.thomaspucher.com/aspects-work/ — 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.thomaspucher.com/cafe-promenade/ — 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.thomaspucher.com/news-post-1/ — 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.thomaspucher.com/news-post-6/ — 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.thomaspucher.com/news-post-7/ — 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.thomaspucher.com/the-flower-of-life/ — 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.thomaspucher.com/university-library/ — 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.thomaspucher.com/work-aspects-news/ — 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.thomaspucher.com/work-post-2/ — 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.thomaspucher.com/work-post-5/ — 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.thomaspucher.com/work-post-6/ — 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 · 50 occurrence(s)

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

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.thomaspucher.com/
Atelier Thomas Pucher | Atelier Thomas Pucher
200 yes 53 50
https://www.thomaspucher.com/003_linz-tanzteater/
Atelier Thomas Pucher | 003_Linz Tanztheater
200 yes 53 0
https://www.thomaspucher.com/007_korea-yeon-meong/
Atelier Thomas Pucher | 007_Korea yeon meong
200 yes 53 0
https://www.thomaspucher.com/009_enm_estonian-national-museum/
Atelier Thomas Pucher | 009_ENM_Estonian National Museum
200 yes 53 0
https://www.thomaspucher.com/013_efkon/
Atelier Thomas Pucher | 013_Efkon
200 yes 53 0
https://www.thomaspucher.com/015-oic/
Atelier Thomas Pucher | 015_OIC
200 yes 64 0
https://www.thomaspucher.com/020_tartu-rebase-street/
Atelier Thomas Pucher | 020_Tartu Rebase Street_1st tower
200 yes 53 0
https://www.thomaspucher.com/030_estag/
Atelier Thomas Pucher | 030_Estag
200 yes 53 0
https://www.thomaspucher.com/053_tartu-hefefabrik/
Atelier Thomas Pucher | 053_Tartu Hefefabrik
200 yes 53 0
https://www.thomaspucher.com/058_saubermacher/
Atelier Thomas Pucher | 058_Saubermacher
200 yes 53 0
https://www.thomaspucher.com/067_kopenhagen-statens-naturhistoriske-museum/
Atelier Thomas Pucher | 067_Kopenhagen Statens Naturhistoriske Museum
200 yes 58 0
https://www.thomaspucher.com/093_wb_wien_bildungskampus/
Atelier Thomas Pucher | 093_wb_wien_BILDUNGSKAMPUS
200 yes 53 0
https://www.thomaspucher.com/098_china-north-city-2/
Atelier Thomas Pucher | 098_China North City II
200 yes 53 0
https://www.thomaspucher.com/098_china-north-city/
Atelier Thomas Pucher | 098_China North City I
200 yes 53 0
https://www.thomaspucher.com/104_tartu-kunstmuseum/
Atelier Thomas Pucher | 104_Tartu Kunstmuseum
200 yes 53 0
https://www.thomaspucher.com/109_wimmer-media/
Atelier Thomas Pucher | 109_wimmer Media
200 yes 53 0
https://www.thomaspucher.com/118_paracelsus-bad/
Atelier Thomas Pucher | 129_Paracelsus Bad
200 yes 53 0
https://www.thomaspucher.com/127_pluddemanngasse_venta_waltendorf/
Atelier Thomas Pucher | 127_Plüddemanngasse_venta_waltendorf
200 yes 53 0
https://www.thomaspucher.com/128-lwl/
Atelier Thomas Pucher | 128_LWL
200 yes 53 0
https://www.thomaspucher.com/159_andreas-hofer-platz/
Atelier Thomas Pucher | 159_Andreas Hofer Platz
200 yes 53 0
https://www.thomaspucher.com/160_qatar_corniche/
Atelier Thomas Pucher | 160_Qatar_Corniche
200 yes 53 0
https://www.thomaspucher.com/184_reininghaus-goes-smart/
Atelier Thomas Pucher | 184_Reininghaus Goes Smart
200 yes 54 0
https://www.thomaspucher.com/217_v2p-tribunen/
Atelier Thomas Pucher | 2016_news_217_V2P Tribünen
200 yes 53 0
https://www.thomaspucher.com/258_medcampus-linz/
Atelier Thomas Pucher | 258_Medcampus Linz
200 yes 54 0
https://www.thomaspucher.com/271_bg-brg-sillgasse/
Atelier Thomas Pucher | 271_BG BRG Sillgasse
200 yes 53 0
https://www.thomaspucher.com/295_gtc_budapest_tower/
Atelier Thomas Pucher | 2017_news_295_GTC_Budapest_Tower_01
200 yes 53 0
https://www.thomaspucher.com/50_the-artistic-centre-of-estonia/
Atelier Thomas Pucher | 050_the artistic centre of Estonia
200 yes 53 0
https://www.thomaspucher.com/_news_2016_austria-superheroes/
Atelier Thomas Pucher | 2016_news_Austria Superheroes_magazine
200 yes 53 0
https://www.thomaspucher.com/_news_2016_news/
Atelier Thomas Pucher | 2016_news_architekturtage_graz
200 yes 53 0
https://www.thomaspucher.com/_news_5_test/
Atelier Thomas Pucher | 2016_news_magazine_pucher aspects
200 yes 53 0
https://www.thomaspucher.com/apsects-post-7/
Atelier Thomas Pucher | 039_NIK
200 yes 53 0
https://www.thomaspucher.com/aspects-post-3/
Atelier Thomas Pucher | 089_AKS_parkhaus
200 yes 53 0
https://www.thomaspucher.com/aspects-post-4/
Atelier Thomas Pucher | 231_Above the Clouds
200 yes 53 0
https://www.thomaspucher.com/aspects-post-6/
Atelier Thomas Pucher | 052_Spar Gamlitz
200 yes 53 0
https://www.thomaspucher.com/aspects-work/
Atelier Thomas Pucher | 161_Lusail
200 yes 53 0
https://www.thomaspucher.com/cafe-promenade/
Atelier Thomas Pucher | 099_Tallinna Mussikakeskkooli
200 yes 53 0
https://www.thomaspucher.com/news-post-1/
Atelier Thomas Pucher | 064_Graz RH Masterplan
200 yes 53 0
https://www.thomaspucher.com/news-post-6/
Atelier Thomas Pucher | 063_Villa SK
200 yes 53 0
https://www.thomaspucher.com/news-post-7/
Atelier Thomas Pucher | 217_V2P_Rondo
200 yes 53 0
https://www.thomaspucher.com/news_06_ten-tower/
Atelier Thomas Pucher | 2016_news_236_RH_Ten tower
200 yes 53 0
https://www.thomaspucher.com/news_09_greentower/
Atelier Thomas Pucher | 2016_news_184_RH_green tower
200 yes 53 0
https://www.thomaspucher.com/news_10_gtc-belgrade/
Atelier Thomas Pucher | 2016__news_286_gtc belgrade_new project
200 yes 53 0
https://www.thomaspucher.com/news_2016_11_tube-tower/
Atelier Thomas Pucher | 2016_news_184_RH_Tube Tower
200 yes 53 0
https://www.thomaspucher.com/the-flower-of-life/
Atelier Thomas Pucher | 001_Mariahof_Wachkoma
200 yes 53 0
https://www.thomaspucher.com/ubwirdneu/
Atelier Thomas Pucher | 2016_news_254_u3a#ubwirdneu
200 yes 53 0
https://www.thomaspucher.com/university-library/
Atelier Thomas Pucher | 254_University Library
200 yes 53 0
https://www.thomaspucher.com/work-aspects-news/
Atelier Thomas Pucher | 2017_news_230_Cafe Promenade
200 yes 53 0
https://www.thomaspucher.com/work-post-2/
Atelier Thomas Pucher | 090_SVW_sinfonia varsovia
200 yes 53 0
https://www.thomaspucher.com/work-post-5/
Atelier Thomas Pucher | 089_AKS
200 yes 53 0
https://www.thomaspucher.com/work-post-6/
Atelier Thomas Pucher | 062_MUC
200 yes 53 0

Audit your own site — free

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

Scan your site →