Skip to content
Start free scan
Public reportCertified until 8 July 2027

ogjg.nl

Visit ogjg.nl ↗

Speed
21
Security
79
Mobile
100
Accessibility
0
Average score
50/ 100
Better than 8% of the 13 scanned sites
No mark yet

Certified on 9 July 2026 · 8 pages checked · 16 improvements found

Full audit

Part of the WebYes certification: beyond the four pillars we also audit SEO, structured data, content, links, privacy and AI findability. These extra categories do not count towards the certification score.

Spam signals
0
Content
87
On-page SEO
92
Technical
98
Structured data
99
Quality impression
99
Links
100
AI findability (GEO)
100
URL structure
100
Social
100
Privacy
100
Legal
100

Findings (28)

  • ErrorAccessibility

    1 <input> element(s) have no associated label, aria-label, or aria-labelledby.

    Associate a <label for="inputId"> or add aria-label="..." to every visible form input.

    How to fix it

    Link every form field to a label via for/id, or use aria-label. A placeholder alone is not enough: it disappears as soon as someone types.

    Read more in the knowledge base: WCAG guidelines →

  • ErrorAccessibility

    1 <button> element(s) have no accessible name.

    Add visible text content, aria-label="...", or aria-labelledby="..." to every <button>.

    How to fix it

    Some buttons have no name, such as a hamburger or close button with only an icon. Add an aria-label (for example aria-label="Open menu").

    Read more in the knowledge base: WCAG guidelines →

  • ErrorAccessibility

    14 link(s) have no accessible name (no text, aria-label, or title).

    Add visible link text or aria-label to every <a> element so screen readers can announce the destination.

    How to fix it

    Some links have no readable name, usually icon links. Give them an aria-label or visually hidden text so a screen reader announces more than just 'link'.

    Read more in the knowledge base: WCAG guidelines →

  • ErrorSpam signals

    Page CSS/HTML suggests hidden/off-screen text patterns often associated with cloaking.

    Remove display:none / zero-font-size blocks used to inject extra keywords. Use visible, user-facing content only.

  • WarningSpeed

    48 render-blocking <link rel="stylesheet"> in <head> (target: ≤2).

    Inline critical CSS, lazy-load the rest with the `<link rel="preload" as="style" onload="this.rel='stylesheet'">` pattern, or split chunks per route. Each blocking stylesheet adds round-trips to LCP.

    How to fix it

    Reduce render-blocking CSS: inline the critical above-the-fold styles and load the rest asynchronously. Also remove CSS that is no longer used anywhere.

    Read more in the knowledge base: Testing website speed →

  • WarningSpeed

    1 parser-blocking <script src> in <head> (no defer/async).

    Add `defer` or `async` to every external <script> in <head>. Parser-blocking scripts directly inflate INP and TBT.

    How to fix it

    Give script tags in the head a defer or async attribute, or move them to the end of the body. Right now they block page rendering.

    Read more in the knowledge base: Testing website speed →

  • WarningSpeed

    Likely LCP image has `loading="lazy"` — this is a known anti-pattern.

    Remove `loading="lazy"` from the hero image (https://www.oudgeleerdjonggedaan.nl/wp-content/uploads/2025/01/icon-locaties.svg). Lazy-loading the LCP image delays it until intersection-observer fires.

    How to fix it

    Remove loading="lazy" from the largest above-the-fold image. Lazy loading delays exactly that download and slows down your LCP.

    Read more in the knowledge base: Core Web Vitals →

  • WarningSpeed

    Critical-path payload too heavy: 2 budgets breached simultaneously.

    Breaches: 48 blocking <link rel="stylesheet">; 1 blocking <script src> without defer/async. Each one alone is borderline; together they translate to a multi-second LCP on slow networks. Inline only the above-the-fold critical CSS, defer everything else, and split route-specific bundles.

    Read more in the knowledge base: Core Web Vitals →

  • WarningSpeed

    8 image(s) lack explicit width/height or aspect-ratio, risking layout shifts.

    Examples: https://www.oudgeleerdjonggedaan.nl/wp-content/uploads/2025/01/icon-locaties.svg, https://www.oudgeleerdjonggedaan.nl/wp-content/uploads/2025/12/Aafje.png, https://www.oudgeleerdjonggedaan.nl/wp-content/uploads/2025/12/Amtelring.png. Always set width and height attributes (or CSS aspect-ratio) on <img> so the browser reserves space before the image loads. In Next.js, use the `width`/`height` props or `fill` with a sized parent.

    How to fix it

    Give every image a width and height attribute (or CSS aspect-ratio). The browser then reserves space and the page does not shift while loading (CLS).

    Read more in the knowledge base: Core Web Vitals →

  • WarningAccessibility

    13 image(s) with alt="" lack role="presentation" or aria-hidden="true".

    Mark decorative images explicitly: <img alt="" role="presentation"> or <img alt="" aria-hidden="true">.

    Read more in the knowledge base: WCAG guidelines →

  • WarningSecurity

    No Content-Security-Policy header — XSS / clickjacking surface is wide open.

    Start with a strict-dynamic CSP using nonces: `Content-Security-Policy: script-src 'nonce-<...>' 'strict-dynamic'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'`. Roll out in `Content-Security-Policy-Report-Only` first to catch violations.

    How to fix it

    Add a Content-Security-Policy header that defines which sources may load scripts and styles. Start with a report-only policy if needed and tighten it from there.

    Read more in the knowledge base: Security headers →

  • WarningOn-page SEO

    Title is too long (78 chars, max 60); will be truncated in SERPs.

    Trim to ~60 characters and keep the most important keywords on the left.

  • WarningOn-page SEO

    Page has multiple <h1> tags (2).

    Consolidate to a single <h1> per page; use <h2>-<h6> for subsections.

  • WarningStructured data

    Page looks like a watch page (1 content video, 0 words) but has no VideoObject structured data.

    This page reads as a dedicated watch page (one video, minimal other text). Add a VideoObject JSON-LD block (name, description, thumbnailUrl, contentUrl, uploadDate, duration, url/embedUrl pointing at this page) so Google can index it as a video result. If the clip is only supplementary (e.g. a homepage promo), keep it inline without schema instead.

  • WarningContent

    Title overlaps significantly with 2 other page(s).

    Differentiate titles to avoid cannibalisation. Similar pages: https://www.oudgeleerdjonggedaan.nl/colleges/online/, https://www.oudgeleerdjonggedaan.nl/colleges/op-locatie/

  • WarningSpam signals

    Term "colleges" appears unusually often (12×, 5% of words).

    Rewrite for natural language — repeated exact-match phrases can trigger spam classifiers.

  • InfoSpeed

    Likely LCP image is missing `fetchpriority="high"`.

    Add `fetchpriority="high"` to the hero image (https://www.oudgeleerdjonggedaan.nl/wp-content/uploads/2025/01/icon-locaties.svg) so the browser fetches it ahead of low-priority resources. Saves 100-300ms LCP on typical pages.

    How to fix it

    Prioritise your largest above-the-fold image with fetchpriority="high" or a preload link. The download then starts immediately instead of after the rest of the page.

    Read more in the knowledge base: Core Web Vitals →

  • InfoSpeed

    4 image(s) ≥800px wide without srcset or <picture> for responsive delivery.

    Use `srcset` with multiple resolutions or wrap images in `<picture>` with WebP/AVIF sources. In Next.js, use `next/image` which handles this automatically. Without responsive images, mobile users download desktop-sized assets.

    How to fix it

    Serve images in a modern format (WebP or AVIF), scaled to the size at which they are displayed. An image service or build step (such as next/image) handles this automatically.

    Read more in the knowledge base: Core Web Vitals →

  • InfoSpeed

    Likely unminified JS/CSS: 6 inline blocks + 17 external files.

    Minify JavaScript and CSS to cut bytes and parse time. Examples: https://js.mollie.com/v1/mollie.js?ver=1.8.2, https://pretix.eu/widget/v2.nl.js, https://www.oudgeleerdjonggedaan.nl/wp-content/plugins/talkie-text-to-speech//js/scripts.js (heuristic — external file contents are not fetched)

    How to fix it

    CSS or JavaScript files are served unminified. Enable minification in your build process; virtually every bundler does this by default in production.

    Read more in the knowledge base: Testing website speed →

  • InfoSecurity

    Missing `Cross-Origin-Opener-Policy` + `Cross-Origin-Embedder-Policy`. Cross-origin isolation lets you use SharedArrayBuffer and high-resolution timers safely.

    Send `Cross-Origin-Opener-Policy: same-origin` and `Cross-Origin-Embedder-Policy: require-corp`. Note this requires every embedded resource to send `Cross-Origin-Resource-Policy`.

    How to fix it

    Add Cross-Origin-Opener-Policy: same-origin (and where possible Cross-Origin-Embedder-Policy). This isolates your site from windows opened by other origins.

    Read more in the knowledge base: Security headers →

  • InfoSecurity

    No `Cross-Origin-Resource-Policy` header. Without it, side-channel attacks via Spectre-style speculative execution stay viable.

    Send `Cross-Origin-Resource-Policy: same-origin` for HTML responses, and `cross-origin` for assets you intentionally publish (e.g. fonts, JS bundles).

    How to fix it

    Add Cross-Origin-Resource-Policy: same-origin (or same-site) to your responses so other sites cannot freely embed your files.

    Read more in the knowledge base: Security headers →

  • InfoSecurity

    robots.txt Disallow lines reveal sensitive paths: /wp-admin/.

    Listing a path under `Disallow:` doesn't hide it — it advertises it. Either move the resource behind auth and remove the Disallow line, or stop linking the path entirely so it never gets indexed.

    Read more in the knowledge base: Security headers →

  • InfoOn-page SEO

    Heading level jumps from h1 to h3, skipping h2.

  • InfoOn-page SEO

    8/25 images lack explicit width/height or aspect-ratio (CLS risk).

    Set width+height attributes, or use `style="aspect-ratio: w / h"` on the <img> or its wrapper to reserve layout space.

  • InfoContent

    Text-to-HTML ratio is 1.4% (target ≥ 2%).

    Very low ratios usually mean the hydration payload, inline RSC blob or a vendor script is bigger than the rendered prose. Inspect the largest scripts and externalise or split them.

  • InfoTechnical

    Crawl stopped at the max-pages limit (6); 671 sitemap URLs were not visited but might still be reachable.

    Re-run with `--max-pages 2000` (or higher) before trusting orphan-from-sitemap counts.

  • InfoTechnical

    No HTML sitemap link found on the homepage. Placing one in the footer is an industry best practice for UX and crawler/AI discovery.

    Add a link to a user-facing HTML sitemap (e.g. `/sitemap`, not `sitemap.xml`) inside the <footer>. An HTML sitemap acts as a structural overview for lost visitors and as a fallback discovery surface for search engines and AI crawlers.

  • InfoQuality impression

    Homepage has no `<link rel="icon">` — browsers will request /favicon.ico which may 404.

    Add a custom favicon that reflects your brand. A missing favicon causes extra 404 log noise and looks unprofessional in browser tabs and bookmarks.

Full audit performed on 9 July 2026.

More from the register

Other websites holding an active WebYes certification. Every report is public and audited on the same four pillars.

mgsoftware.nl✓ Certified

Score 82 / 100 · view the report →

domeinflits.nl✓ Certified

Score 90 / 100 · view the report →

solarfast.nl✓ Certified

Score 94 / 100 · view the report →

webyes.nl✓ Certified

Score 94 / 100 · view the report →

Scan your own websiteView the certification register →
webyes

Het onafhankelijke keurmerk voor Nederlandse websites. Kalm, transparant, jaarlijks herkeurd.

Start gratis scan

Keurmerk

  • Start gratis scan
  • Hoe het werkt
  • Keurmerkregister
  • Prijzen
  • Veelgestelde vragen

Kennis

  • Kennisbank
  • Blog
  • Jaarrapport

Bedrijf

  • Over ons
  • Contact
  • Mijn account

Juridisch

  • Privacybeleid
  • Algemene voorwaarden
  • Cookies
© 2026 WebYesGebouwd in Nederland.

Jaarrapport in de maak. In de maak: het jaarrapport over de staat van het Nederlandse web. Lees meer →

webyes
WerkwijzePrijzenRegisterKennisbankOver ons
InloggenStart gratis scan