Website quality, measured.

How quickly WiFi.ee loads, how accessible it is, and what protects a visit. These are dated measurements of the website; hotspot connection speeds are listed in the hotspot directory.

Measured · next.wifi.ee · Public pages, signed out

This is a baseline, including open issues. Automated accessibility checks do not establish WCAG conformance. Security observations are not a penetration test. Real-user Core Web Vitals and carbon emissions have not been measured.

Priority: critical dependency advisory. npm flags the committed Next.js version as affected. Update to a patched release and verify deployment. Exploitability of the running site has not been tested. See security evidence.

Performance

Lighthouse measures page loading in a controlled Chrome lab test. Each homepage result is the median of three runs. Other page types have one run per device profile. A higher score is better; load times vary with device, network, server cache and location.

Homepage · Estonian / Mobile

Performance68 / 100
Accessibility96 / 100
Best practices69 / 100
SEO100 / 100

Homepage · Estonian / Desktop

Performance79 / 100
Accessibility92 / 100
Best practices73 / 100
SEO100 / 100
All measured page types
Page / profilePerformanceAccessibilityBest practicesSEOLCPCLSTBT
Homepage · EstonianMobile · 3 run(s) · performance range 51–836896691004.01 s0.13760 ms
Homepage · EstonianDesktop · 3 run(s) · performance range 57–817992731002.21 s0.0040 ms
Homepage · EnglishMobile · 3 run(s) · performance range 64–929296691002.01 s026 ms
Homepage · EnglishDesktop · 3 run(s) · performance range 60–907492731002.09 s0.0030 ms
Hotspot directoryMobile · 1 run(s) · performance range 71–71719596921.54 s01,039 ms
Hotspot directoryDesktop · 1 run(s) · performance range 85–8585951001001.94 s0.00663 ms
Hotspot detailMobile · 1 run(s) · performance range 88–888892961002.33 s0282 ms
Hotspot detailDesktop · 1 run(s) · performance range 89–8989921001000.99 s0.0030 ms

LCP measures when the largest visible element appears; CLS measures unexpected layout movement; TBT measures main-thread blocking in the lab. Reference targets are LCP ≤ 2.5 s and CLS ≤ 0.1. Real-user INP is not available from this test, so this report does not claim a Core Web Vitals pass.

Loading and best-practice findings

These checks failed in at least one retained Lighthouse run. Open the individual reports below for the affected pages and estimates.

  • Reduce unused JavaScript (unused-javascript)
  • Improve image delivery (image-delivery-insight)
  • Use efficient cache lifetimes (cache-insight)
  • Document request latency (document-latency-insight)
  • Requests the geolocation permission on page load (geolocation-on-start)
  • Uses third-party cookies (third-party-cookies)
  • Issues were logged in the `Issues` panel in Chrome Devtools (inspector-issues)
  • Elements with visible text labels do not have matching accessible names. (label-content-name-mismatch)

Accessibility

The axe scans found 4 distinct failing rules across 12 page/profile observations. Counts below are rule types, not a count of people affected or every WCAG criterion. Incomplete rules require human review.

axe WCAG 2.2 AA automated checks
Page / profileFailing rulesAffected elementsNeeds review
Homepage · EstonianMobile1112
Homepage · EstonianDesktop2122
Homepage · EnglishMobile1112
Homepage · EnglishDesktop2122
Hotspot directoryMobile112
Hotspot directoryDesktop122
Hotspot detailMobile223
Hotspot detailDesktop224
Mobile appMobile002
Mobile appDesktop112
Privacy policyMobile122
Privacy policyDesktop232

Baseline findings

Elements must meet minimum color contrast ratio thresholds (6 observations)

Rule explanation and remediation · color-contrast · serious

  • Homepage · Estonian / Mobile: 11 elements
  • Homepage · Estonian / Desktop: 11 elements
  • Homepage · English / Mobile: 11 elements
  • Homepage · English / Desktop: 11 elements
  • Hotspot detail / Mobile: 1 elements
  • Hotspot detail / Desktop: 1 elements
ARIA hidden element must not be focusable or contain focusable elements (6 observations)

Rule explanation and remediation · aria-hidden-focus · serious

  • Homepage · Estonian / Desktop: 1 elements
  • Homepage · English / Desktop: 1 elements
  • Hotspot directory / Mobile: 1 elements
  • Hotspot directory / Desktop: 2 elements
  • Mobile app / Desktop: 1 elements
  • Privacy policy / Desktop: 1 elements
Form elements must have labels (2 observations)

Rule explanation and remediation · label · critical

  • Hotspot detail / Mobile: 1 elements
  • Hotspot detail / Desktop: 1 elements
Links must be distinguishable without relying on color (2 observations)

Rule explanation and remediation · link-in-text-block · serious

  • Privacy policy / Mobile: 2 elements
  • Privacy policy / Desktop: 2 elements

Reflow: 6 of 6 desktop-browser observations overflowed at 320 or 720 CSS pixels. Keyboard: 6 unnamed control stops were observed in the first 12 Tab stops per sample. These are limited checks; absence of these symptoms is not a full keyboard or zoom pass.

Still needed: VoiceOver/NVDA testing, complete keyboard journeys including dialogs and forms, text-only enlargement and 200–400% browser zoom, dark-mode contrast, and a review of content alternatives. The browser recognized the reduced-motion preference; animation behavior needs a separate manual check.

Security

The checks below observe the transport and browser protections visible on public pages. They do not evaluate account permissions, private data access, backups, incident response or application vulnerabilities.

  • TLS certificate: verified by Node’s trust store · TLSv1.3 · expires Dec 9 20:32:32 2026 GMT.
  • HTTP → HTTPS: 308 · https://next.wifi.ee/.
  • HTTP resources observed in HTTPS pages: 0.
Protections observed on sampled document responses
ProtectionObservedPurpose
HSTS12 / 12PresentKeeps returning browsers on HTTPS.
Content-Security-Policy0 / 12Needs attentionRestricts sources of scripts and other content. Policy strength needs separate review.
X-Content-Type-Options: nosniff0 / 12Needs attentionPrevents browsers from guessing a different content type.
Framing protection0 / 12Needs attentionX-Frame-Options or CSP frame-ancestors can restrict embedding.
Referrer-Policy0 / 12Needs attentionHTTP policy; the document’s meta policy is reported separately.
Permissions-Policy0 / 12Needs attentionLimits access to browser capabilities such as camera and microphone.

Documents can also set a referrer policy in HTML. Observed meta policies: origin-when-cross-origin.

Production dependency advisory check (2026-10-23, f8a53593): info: 0, low: 0, moderate: 0, high: 0, critical: 1. This checks the committed lockfile against npm advisories, not the exact deployed dependency tree or undisclosed vulnerabilities.

Dependency findings and patch versions

Including development tooling: info: 0, low: 0, moderate: 0, high: 5, critical: 1.

Next steps: introduce and test a restrictive CSP, set missing defensive headers, and verify that authentication, embeds and browser permissions still work. Any header change needs functional testing before deployment.

Privacy on a first visit

Fresh browser contexts were observed before any consent choice. Cookies are listed by name and domain only; their values are not published. Cross-origin requests may provide authentication or other functionality and are not automatically evidence of tracking.

Cookies present in sampled fresh contexts
NameDomainSecureHttpOnlySameSite
wifi_languagenext.wifi.eeNoNoLax
__cf_bm.img.clerk.comYesYesNone
__client.clerk.wifi.eeYesYesLax
__client_uat.wifi.eeYesNoLax
__client_uat_4sCzUxpj.wifi.eeYesNoLax
_cfuvid.clerk.wifi.eeYesYesNone
__cf_bm.clerk.wifi.eeYesYesNone
Cross-origin services contacted before consent (8)
  • https://clerk.wifi.ee
  • https://img.clerk.com
  • https://client.wifi.ee
  • https://fonts.googleapis.com
  • https://maps.googleapis.com
  • https://maps.gstatic.com
  • https://unpkg.com
  • https://fonts.gstatic.com

A consent accept/reject journey, persistence across visits, and legal classification of cookies have not been assessed. The language preference cookie is readable by JavaScript and was observed without a Secure flag; it does not contain an authentication credential.

Data transfer and environmental impact

Smaller pages cost visitors less data and can reduce the work done by networks and devices. These are observed transfers during an unthrottled fresh visit, not an energy or emissions measurement. Lazy-loaded content below the viewport is outside the capture window.

Transferred data, five seconds after page load
Page / profileTotal KiBScripts KiBImages KiBRequestsUnfinished
Homepage · EstonianMobile1,005572361372
Homepage · EstonianDesktop2,9265722,276606
Homepage · EnglishMobile1,008572361370
Homepage · EnglishDesktop2,7083622,276451
Hotspot directoryMobile1,489992401875
Hotspot directoryDesktop1,30699120410810
Hotspot detailMobile1,098780245463
Hotspot detailDesktop1,6291,00344210917
Mobile appMobile782567146341
Mobile appDesktop7445671114712
Privacy policyMobile6415704344
Privacy policyDesktop64557045213

KiB = 1,024 bytes. Failed and unfinished requests, browser timing, and third-party services can change the result. No green-hosting verification or carbon grade is claimed. Compare future snapshots with the same routes, viewport, tools and capture window.

Method and evidence

Where and when

Collected from Taiwan against the public next.wifi.ee deployment. The older wifi.ee site is a separate website and was not included in the scores. This is not a before/after comparison.

— (UTC).

Tools and profiles

Chrome 155.0.8059.85; Lighthouse 13.4.1; axe-core 4.13.0; Playwright 1.62.1. Browser observations: 390 × 844 / 1440 × 900. Lighthouse uses its own mobile and desktop presets; exact settings are in the JSON.

How to interpret

New browser storage for every sample; hosting caches may be warm. Homepage medians are calculated independently for each metric and category. Results describe these URLs at this time and do not guarantee future performance or site-wide conformance.

Download and reproduce

Download complete measurement JSON

Read the method and reproduction instructions

Download the measurement script

Individual Lighthouse reports
SEO and discovery checks
  • /robots.txt: HTTP 200
  • /sitemap.xml: HTTP 200
  • /.well-known/security.txt: HTTP 404

Lighthouse SEO scores are shown above. Canonical URLs, language tags, descriptions and heading counts for each sampled page are retained in the JSON. Search-engine indexing and ranking are not verified by this audit.

Standards and guidance: Lighthouse, WCAG conformance, OWASP HTTP headers, Core Web Vitals.