Juno
How it worksExample reportPricing
Start free audit
© Juno
Deutsch
ImprintPrivacyTermsWithdrawal
IndustryBakery chainRehab centresRestaurant chainElectrical contractorOnline shopFood producerMetal engineeringElectronics maker

Real exampleA real German company’s website, checked with the free quick check on 24 Oct 2026. Name and address removed.

Homepage · 24 Oct 2026

steakhaus-kette.example

Poor overall: 21 things to improve, with Conversion scoring lowest. Start with one action, one name. Quick audit: only the code-measured checks ran, so design and copy judgement is still missing. 5 checks need a person to confirm.

critical
2
major
9
minor
10
Checked52%quick audit
45of 100Poor3 high-impact fixes you can make in minutes

Scores by audit

If you only do three things

  1. One action, one name

    When one destination has several names, or one name leads to different places, visitors stop trusting the navigation and second-guess every click.

    Fix→Give every destination one label and use it everywhere: menu, buttons, footer and page title. Rename or remove the duplicates the audit found.

  2. Comfortable body text

    Small text, long lines and tight line spacing tire readers quickly, especially on phones.

    Fix→Set body text to at least 16 px, line length to 45–75 characters (max-width around 65ch) and line height to 1.4–1.6.

  3. Pages can be crawled and indexed

    Pages search engines can’t crawl or index simply don’t show up in results.

    Fix→Make sure key pages return 200, have no noindex, point their canonical to themselves and are listed in an XML sitemap referenced from robots.txt.

SEO

Poor 39/100

SEO is where visitors struggle most. I'd start with "pages can be crawled and indexed".

  • critical

    Pages can be crawled and indexed

    2 page(s) tell search engines not to index them and 0 return an error. Pages search engines can’t crawl or index simply don’t show up in results.

    Fix→Make sure key pages return 200, have no noindex, point their canonical to themselves and are listed in an XML sitemap referenced from robots.txt.

    For your developer
    • robots: noindex,follow
    • robots: noindex,nofollow
    • pages with canonical: 0 of 16
    • crawled pages listed in sitemap: 0 of 16

    Google Search Central: SEO Starter Guide

  • major

    Core Web Vitals in the green

    Lab data: LCP 7465 ms, CLS 0.00, Total Blocking Time 1 ms. Slow, jumpy pages rank lower and lose visitors before they load.

    Fix→Shrink and preload the largest above-the-fold image, defer non-critical JavaScript, and reserve space for images and embeds to stop layout shift.

    For your developer
    • LCP (lab, mobile): 7464.99 ms (target 2500)
    • CLS: 0 (target 0.1)
    • Total Blocking Time (lab, stands in for INP): 1 ms (target 200)

    web.dev: Core Web Vitals thresholds (LCP 2.5 s, INP 200 ms, CLS 0.1)

  • minor

    Unique, descriptive titles and descriptions

    1 page(s) without a meta description. The title and description are your ad in search results. Missing or duplicate ones get fewer clicks.

    Fix→Write a unique title per page (main topic first, brand last, under about 60 characters) and a 120–160 character description that makes people want to click.

    For your developer
    • No meta description

    Google Search Central: Influencing title links in search results

  • minor

    Looks right when shared

    Missing og:title, og:description, og:image; shared links will look bare. Links shared without a preview image and description get far fewer clicks.

    Fix→Add og:title, og:description and a 1200 × 630 px og:image to every key page, and check them with a link preview tool.

    For your developer
    • No og:title
    • No og:description
    • No og:image

    Google Search Central: SEO Starter Guide

  • minor

    Images are light and described

    Image delivery can improve: Improve image delivery (Est savings of 523 KiB). Heavy images slow every page, especially on mobile data.

    Fix→Serve images as WebP or AVIF at the size they are shown, set width and height, and add loading="lazy" to images below the fold.

    For your developer
    • Improve image delivery (Est savings of 523 KiB)

    Google Search Central: SEO Starter Guide

UI

Poor 48/100

UI is where visitors struggle most. I'd start with "comfortable body text".

  • major

    Comfortable body text

    Body text: body 14px (desktop), body 12px (mobile), ≈89 characters per line (outside comfortable range). Small text, long lines and tight line spacing tire readers quickly, especially on phones.

    Fix→Set body text to at least 16 px, line length to 45–75 characters (max-width around 65ch) and line height to 1.4–1.6.

    For your developer
    • div.textpicturegrid > div.col:nth-of-type(1) > div.text-wrapper:nth-of-type(1) > div.text > p:nth-of-type(1) · ✗ body 14px (desktop) · ✗ body 12px (mobile) · ✗…

    Matthew Butterick: Practical Typography — line length, point size, line spacing

  • minor

    A deliberate type scale

    5 font families and 7 different sizes: the type has no clear system. Too many font sizes and families make a page feel unplanned and blur the difference between a heading and body text.

    Fix→Pick two families at most and a scale of six to eight sizes (for example 14, 16, 20, 25, 31, 39 px), then map every text style onto it.

    For your developer
    • font families (excl. icons): 5
    • distinct font sizes: 7 (target 8)
    • sizes on a modular scale: 100 %
    • Families: sans-serif, Overpass, Dancing Script, TheSerifC5-Bold, TheSerifC5-ExtraBold

    Adam Wathan & Steve Schoger: Refactoring UI — hierarchy, spacing systems, limited palettes

  • minor

    Snappy durations and natural easing

    6 transition(s) over 500 ms, 0 movement(s) with linear easing. Slow or linear animations make an interface feel sluggish; the right timing makes it feel responsive.

    Fix→Use 100–200 ms for small interactions and 200–400 ms for panels, ease-out for things entering, and nothing over 500 ms on a click path.

    For your developer
    • div.site:nth-of-type(2) > header.head > div.inner > div.logo:nth-of-type(2) · load: fadeInDownShortLogo 1000ms ease
    • #subhead2 > div.frame > div.inner > div.banner · load: fadeIn 2000ms ease
    • div.frame:nth-of-type(1) > div.inner > div.textpicturegrid > div.col:nth-of-type(1) > div.text-wrapper:nth-of-type(1) · load: fadeInUpShort 1000ms ease
    • div.frame:nth-of-type(1) > div.inner > div.textpicturegrid > div.col:nth-of-type(1) > div.image-wrapper:nth-of-type(2) · load: fadeInUpShort 1000ms ease

    Emil Kowalski: Design engineering & animation decision framework

  • minor

    Interactions feel direct

    33% of tested controls respond the moment they're pressed. Buttons that react a moment late feel unresponsive, even if the site is fast.

    Fix→Show a pressed state immediately (:active), open menus from the element that triggered them, and use CSS transitions so animations can be interrupted.

    For your developer
    • #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection · "Auswahl erlauben": no change until release
    • div.inner > div.banner > div.video:nth-of-type(1) > div.video-controls > button.pause:nth-of-type(1) · "Pause": no change until release
    • #CybotCookiebotDialogNavDeclaration · "Zustimmung": no change until release
    • #CybotCookiebotDialogNavDetails · "Details": changes on press (color, border-color)

    Apple: Designing Fluid Interfaces (WWDC 2018)

  • minor

    Spacing on a system

    82% of spacing values sit on a 5 px grid; text aligns to 7 left edges. Random spacing makes a layout feel slightly off even when visitors can’t say why.

    Fix→Choose a spacing base (4 or 8 px), define a short set of steps (8, 16, 24, 32, 48, 64), and replace one-off values with the nearest step.

    For your developer
    • spacing on 5 px grid: 82 % (target 80)
    • distinct left text edges: 7 (target 4)

    Adam Wathan & Steve Schoger: Refactoring UI — hierarchy, spacing systems, limited palettes

Copy

Poor 50/100

Copy is where visitors struggle most. I'd start with "c6 · buttons and links say what happens".

  • major

    C6 · Buttons and links say what happens

    6 vague button/link label(s); "mehr erfahren" leads to 3 different places. Labels like “Learn more” or “Click here” don’t say what happens, so people hesitate or skip them.

    Fix→Write every button and link as a verb plus what the visitor gets: “Book a call”, “See pricing”, “Download the guide”.

    For your developer
    • div.text_on_image > div.text:nth-of-type(2) > div.text_inner > p:nth-of-type(3) > a.button · "MEHR ERFAHREN" → https://steakhaus-kette.example/fileadmin/[brand]/…
    • div.article:nth-of-type(1) > div.text:nth-of-type(2) > div.text_inner > div.teaser-text:nth-of-type(2) > a.more · "mehr" → https://steakhaus-kette.example/[brand]…
    • div.textpictures_col:nth-of-type(1) > div.text-wrapper > div.text > p:nth-of-type(2) > a.button · "MEHR ERFAHREN" → https://steakhaus-kette.example/veranstaltungsra…
    • div.inner > div.ce-textpic > div.ce-bodytext > p.text-center:nth-of-type(2) > a.scrollto_graphic · "Mehr erfahren" → https://steakhaus-kette.example/veranstaltungsr…

    WCAG 2.2 SC 2.4.4

  • major

    C5 · Plain, readable language

    Harder to read than needed: Amstad 39 (aim ≥ 60); sentences average 22 words. Long sentences and difficult words lose readers, including experts reading on a phone.

    Fix→Aim for sentences under 20 words, prefer everyday words, write in the active voice, and explain any jargon the first time it appears.

    For your developer
    • Amstad (Flesch, German): 38.64
    • average sentence length: 22.02 words (target 20)

    plainlanguage.gov: Federal Plain Language Guidelines

Accessibility

Poor 50/100

Accessibility is where visitors struggle most. I'd start with "everything works with a keyboard".

  • critical

    Everything works with a keyboard

    8 interactive elements are not reachable with the keyboard. People who can’t use a mouse rely on the keyboard. Anything they can’t reach is something they can’t use.

    Fix→Use real <button> and <a href> elements for anything clickable, don’t remove them from the tab order, and add a “Skip to content” link.

    For your developer
    • focus stops: 122
    • unreachable controls: 8 (target 0)
    • backward jumps: 0 (target 1)
    • #CybotCookiebotDialogPoweredbyCybot · Not reachable with Tab: ""

    WCAG 2.2 SC 2.1.1, 2.1.2

  • major

    Focus is always visible

    0 focus stop(s) without a visible indicator, 58 hidden behind other elements, out of 122. Keyboard users need to see where they are. Without a visible focus outline they are navigating blind.

    Fix→Never remove the focus outline without a replacement. Add a clear :focus-visible style (for example a 2 px outline with 3:1 contrast) to every interactive element.

    For your developer
    • ul.nav > li.uid2:nth-of-type(1) > ul.subnav > li.uid38:nth-of-type(4) > a · Focus hidden behind #CybotCookiebotDialogHeader: "Karriere"
    • ul.nav > li.uid3:nth-of-type(2) > ul.subnav > li.uid20:nth-of-type(4) > a · Focus hidden behind #CybotCookiebotDialogPoweredbyLink: "Newsletter"
    • ul.nav > li.uid3:nth-of-type(2) > ul.subnav > li.uid40:nth-of-type(5) > a · Focus hidden behind #CybotCookiebotDialogHeader: "[brand]a"
    • ul.nav > li.uid3:nth-of-type(2) > ul.subnav > li.uid17:nth-of-type(6) > a · Focus hidden behind #CybotCookiebotDialogNavDeclaration: "Allergene & Nährwerte"

    WCAG 2.2 SC 2.4.7, 2.4.11

  • major

    Motion can be paused and calmed

    With "reduce motion" switched on, 8 of 8 animations still run. Moving content can make some people dizzy or unable to focus, and flashing can trigger seizures.

    Fix→Add a pause button to anything that moves for more than five seconds, avoid flashing, and turn off non-essential animation under prefers-reduced-motion.

    For your developer
    • animations at load: 8
    • with reduced motion: 8

    WCAG 2.2 SC 2.2.2, 2.3.1

  • major

    Survives zoom and custom text spacing

    4 text element(s) get cut off when people increase letter, word or line spacing. Many people zoom or enlarge text. If the layout breaks, content and buttons disappear for them.

    Fix→Use relative units and flexible layouts so the page works at 400% zoom and with larger letter and line spacing, without content being cut off.

    For your developer
    • page width at 320 px viewport: 320 px (target 320)
    • div.site:nth-of-type(2) > aside.stickybuttons > a.link:nth-of-type(1) · Text clipped with WCAG text spacing: "Restaurants"
    • div.site:nth-of-type(2) > aside.stickybuttons > a.link:nth-of-type(2) · Text clipped with WCAG text spacing: "Speisen"
    • div.site:nth-of-type(2) > aside.stickybuttons > a.link:nth-of-type(3) · Text clipped with WCAG text spacing: "Reservieren"

    WCAG 2.2 SC 1.4.4, 1.4.10

  • minor

    Predictable across pages

    Navigation order differs on 15 of 15 pages. When navigation moves around between pages, people relying on memory or assistive tech lose their way.

    Fix→Keep navigation in the same place and order on every page, and don’t change context automatically when a field gets focus or input.

    For your developer
    • Navigation differs from the homepage

    WCAG 2.2 SC 3.2.1, 3.2.2

  • minor

    Structure is real, not just visual

    1 skipped heading level(s). Screen reader users jump by headings and landmarks. A page without real structure is one long stream.

    Fix→Use one <h1>, nest headings in order (h2 under h1, h3 under h2), and wrap the page in <header>, <nav>, <main> and <footer>.

    For your developer
    • h1 count: 1 (target 1)
    • Skipped heading level: h3 → h5 "RESTAURANTS"

    WCAG 2.2 SC 1.3.1, 1.3.2

Conversion

Not checked yet 11% measured

Conversion is where visitors struggle most. I'd start with "fast on a phone".

  • major

    Fast on a phone

    Landing page: LCP 7.5 s, 44.8 MB on mobile. Later funnel steps are measured by the funnel walk. On phones, every extra second of loading costs conversions.

    Fix→Get mobile LCP under 2.5 s and pages under 2 MB: compress images, cut unused scripts and fonts, and lazy-load what’s below the fold.

    For your developer
    • LCP (mobile, lab): 7464.99 ms (target 2500)
    • page weight: 44.8 MB (target 2)

    web.dev: Core Web Vitals thresholds (LCP 2.5 s, INP 200 ms, CLS 0.1)

UX

Not checked yet 29% measured

UX is where visitors struggle most. I'd start with "one action, one name".

  • major

    One action, one name

    37 page(s) reached under different names; 8 label(s) leading to different pages. When one destination has several names, or one name leads to different places, visitors stop trusting the navigation and second-guess every click.

    Fix→Give every destination one label and use it everywhere: menu, buttons, footer and page title. Rename or remove the duplicates the audit found.

    For your developer
    • "restaurants" ×54, "restaurantfinder" ×50, "ihr [brand] restaurant" ×1, "[brand] steakhäuser" ×1, "lieblingssteakhouse" ×1, "zum inhalt springen" ×1, "…
    • "essen mit kindern" ×48, "kinderspeisekarte" ×1, "zum inhalt springen" ×1
    • "karriere" ×49, "jobs" ×1, "komm wir gehen zu [brand]" ×2, "karriere starten" ×2, "hier" ×1, "zum inhalt springen" ×1
    • "speisekarte" ×54, "monatsaktion" ×50, "allergene nährwerte" ×48, "unsere steakhouse speisekarte" ×1, "zur speisekarte" ×1, "aus unserer speisekarte" ×2, "zur…

    Jakob Nielsen, NN/g: 10 Usability Heuristics for User Interface Design

  • minor

    Mobile is a first-class experience

    First action 0.8 screens down; 4 key button(s) under 44px tall. Most visits are on phones. Small tap targets and actions pushed far down make the mobile site feel second-class.

    Fix→Make primary buttons at least 44 px tall, bring the main action into the first screen on mobile, and check that nothing overflows sideways.

    For your developer
    • #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll · First prominent action "Cookies zulassen" at 0.8 screens down, 344×51px
    • div.inner > div.banner > div.text:nth-of-type(2) > div.buttonlist:nth-of-type(2) > a.button:nth-of-type(1) · 41px tall: "RESTAURANTS"
    • div.inner > div.banner > div.text:nth-of-type(2) > div.buttonlist:nth-of-type(2) > a.button:nth-of-type(2) · 41px tall: "RESERVIEREN"
    • div.inner > div.banner > div.text:nth-of-type(2) > div.buttonlist:nth-of-type(2) > a.button:nth-of-type(3) · 41px tall: "ONLINESHOP"

    NN/g: Mobile UX guidelines (touch targets, content priority)

Your 30-minute plan

0 of 11 done

Small fixes with a big pay-off. Tick them off as you go.

That's it from me. Make a few changes, run me again, and I'll tell you what moved.

Run your own audit