ogjg.nl
Beter dan 9% (landelijk)
Beter dan 55% (landelijk)
Beter dan 18% (landelijk)
Beter dan 0% (landelijk)
Machineleesbare verificatie: /api/verify/ogjg.nl
Gekeurd op 11 september 2026 · 17 pagina's gecontroleerd · 16 verbeterpunten gevonden
Score door de tijd
Elke keuring en herkeuring telt: dit is het verloop van de gemiddelde score per scandag.
Scan-tijdlijn
Scores per pijler over recente scans. Methodiekwijzigingen (andere engine-versie) staan bij het punt.
11 september 2026 · Full audit
Engine unknown
47Snelheid 19Veiligheid 69Mobiel 100Toegankelijkheid 09 augustus 2026 · Full audit
Engine unknown
47Snelheid 18Veiligheid 69Mobiel 100Toegankelijkheid 09 juli 2026 · Full audit
50Snelheid 21Veiligheid 79Mobiel 100Toegankelijkheid 0
Volledig keurmerkrapport
Onderdeel van het WebYes-keurmerk: naast de vier pijlers keuren we ook SEO, structured data, content, links, privacy en AI-vindbaarheid. Deze extra categorieën tellen niet mee in de keurmerkscore.
Onderzochte pagina's
Steekproef van 15 pagina's (niet elke URL op de site).
- https://ogjg.nl/
- https://www.oudgeleerdjonggedaan.nl/over-ons/minimaregeling-voor-senioren
- https://www.oudgeleerdjonggedaan.nl/over-ons/vacatures
- https://www.oudgeleerdjonggedaan.nl/veelgestelde-vragen
- https://www.oudgeleerdjonggedaan.nl/contact
- https://www.oudgeleerdjonggedaan.nl/studentdocent
- https://www.oudgeleerdjonggedaan.nl/colleges/online
- https://www.oudgeleerdjonggedaan.nl/colleges/op-locatie
- https://www.oudgeleerdjonggedaan.nl/organisaties
- https://www.oudgeleerdjonggedaan.nl/organisaties/bibliotheken
- https://www.oudgeleerdjonggedaan.nl/organisaties/onderwijsinstellingen
- https://www.oudgeleerdjonggedaan.nl/organisaties/zorg-en-welzijnsorganisaties
- https://www.oudgeleerdjonggedaan.nl/evenementen
- https://www.oudgeleerdjonggedaan.nl/evenement/leef-tijd
- https://www.oudgeleerdjonggedaan.nl/over-ons
Verschil met vorige audit
9 augustus 2026 → 11 september 2026
Opgelost (1)
- 3 insecure HTTP resource(s) referenced from an HTTPS page.https://www.oudgeleerdjonggedaan.nl/colleges/online/
Bevindingen
- FoutToegankelijkheidAutomatisch gecontroleerd
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.
Zo los je het op
Koppel elk formulierveld aan een label via for/id, of gebruik aria-label. Een placeholder alleen is niet genoeg: die verdwijnt zodra iemand typt.
- FoutToegankelijkheidAutomatisch gecontroleerd
1 <button> element(s) have no accessible name.
Add visible text content, aria-label="...", or aria-labelledby="..." to every <button>.
Zo los je het op
Er zijn knoppen zonder naam, zoals een hamburger- of sluitknop met alleen een icoon. Voeg een aria-label toe (bijvoorbeeld aria-label="Menu openen").
- FoutToegankelijkheidAutomatisch gecontroleerd
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.
Zo los je het op
Er zijn links zonder leesbare naam, meestal icoon-links. Geef ze een aria-label of visueel verborgen tekst, zodat een schermlezer meer voorleest dan alleen 'link'.
- FoutSpam-signalen
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.
- WaarschuwingSnelheid
47 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.
Zo los je het op
Verklein je render-blokkerende CSS: inline de kritieke stijlen voor boven de vouw en laad de rest asynchroon. Verwijder ook CSS die nergens meer gebruikt wordt.
- WaarschuwingSnelheid
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.
Zo los je het op
Geef script-tags in de head een defer- of async-attribuut, of verplaats ze naar het einde van de body. Nu blokkeren ze het opbouwen van de pagina.
- WaarschuwingSnelheid
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.
Zo los je het op
Haal loading="lazy" weg van de grootste afbeelding boven de vouw. Lazy loading stelt juist die download uit en maakt je LCP langzamer.
- WaarschuwingSnelheid
Critical-path payload too heavy: 2 budgets breached simultaneously.
Breaches: 47 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.
- WaarschuwingSnelheid
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.
Zo los je het op
Geef elke afbeelding een width- en height-attribuut (of CSS aspect-ratio). De browser reserveert dan ruimte en de pagina verspringt niet tijdens het laden (CLS).
- WaarschuwingToegankelijkheidAutomatisch gecontroleerd
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">.
- WaarschuwingVeiligheid
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.
Zo los je het op
Voeg een Content-Security-Policy header toe die vastlegt welke bronnen scripts en stijlen mogen laden. Begin desnoods met een rapporterende policy (Content-Security-Policy-Report-Only) en scherp die daarna aan.
- WaarschuwingSEO on-page
Title is too long (81 chars, max 60); will be truncated in SERPs.
Trim to ~60 characters and keep the most important keywords on the left.
- WaarschuwingSEO on-page
Page has multiple <h1> tags (2).
Consolidate to a single <h1> per page; use <h2>-<h6> for subsections.
- WaarschuwingSEO on-page
Page has no rel=canonical link.
Add <link rel="canonical" href="..."> to the page's preferred URL.
- WaarschuwingStructured 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.
- WaarschuwingContent
Page has only 85 words (min 100).
Thin pages risk being classified as low-value. Expand with original, useful content — lead each H2 with a self-contained 40-75 word answer, and add a visible FAQ/Q&A section covering common questions (no FAQPage schema needed; visible Q&A is what ranks and what AI Overviews cite). Or noindex if it's a utility page.
- WaarschuwingSpam-signalen
Term "colleges" appears unusually often (10×, 4% of words).
Rewrite for natural language — repeated exact-match phrases can trigger spam classifiers.
- InfoSnelheid
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.
Zo los je het op
Geef je grootste afbeelding boven de vouw voorrang met fetchpriority="high" of een preload-link. Zo start de download direct in plaats van na de rest van de pagina.
- InfoSnelheid
3 image(s) declare dimensions > 2000px in HTML.
Images with declared dimensions over 2000px likely serve unresized originals. Resize server-side or use an image CDN (Cloudinary, imgix, Vercel OG) to serve appropriately sized variants. Large images waste bandwidth and slow decoding.
Zo los je het op
Er worden afbeeldingen geladen die (veel) groter zijn dan hun weergaveformaat. Genereer meerdere formaten en gebruik srcset, zodat mobiel niet de desktopversie downloadt.
- InfoSnelheid
Likely unminified JS/CSS: 6 inline blocks + 19 external files.
Minify JavaScript and CSS to cut bytes and parse time. Examples: https://www.oudgeleerdjonggedaan.nl/wp-content/plugins/official-facebook-pixel/core/../js/facebook_signal.js, https://js.mollie.com/v1/mollie.js?ver=1.8.2, https://pretix.eu/widget/v2.nl.js (heuristic — external file contents are not fetched)
Zo los je het op
CSS- of JavaScript-bestanden worden ongeminified geserveerd. Zet minificatie aan in je buildproces; vrijwel elke bundler doet dit standaard in productie.
- InfoVeiligheid
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`.
Zo los je het op
Voeg Cross-Origin-Opener-Policy: same-origin toe (en waar mogelijk Cross-Origin-Embedder-Policy). Dit isoleert je site van vensters die door andere origins zijn geopend.
- InfoVeiligheid
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).
Zo los je het op
Voeg Cross-Origin-Resource-Policy: same-origin (of same-site) toe aan je responses, zodat andere sites je bestanden niet zomaar kunnen insluiten.
- InfoVeiligheid
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.
- InfoSEO on-page
Heading level jumps from h1 to h3, skipping h2.
- InfoSEO on-page
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.
- InfoSEO on-page
Page declares noindex; it will not be indexed.
Remove noindex if this page should appear in search results.
- InfoContent
Text-to-HTML ratio is 1.3% (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.
- InfoTechniek
Crawl stopped at the max-pages limit (15); 673 sitemap URLs were not visited but might still be reachable.
Re-run with `--max-pages 2000` (or higher) before trusting orphan-from-sitemap counts.
- InfoTechniek
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.
- InfoKwaliteitsindruk
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.
- InfoPrivacy
2 phone-shaped string(s) appear in main content. Examples: 854048765, 0006508350.
If the phone numbers are intentional public contact info, ignore this finding. If they're personal numbers (employees, customer testimonials), redact or replace with a routing alias.
Meer uit het keurmerkregister
Andere websites met een actief WebYes-keurmerk. Elk rapport is openbaar en op dezelfde vier pijlers gekeurd.