Catalog / lufteriet.dk
81

SEO audit for lufteriet.dk

Hundetræning i København, Nordhavn, Østerbro

otherWordPress

Health 81/100 (good) · 30 pages crawled · generated 2026-08-26

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

Hundetræning i København og omegn v. uddannet hundetræner. Belønningsbaseret træning. Fokus på det positive samarbejde. Max 8 hunde pr. hold.

30
pages crawled
8
indexable pages
2
errors
20
warnings
96
notices
0
orphan pages
1
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 96 1 1 1
Crawlability 97 1 0 1
Performance 92 0 8 32
Duplicate 96 0 4 2
Headings 97 0 3 0
Content 98 0 2 3
Indexability 99 0 1 0
Structured Data 99 0 1 8
Agent Readiness 100 0 0 1
Canonical 100 0 0 1
Meta Description 100 0 0 4
Security 100 0 0 16
Social 100 0 0 8
URL 100 0 0 19
Findings

Errors (2 rules)

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

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

error Client error (4xx) response

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

Warnings (8 rules)

warning Thin content (low word count)

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

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Page is noindex

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

warning Internal link points to a redirect

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

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

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

warning BreadcrumbList present but structurally incomplete

Rule schema.breadcrumb_incomplete · Structured Data · 1 occurrence(s)

  • https://lufteriet.dk/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.

Notices (17 rules)

notice No llms.txt for AI agents

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

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

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

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • http://lufteriet.dk/aktuelle-hold/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/aktuelle-hold/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/hundetraening-3/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/hundetraening-3/aktuelle-hold/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/kontakt-traeneriet/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/priser-fra-900-1490-dkk/ — the likely hero/LCP image (traeneriet-logo-1.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://lufteriet.dk/uddannet-hundeinstruktoer-i-positiv-beloenningsbaseret-hundetraening/ — the likely hero/LCP image (traeneriet-logo-1.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 Internal link has no anchor text / accessible name

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

  • https://lufteriet.dk/ — 21 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 Meta description too long

Rule meta_desc.too_long · Meta Description · 4 occurrence(s)

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

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

  • http://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/ — 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://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/hundetraening-3/ — 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://lufteriet.dk/hundetraening-3/aktuelle-hold/ — 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://lufteriet.dk/kontakt-traeneriet/ — 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://lufteriet.dk/priser-fra-900-1490-dkk/ — 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://lufteriet.dk/uddannet-hundeinstruktoer-i-positiv-beloenningsbaseret-hundetraening/ — 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.

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

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

  • http://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/ — 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://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/hundetraening-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://lufteriet.dk/hundetraening-3/aktuelle-hold/ — 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://lufteriet.dk/kontakt-traeneriet/ — 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://lufteriet.dk/priser-fra-900-1490-dkk/ — 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://lufteriet.dk/uddannet-hundeinstruktoer-i-positiv-beloenningsbaseret-hundetraening/ — 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 · 8 occurrence(s)

  • http://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/ — 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://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/hundetraening-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://lufteriet.dk/hundetraening-3/aktuelle-hold/ — 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://lufteriet.dk/kontakt-traeneriet/ — 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://lufteriet.dk/priser-fra-900-1490-dkk/ — 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://lufteriet.dk/uddannet-hundeinstruktoer-i-positiv-beloenningsbaseret-hundetraening/ — 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 URL redirects to another URL

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

notice Deprecated schema type with no Google rich result

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

  • http://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/ — 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://lufteriet.dk/aktuelle-hold/ — 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://lufteriet.dk/hundetraening-3/ — 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://lufteriet.dk/hundetraening-3/aktuelle-hold/ — 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://lufteriet.dk/kontakt-traeneriet/ — 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://lufteriet.dk/priser-fra-900-1490-dkk/ — 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://lufteriet.dk/uddannet-hundeinstruktoer-i-positiv-beloenningsbaseret-hundetraening/ — 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 · 8 occurrence(s)

Pages (showing 30 of 30)
URLStatusIndexableWordsIn-links
https://lufteriet.dk/
Hundetræning i København, Nordhavn, Østerbro
200 yes 243 9
https://lufteriet.dk/aktuelle-hold/
Aktuelle hold København Nordhavn Østerbro Træneriet - Træneriet
200 yes 334 9
https://lufteriet.dk/hundetraening-3/
Hundetræning København K, Østerbro, Nordhavn
200 yes 345 9
https://lufteriet.dk/kontakt-traeneriet/
Kontakt - Træneriet
200 yes 125 9
https://lufteriet.dk/priser-fra-900-1490-dkk/
Priser Træneriet
200 yes 166 9
https://lufteriet.dk/uddannet-hundeinstruktoer-i-positiv-beloenningsbaseret-hundetraening/
Om hundetræner Sidse Udsen | Træneriet
200 yes 601 9
http://lufteriet.dk/aktuelle-hold/
Aktuelle hold København Nordhavn Østerbro Træneriet - Træneriet
200 yes 334 3
https://lufteriet.dk/hundetraening-3/aktuelle-hold/
Aktuelle hold København Nordhavn Østerbro Træneriet - Træneriet
200 yes 334 1
https://lufteriet.dk/det-med-smat/
Siden blev ikke fundet - Træneriet
404 no 75 1
https://lufteriet.dk/wp-content/uploads/2011/12/Sidse-Udsen1.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2011/12/hundelufter81.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2013/12/hundelufter-%C3%B8sterbro.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2013/12/hundelufter-k%C3%B8benhavn.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2016/08/3-hunde-ved-strand.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-10Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-11Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-12Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-13Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-14Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-15Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-16Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-1Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-2Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-3Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-4Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-5Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-6Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-7Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-8Hundetraening.jpg 200 no 0 1
https://lufteriet.dk/wp-content/uploads/2022/03/Lag-9Hundetraening.jpg 200 no 0 1

Audit your own site — free

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

Scan your site →