Audit

20260629T130515Z-b9e1

← Back to gigaehitusgotoandsupport
Audited URL
https://gigaehitus.gotoand.support/
Timestamp
2026-06-29T13:06:55.720Z
Kind
site
Pages
1
Audit summary
https://gigaehitus.gotoand.support/
1 of 1 pages audited
Pagespeed scores
Other checks
LLM Report

Weighted audit summary

30
Overall site quality
Poorhigh confidence

Site overall 30 is the mean of 1 page. PSI mobile 94 indicates fast rendering, but HTTP 401 Unauthorized blocks public access, constituting a core functional failure. Security headers score 0/100 with missing HSTS and compression, creating significant risk. Accessibility has 1 serious color-contrast violation and missing main landmarks. SEO is weakened by missing meta descriptions and three H1 tags. The score reflects the critical availability issue despite decent lab performance metrics.

Audit Report: Viga 401 - Error 401 | Veebimajutus.ee

Website: https://gigaehitus.gotoand.support/
Date: 2026-06-29

Overall Score: 30 / 100
Status: 🟠 Poor
Confidence: high
Audit Coverage: 100% — all sources returned data

Pages Audited (1 of 1):

Summary

Site overall 30 is the mean of 1 page. PSI mobile 94 indicates fast rendering, but HTTP 401 Unauthorized blocks public access, constituting a core functional failure. Security headers score 0/100 with missing HSTS and compression, creating significant risk. Accessibility has 1 serious color-contrast violation and missing main landmarks. SEO is weakened by missing meta descriptions and three H1 tags. The score reflects the critical availability issue despite decent lab performance metrics.

Per-Page Scores

Page Score Status Confidence
https://gigaehitus.gotoand.support/ 30 🟠 Poor high

PageSpeed Insights — Mobile vs Desktop

Lower is worse for Performance; higher is worse for LCP and CLS. Worse value is bolded.

URL Performance (M / D) LCP (M / D) CLS (M / D)
https://gigaehitus.gotoand.support/ 94 / 100 2.44 s / 678 ms 0.002 / 0.000

Optimization Checklist

1 of 3 passing — 1 pass · 1 warn · 1 fail · 4 n/a

Item Status Detail
Page caching plugin / CDN active Fail No WordPress cache plugin marker or CDN edge cache detected on the document response.
Images lazy-loaded Pass All raster images use loading="lazy".
Hero image eagerly loaded Warn Hero image has no explicit loading or fetchpriority (inferred from DOM order/size — Lighthouse LCP element unavailable). Browser default is eager but adding fetchpriority="high" helps LCP.
Hero is a real <img> (not a CSS background-image) N/A No CSS background-images detected on raster-image-eligible elements.
Responsive images (srcset / <picture>) N/A Only 1 raster image on the page — responsive-image rule does not apply.
Reasonable number of image sizes N/A Too few raster images to evaluate srcset width variety.
JS scripts not blocking in <head> N/A No external scripts on the page.

Fixes

Priority 1: Critical

Immediate action — impacts user experience, search rankings, or site safety.

1A. Resolve HTTP 401 Unauthorized Status

  • Impact: Site Availability, User Access
  • Problem: HTTP response status is 401 Unauthorized; W3C validator reports 'HTTP resource not retrievable' due to this status.
  • Solution: Check server configuration (Apache) and authentication rules. Ensure the resource is publicly accessible or redirect to a valid login page if authentication is required. Verify WWW-Authenticate header is intentional.

1B. Implement Baseline Security Headers

  • Impact: Transport Security, Clickjacking, MIME Sniffing
  • Problem: Security Headers grade is 0/100; HSTS, X-Frame-Options, X-Content-Type-Options, and CSP are all missing.
  • Solution: Add headers via Apache config:
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-Content-Type-Options "nosniff"
    

Priority 2: Important

Essential for compliance, user reach, and search visibility.

2A. Fix Accessibility Violations

  • Impact: WCAG 1.4.3 Contrast, 1.3.1 Info & Relationships
  • Problem: axe-core reports 1 serious color-contrast violation and missing main landmark; 3 H1 tags found in HTML inventory.
  • Solution:
    • Increase contrast ratio for .navbar-nav links to ≥4.5:1.
    • Wrap main content in <main> tag.
    • Consolidate headings to a single <h1> per page.

2B. Improve SEO Metadata

  • Impact: Search Visibility, Indexing
  • Problem: HTML inventory shows missing meta description, canonical URL, and robots meta; PSI SEO score is 82.
  • Solution: Add to <head>:
    <meta name="description" content="...">
    <link rel="canonical" href="https://gigaehitus.gotoand.support/">
    <meta name="robots" content="index, follow">
    

Priority 3: Best Practice

Recommended for long-term maintainability.

3A. Optimize First Contentful Paint & Caching

  • Impact: Perceived Performance, Load Time
  • Problem: FCP is 2.44 s (warning threshold); no cache-control header set; response not compressed (27.3 KB uncompressed).
  • Solution:
    • Enable gzip/brotli compression on server.
    • Add Cache-Control: public, max-age=31536000 for static assets.
    • Preload critical fonts or use font-display: swap.
▸Raw Markdown sent to the LLM
# Site Audit — https://gigaehitus.gotoand.support/
Run: 2026-06-29T13:05:16.111Z

Audited **1** of 1 discovered pages.
Average per-page audit coverage: **100%**

Pages audited:
- https://gigaehitus.gotoand.support/

---

# Page 1 of 1 — https://gigaehitus.gotoand.support/

Run: 2026-06-29T13:05:18.588Z

## Audit Coverage
**100%** of audit sources returned data.

_All sources OK._

## Methodology

Each tool below contributes data to a single overall 0–100 site quality score. Performance dominates the weighting (~40%), followed by accessibility (~30%), image assets (~15%), and SEO/security (~15%). These weights are informative — the score is judged holistically, not from a fixed formula.

Severity scale in `priorities[]`:
- **high** — blocking issue / vulnerability / fail.
- **medium** — significant degradation.
- **low** — minor improvement.

Each tool section below lists: scores → priority fixes → findings → manual checks the tool cannot verify.

## Site Signals (inferred)

Heuristic site-shape signals derived from the audit data. Use these to calibrate the priority of security-header recommendations (see system rubric). Override when the evidence is clearly wrong.

- Auth surface: no
- Payments: no
- User-generated content: no
- E-commerce: no

## PageSpeed Insights
_Captured in 13231 ms (mobile + desktop in parallel)._

**Lighthouse scores (mobile vs desktop; worse value bolded):**
| Category | Mobile | Desktop |
| --- | --- | --- |
| Performance | **94** | 100 |
| Accessibility | 87 | 87 |
| Best Practices | **92** | 96 |
| SEO | 82 | 82 |

**Core Web Vitals — lab (Lighthouse) / field (CrUX p75); worse lab value bolded:**
| Metric | Mobile | Desktop |
| --- | --- | --- |
| LCP | **2.4 s** | 0.7 s |
| CLS | **0.002** | 0.000 |
| TBT | 0 ms | 0 ms |
| FCP | **2.44 s** | 678 ms |
| Speed Index | **2.44 s** | 678 ms |
| TTFB | 2 ms | 2 ms |

### Priority fixes
1. **first-contentful-paint** (medium) — 2.4 s
2. **document-latency-insight** (medium) — Est savings of 18 KiB
3. **font-display-insight** (medium) — Est savings of 10 ms
4. **network-dependency-tree-insight** (high)
5. **render-blocking-insight** (high) — Est savings of 1,520 ms

### Findings (mobile)

#### Layout-shift sources
- body > div.container > div.footer--inner — shift 0.002

#### DOM size
- Total nodes: 0

#### Failing modeled audits
- SEO: `metaDescription`
- SEO: `canonical`
- SEO: `robotsTxt`
- SEO: `tapTargets`
- SEO: `structuredData`
- Best Practices: `errorsInConsole`

#### All failing PSI audits (sorted by weight × failure margin)
- `color-contrast` (accessibility, score 0.00, weight 7) — Background and foreground colors do not have a sufficient contrast ratio.
- `first-contentful-paint` (performance, score 0.69, weight 10) — First Contentful Paint — 2.4 s
- `landmark-one-main` (accessibility, score 0.00, weight 3) — Document does not have a main landmark.
- `network-dependency-tree-insight` (performance, score 0.00, weight 0) — Network dependency tree
- `image-size-responsive` (best-practices, score 0.00, weight 1) — Serves images with low resolution
- `errors-in-console` (best-practices, score 0.00, weight 1) — Browser errors were logged to the console
- `meta-description` (seo, score 0.00, weight 1) — Document does not have a meta description
- `http-status-code` (seo, score 0.00, weight 1) — Page has unsuccessful HTTP status code — 401

### Manual checks
- Real-device behavior on slow 3G / low-tier mobile hardware (Lighthouse is throttled simulation).
- Sustained INP under typical user interaction, not just initial load.
- CrUX data interpretation if site is low-traffic and field data falls back to origin or is missing.

## Security Headers & HTTP
_Captured in 8 ms._

**Transport:**
- Final URL: https://gigaehitus.gotoand.support/
- Status: 401
- Redirected: false
- HTTPS redirect: HTTP → HTTPS ✓

**Caching:**
- cache-control: not set
- etag: "6d1f-65459498e34ae"
- last-modified: Tue, 16 Jun 2026 06:45:23 GMT
- expires: n/a
- pragma: n/a
- vary: n/a
- Issues:
  - no cache-control header — caching behavior is unpredictable

**Compression:**
- content-encoding: n/a
- content-length: 27935
- Decoded body: 27.3 KB
- Compression ratio: 1
- Issues:
  - response not compressed (27935 bytes uncompressed)

### Priority fixes
1. **strict-transport-security missing** (high) — Add HSTS with max-age >= 1 year, includeSubDomains, and preload
2. **content-security-policy missing** (high) — Add a CSP with default-src and script-src restrictions
3. **x-frame-options missing** (medium) — Prefer CSP frame-ancestors; X-Frame-Options as fallback
4. **x-content-type-options missing** (medium) — Send X-Content-Type-Options: nosniff
5. **weak caching policy** (medium) — no cache-control header — caching behavior is unpredictable
6. **response not compressed** (medium) — response not compressed (27935 bytes uncompressed)
7. **referrer-policy missing** (low) — Set a Referrer-Policy such as strict-origin-when-cross-origin
8. **permissions-policy missing** (low) — Declare Permissions-Policy to disable unused features
9. **cross-origin-opener-policy missing** (low) — Set COOP to same-origin to isolate browsing context
10. **cross-origin-resource-policy missing** (low) — Set CORP to same-origin or same-site to prevent cross-origin reads

### Findings

#### Tracked headers
- **strict-transport-security** (missing, high)
- **content-security-policy** (missing, high)
- **x-frame-options** (missing, medium)
- **x-content-type-options** (missing, medium)
- **referrer-policy** (missing, low)
- **permissions-policy** (missing, low)
- **cross-origin-opener-policy** (missing, low)
- **cross-origin-resource-policy** (missing, low)
- **x-permitted-cross-domain-policies** (missing, low)

#### Info disclosure
- Server: `Apache`


#### All response headers
```
accept-ranges: bytes
connection: Keep-Alive
content-length: 27935
content-type: text/html
date: Mon, 29 Jun 2026 13:05:18 GMT
etag: "6d1f-65459498e34ae"
keep-alive: timeout=5, max=98
last-modified: Tue, 16 Jun 2026 06:45:23 GMT
server: Apache
www-authenticate: Basic realm="Hidden from public. Enter username and password to continue..."
```

### Manual checks
- Cookie attributes set via JavaScript (not visible in HTTP response).
- CORS preflight behavior under non-GET methods (only GET response headers checked).
- HSTS preload list inclusion (check hstspreload.org).
- WAF / DDoS posture beyond what static headers reveal.

## W3C HTML Validator
_Captured in 694 ms._

**Scoring:** 1 errors · 0 warnings · 0 cosmetic (suppressed)

### Priority fixes
1. **HTTP resource not retrievable. The HTTP status from the remote server was: 401.** (medium) — x1, first at line 0

### Issue groups
- (×1) [error] HTTP resource not retrievable. The HTTP status from the remote server was: 401. — first at line 0

### Manual checks
- Whether each `<section>` / `<article>` wraps semantically meaningful content.
- Language tag accuracy for multi-language pages or quoted content.
- Whether structural choices align with the document outline algorithm in screen readers.

## axe-core (Accessibility)
_Captured in 1426 ms._

**Scoring:** 3 violations · 16 passes · critical 0 · serious 1 · moderate 2 · minor 0

### Priority fixes
1. **color-contrast** (high) — Elements must meet minimum color contrast ratio thresholds
2. **landmark-one-main** (medium) — Document should have one main landmark
3. **region** (medium) — All page content should be contained by landmarks

### Findings

#### `color-contrast` (serious) — WCAG: wcag2aa, wcag143
[Elements must meet minimum color contrast ratio thresholds](https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright)
- `.navbar-nav > a[href$="veebimajutus.ee/"]`
- `.link--row:nth-child(2) > div:nth-child(1) > a`
- `.link--row:nth-child(2) > div:nth-child(2) > a`
- `.link--row:nth-child(2) > div:nth-child(3) > a`
- `.link--row:nth-child(3) > div:nth-child(1) > a`
- … and 2 more nodes

#### `landmark-one-main` (moderate)
[Document should have one main landmark](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main?application=playwright)
- `html`

#### `region` (moderate)
[All page content should be contained by landmarks](https://dequeuniversity.com/rules/axe/4.11/region?application=playwright)
- `.navbar`
- `.container`

### Incomplete (axe could not determine)
- [Elements must meet minimum color contrast ratio thresholds](https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright) — 4 nodes

### Manual checks
- Keyboard-only navigation flow + visible focus indicators on every interactive element.
- Screen reader output (NVDA, VoiceOver) for actual auditory experience.
- Modal focus trapping and restoration on close.
- Touch target sizes (44×44 px minimum per WCAG 2.5.8).
- Color contrast for elements with alpha-transparency or gradients (axe skips these).

## Browser Runtime
_Captured in 1431 ms._

**Capture summary:** 1 console events · 0 mixed-content requests · 4 network requests · 48.0 KB total

**Network bytes by resource type:**
| Type | Count | Bytes |
| --- | --- | --- |
| document | 1 | 27.3 KB |
| font | 1 | 20.7 KB |
| stylesheet | 1 | 0 B |
| xhr | 1 | 0 B |

**Third-party origins (by bytes):**
- https://fonts.gstatic.com — 1 request, 20.7 KB
- https://fonts.googleapis.com — 2 requests, 0 B

**Slowest requests (top 5):**
- https://fonts.googleapis.com/css?family=Droid+Sans:400,700 (stylesheet) — 144 ms, 0 B
- https://fonts.googleapis.com/css?family=Droid+Sans:400,700 (xhr) — 142 ms, 0 B
- https://fonts.gstatic.com/s/droidsans/v19/SlGVmQWMvZQIdix7AFxXkHNSbQ.woff2 (font) — 138 ms, 20.7 KB
- https://gigaehitus.gotoand.support/ (document) — 28 ms, 27.3 KB

### Priority fixes
1. **console error** (medium) — Failed to load resource: the server responded with a status of 401 ()

### Findings

#### Console events
- [error] Failed to load resource: the server responded with a status of 401 () (https://gigaehitus.gotoand.support/)

### Manual checks
- Console output during user interaction (load-only capture).
- Behavior on slow networks and constrained devices.
- WebGL / canvas FPS profiling via DevTools Layers panel.
- Service worker / cache behavior on repeat visits.

## HTML Inventory
_Captured in 1431 ms._

**Document:**
- Lang: en
- Title: Viga 401 - Error 401 | Veebimajutus.ee
- Canonical: not set
- Viewport: width=device-width, initial-scale=1
- Charset: UTF-8
- HTML bytes: 29605

**Meta tags:**
- Description: not set
- Robots: not set
- Theme color: not set
- Open Graph tags: 0 (none)
- Twitter tags: 0
- hreflang: none
- JSON-LD: none

**Heading outline:**
- Counts: h1 ×3, h2 ×0, h3 ×0, h4 ×0, h5 ×0, h6 ×0
- Sequence (first 20):
  - h1: Viga 401
  - h1: Error 401
  - h1: Vaata lisaks

**Landmarks:**
- nav: **missing**
- main: **missing**
- header: **missing**
- footer: **missing**
- Skip-to-content link: **missing**

**Scripts:** 1 total — 0 defer, 0 async, 0 render-blocking. Speculation rules: no.


**Stylesheets:** 1 external, 1 inline (16.8 KB)

**Images:** 1 total — **0 without alt**, **1 without width/height**, 1 without loading="lazy"

Image inventory (first 15):
| src | alt | w×h | loading | srcset |
| --- | --- | --- | --- | --- |
| kpBQBYmiJCRUQaIoCQlVkChKQkIV/D+cxxFa72wHXQAAAABJRU5ErkJggg== | Veebimajutus | _n/a_ | _n/a_ | ✗ |

**Links:** 11 anchors — 11 external, 0 preconnect, 0 preload.

Vague repeated link text:
- "abi@veebimajutus.ee" ×2

### Priority fixes
1. **Document has 3 <h1> elements** (medium) — A page should have exactly one h1; multiple h1s break document outline
2. **Missing <nav> landmark** (medium) — No <nav> element found in document
3. **Missing skip-to-content link** (medium) — No anchor link with "skip" / "otse sisu" text found
4. **1 images without explicit width/height** (medium) — Missing dimensions can cause layout shifts (CLS)

### Manual checks
- Visual rendering of detected mojibake (browser may auto-correct for display).
- Whether decorative images correctly use empty `alt=""` (vs. content images missing it).
- Whether headings reflect actual document hierarchy semantically.
- Whether vague link text is disambiguated by `aria-label` or surrounding context.

## Optimized-Web Checklist
_Captured in 0 ms._

**Summary:** 1 pass · 1 warn · 1 fail · 4 n/a

**Checklist:**
| Item | Status | Detail |
| --- | --- | --- |
| Page caching plugin / CDN active | ✗ fail | No WordPress cache plugin marker or CDN edge cache detected on the document response. |
| Images lazy-loaded | ✓ pass | All raster images use loading="lazy". |
| Hero image eagerly loaded | ! warn | Hero image has no explicit loading or fetchpriority (inferred from DOM order/size — Lighthouse LCP element unavailable). Browser default is eager but adding fetchpriority="high" helps LCP. |
| Hero is a real <img> (not a CSS background-image) | – n/a | No CSS background-images detected on raster-image-eligible elements. |
| Responsive images (srcset / <picture>) | – n/a | Only 1 raster image on the page — responsive-image rule does not apply. |
| Reasonable number of image sizes | – n/a | Too few raster images to evaluate srcset width variety. |
| JS scripts not blocking in <head> | – n/a | No external scripts on the page. |

**Evidence:**
- Hero image eagerly loaded:
  - `hero: …iKAkJVZAoSkJCFSSKkpBQBYmiJCRUQaIoCQlVkChKQkIV/D+cxxFa72wHXQAAAABJRU5ErkJggg==`
  - `loading: (not set)`
  - `fetchpriority: (not set)`

### Priority fixes
1. **Page caching plugin / CDN active** (high) — No WordPress cache plugin marker or CDN edge cache detected on the document response.
2. **Hero image eagerly loaded** (medium) — Hero image has no explicit loading or fetchpriority (inferred from DOM order/size — Lighthouse LCP element unavailable). Browser default is eager but adding fetchpriority="high" helps LCP.

### Manual checks
- Cart / checkout / logged-in pages must bypass the page cache or load dynamic regions via AJAX.
- Verify the cache is warmed for the canonical URL on initial deploy (first visitor should not pay the cold-start cost).
- Inspect "hero" image visually — heuristic above picks the first/largest <img>, which may not match the actual LCP element on JS-heavy pages.
- Confirm scripts marked as defer/async actually tolerate deferred execution (some legacy snippets break when reordered).