Catalog / heig-vd.ch
65

SEO audit for heig-vd.ch

HEIG-VD

other

Health 65/100 (fair) · 25 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)
25
pages crawled
21
indexable pages
0
errors
151
warnings
192
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Hreflang 50 0 42 0
Links 63 0 31 0
Agent Readiness 75 0 21 3
Canonical 75 0 21 0
Meta Description 75 0 21 0
Duplicate 92 0 7 0
Crawlability 95 0 4 3
Security 98 0 2 42
Content 99 0 1 1
Titles 99 0 1 3
Images 100 0 0 30
Performance 100 0 0 46
Social 100 0 0 42
Structured Data 100 0 0 21
URL 100 0 0 1
Findings

Warnings (13 rules)

warning Control has no accessible name

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

warning Thin content (low word count)

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

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Incomplete/empty response after retries (likely transient — re-crawl)

Rule fetch.incomplete · Crawlability · 4 occurrence(s)

warning Content-Type header doesn't match the actual content

Rule headers.content_type_mismatch · Security · 2 occurrence(s)

  • https://heig-vd.ch/annuaire — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://heig-vd.ch/recherche/projets/gesica-gestion-des-situations-de-crises-sanitaires — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".

warning Self hreflang language disagrees with html lang

Rule hreflang.mismatch_html_lang · Hreflang · 18 occurrence(s)

  • https://heig-vd.ch/ — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/a-propos/heig-vd — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/actualites/1 — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/actualites/2026/06/08/la-plateforme-cyanocommunity-mise-a-l%27honneur-dans-l%27emission-cqfd-de-la-rts — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/campus — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/campus/ateliers-jeunes — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/en — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/evenements/1/ — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/evenements/2026/09/17/seance-d%27information-du-semestre-preparatoire — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/formation/avant-les-etudes — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/formation/bachelor/admission/ingenierie/ — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/formation/bachelor/cadre-de-reference — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/innovation — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/innovation/innovateurs-en-devenir/innovation-crunch-time/ — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/innovation/pepiniere-de-start-up — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/politique-de-confidentialite/ — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/recherche — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.
  • https://heig-vd.ch/recherche/centre-rad — the self-referencing hreflang is "cimode" but <html lang> is "fr" — contradictory language signals can make Google distrust the hreflang cluster. Align both to the same BCP-47 language.

warning hreflang set has no self-reference

Rule hreflang.missing_self · Hreflang · 3 occurrence(s)

warning Internal link points to a redirect

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

warning Title likely truncated in SERP (too wide)

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

Notices (19 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

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

notice Low text-to-HTML ratio

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

notice Image alt text is keyword-stuffed (repetition / low variety)

Rule images.alt_stuffed · Images · 2 occurrence(s)

  • https://heig-vd.ch/campus — 1 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.
  • https://heig-vd.ch/recherche — 2 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.

notice Image alt text is very long (possible keyword stuffing)

Rule images.alt_too_long · Images · 4 occurrence(s)

notice Image filename is generic/auto-generated (missed image-search signal)

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

  • https://heig-vd.ch/ — 3 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/actualites/1 — 17 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/actualites/2026/06/08/la-plateforme-cyanocommunity-mise-a-l%27honneur-dans-l%27emission-cqfd-de-la-rts — 5 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/en — 3 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/evenements/1/ — 12 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/evenements/2026/09/17/seance-d%27information-du-semestre-preparatoire — 5 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/recherche — 7 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://heig-vd.ch/recherche/projets/gesica-gestion-des-situations-de-crises-sanitaires — 21 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.

notice Likely hero image lacks fetchpriority=high

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

  • https://heig-vd.ch/ — the likely hero/LCP image (heig-vd-logo.gif) 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://heig-vd.ch/a-propos/heig-vd — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/actualites/1 — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/actualites/2026/06/08/la-plateforme-cyanocommunity-mise-a-l%27honneur-dans-l%27emission-cqfd-de-la-rts — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/annuaire — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/campus — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/campus/ateliers-jeunes — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/en — the likely hero/LCP image (heig-vd-logo.gif) 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://heig-vd.ch/evenements/1/ — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/evenements/2026/09/17/seance-d%27information-du-semestre-preparatoire — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/formation/avant-les-etudes — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/formation/bachelor/admission/ingenierie/ — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/formation/bachelor/cadre-de-reference — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/formations/bachelor/admission — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/innovation — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/innovation/innovateurs-en-devenir/innovation-crunch-time/ — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/innovation/pepiniere-de-start-up — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/politique-de-confidentialite/ — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/recherche — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/recherche/centre-rad — the likely hero/LCP image (heig-vd-logo.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://heig-vd.ch/recherche/projets/gesica-gestion-des-situations-de-crises-sanitaires — the likely hero/LCP image (heig-vd-logo.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 Images without width/height (layout shift / CLS)

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

notice Missing Open Graph tags

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

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

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

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

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

  • https://heig-vd.ch/annuaire — 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://heig-vd.ch/recherche/projets/gesica-gestion-des-situations-de-crises-sanitaires — 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 · 2 occurrence(s)

  • https://heig-vd.ch/annuaire — 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://heig-vd.ch/recherche/projets/gesica-gestion-des-situations-de-crises-sanitaires — 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 · 3 occurrence(s)

notice Missing recommended security headers

Rule security.missing_headers · Security · 21 occurrence(s)

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

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

notice Title is very short

Rule title.too_short · Titles · 3 occurrence(s)

notice URL is very long

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

Pages (showing 25 of 25)
URLStatusIndexableWordsIn-links
https://heig-vd.ch/a-propos/heig-vd
La HEIG‑VD - HEIG-VD
200 yes 969 22
https://heig-vd.ch/
HEIG-VD
200 yes 437 21
https://heig-vd.ch/a-propos
Redirecting to: /a-propos/heig-vd
200 no 5 21
https://heig-vd.ch/annuaire
Annuaire - HEIG-VD
200 yes 194 21
https://heig-vd.ch/campus
Campus - HEIG-VD
200 yes 349 21
https://heig-vd.ch/campus/ateliers-jeunes
Ateliers Jeunes - HEIG-VD
200 yes 876 21
https://heig-vd.ch/contacts
Redirecting to: /contacts/cheseaux
200 no 5 21
https://heig-vd.ch/en
HEIG-VD
200 yes 437 21
https://heig-vd.ch/formation
Redirecting to: /formation/bachelor
200 no 5 21
https://heig-vd.ch/formation/avant-les-etudes
Avant les études - HEIG-VD
200 yes 556 21
https://heig-vd.ch/formation/bachelor/cadre-de-reference
Cadre de référence - HEIG-VD
200 yes 373 21
https://heig-vd.ch/formations/bachelor/admission
Admission - HEIG-VD
200 yes 319 21
https://heig-vd.ch/innovation
Innovation - HEIG-VD
200 yes 342 21
https://heig-vd.ch/innovation/innovateurs-en-devenir/innovation-crunch-time/
Innovation CRUNCH Time - HEIG-VD
200 yes 812 21
https://heig-vd.ch/innovation/pepiniere-de-start-up
Pépinière de start-up - HEIG-VD
200 yes 5662 21
https://heig-vd.ch/politique-de-confidentialite/
HEIG-VD
200 yes 2470 21
https://heig-vd.ch/recherche
Recherche - HEIG-VD
200 yes 738 21
https://heig-vd.ch/recherche/centre-rad
Recherche - HEIG-VD
200 yes 542 21
https://heig-vd.ch/formation/bachelor/admission/ingenierie/
Ingénierie - Admission - HEIG-VD
200 yes 1762 4
https://heig-vd.ch/actualites/2026/06/08/la-plateforme-cyanocommunity-mise-a-l%27honneur-dans-l%27emission-cqfd-de-la-rts
La plateforme CyanoCommunity mise à l'honneur dans l'émission CQFD de la RTS - HEIG-VD
200 yes 424 6
https://heig-vd.ch/recherche/projets/gesica-gestion-des-situations-de-crises-sanitaires
GESICA: GESTION DES SITUATIONS DE CRISES SANITAIRES - HEIG-VD
200 yes 590 5
https://heig-vd.ch/evenements/2026/09/17/seance-d%27information-du-semestre-preparatoire
Séance d'information du Semestre préparatoire - HEIG-VD
200 yes 301 4
https://heig-vd.ch/evenements/1/
Événements - HEIG-VD
200 yes 301 3
https://heig-vd.ch/actualites/1
Actualités - HEIG-VD
200 yes 432 3
https://heig-vd.ch/docs/default-source/doc-centre-formation-de-base/inscription/rcp-lhev.pdf?sfvrsn=965186ea_2 0 no 0 1

Audit your own site — free

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

Scan your site →