Audit Result
UUID: 019e2b01-81da-72cc-8e90-c1cd9183b0b9
https://ppid.bpmpkaltim.id/
Scanned 3 months ago
Meta Information
-
Title Tag Pass
Found 32 characters. Length is optimal.
-
Meta Description Pass
Found 88 characters. Good snippet length.
-
Canonical URL Pass
Canonical found: https://ppid.bpmpkaltim.id
-
-
Viewport Meta Pass
Viewport configured: width=device-width, initial-scale=1
-
HTML Lang Pass
Language declared as "id".
Content Structure
-
H1 Tag Pass
Exactly one H1 found: "PPID BPMP Provinsi Kaltim".
-
Heading Hierarchy Pass
Valid heading flow across 12 headings.
-
Image Alt Text Error
1 of 6 images are missing alt text.
Fix: Add meaningful alt attributes to all informative images for accessibility and image SEO.
Technical Optimization
-
HTTPS Pass
Page is served over HTTPS.
-
HSTS & HTTPS Redirect Warning
1 HTTPS hardening issues detected.
- • Could not probe the HTTP version of this page.
- • Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Fix: Set Strict-Transport-Security with a long max-age, add includeSubDomains, and redirect all HTTP requests to HTTPS.
-
Security Headers Pass
Core security headers were detected.
Full HTTP headers (19)
- • alt-svc: h3=":443"; ma=86400
- • cache-control: public, max-age=3600, stale-while-revalidate=300
- • content-encoding: gzip
- • content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com https://cdn.jsdelivr.net; img-src 'self' data: blob: https:; connect-src 'self'; frame-src 'self' https://www.youtube.com https://player.vimeo.com
- • content-type: text/html; charset=utf-8
- • date: Fri, 15 May 2026 09:39:31 GMT
- • etag: "2pvbmanm0yzl6"
- • permissions-policy: camera=(), microphone=(), geolocation=()
- • referrer-policy: strict-origin-when-cross-origin same-origin
- • server: nginx
- • strict-transport-security: max-age=31536000; includeSubDomains; preload
- • vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
- • x-content-type-options: nosniff nosniff
- • x-frame-options: DENY SAMEORIGIN
- • x-nextjs-cache: HIT
- • x-nextjs-prerender: 1 1
- • x-nextjs-stale-time: 300
- • x-permitted-cross-domain-policies: master-only
- • x-xss-protection: 1; mode=block 1; mode=block
-
CSP Quality Error
4 CSP hardening issues detected.
- • script-src/default-src permits 'unsafe-inline'.
- • CSP is missing object-src 'none'.
- • CSP is missing a base-uri restriction.
- • CSP is missing frame-ancestors protection.
- • Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com https://cdn.jsdelivr.net; img-src 'self' data: blob: https:; connect-src 'self'; frame-src 'self' https://www.youtube.com https://player.vimeo.com
Fix: Tighten Content-Security-Policy by removing unsafe directives and adding object-src, base-uri, and frame-ancestors restrictions.
-
Cookie Security Pass
No first-party cookies were set during the initial page load.
-
Server response headers do not expose version tokens.
-
Cloudflare Proxy Warning
Domain does not appear to be behind Cloudflare.
-
Perceived Load Time Warning
Loaded in 2.11s (perceived).
Fix: Reduce payload size, cache static assets, and remove non-critical JS from initial load.
-
Render Blocking Resources Warning
13 scripts and 3 styles may block rendering.
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/03~yq9q893hmn.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/021pgpxpp54nw.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0o8_sp-xlbx53.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/14wkrpjt0qipu.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0495-i40bwcsf.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0owme1tsrydbh.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/09nn.fxf9cxx4.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0-x08kyr9qg6k.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0cdgonv62odmd.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0sem~5qrag9he.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0pd9hhvkqgif8.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0clkr_x5ccbs1.js
- • script: https://ppid.bpmpkaltim.id/_next/static/chunks/0oqx7t5.x68tj.js
- • style: https://ppid.bpmpkaltim.id/_next/static/chunks/0nabm3gksyy2..css
- • style: https://ppid.bpmpkaltim.id/_next/static/chunks/0c2zusf_r2-o4.css
- • style: https://ppid.bpmpkaltim.id/_next/static/chunks/101nxy~xn14x~.css
Fix: Defer non-critical scripts and inline critical CSS to improve first paint speed.
-
Compression Pass
Text-like assets appear compressed.
-
Robots.txt Pass
Found robots.txt (200).
-
Sitemap File Warning
Sitemap missing or inaccessible at https://ppid.bpmpprovkaltim.id/sitemap.xml (no response).
Fix: Publish a sitemap.xml and reference it in robots.txt with: Sitemap: https://ppid.bpmpkaltim.id/sitemap.xml
-
Crawl Directives Pass
Robots meta found: index, follow
Accessibility Basics
-
Form Labels Pass
All 0 controls are labeled.
-
Landmarks Warning
Missing landmarks: header.
Fix: Use semantic regions (<header>, <nav>, <main>, <footer>) for navigation and assistive tech.
-
Tap Target Size Warning
25 interactive elements appear smaller than 48px.
- • a.relative.px-3 (Beranda) - 76x36px
- • a.relative.px-3 (Profil) - 57x36px
- • a.relative.px-3 (Informasi Publik) - 124x36px
- • a.relative.px-3 (Layanan Informasi) - 137x36px
- • a.relative.px-3 (Tautan) - 68x36px
- • button.fc-prev-button.fc-button (mundur) - 47x41px
- • button.fc-next-button.fc-button (maju) - 47x41px
- • button.fc-today-button.fc-button (Hari Ini) - 74x39px
- • button.fc-dayGridMonth-button.fc-button (Bulan) - 62x39px
- • button.fc-listWeek-button.fc-button (Daftar) - 69x39px
- • a.fc-col-header-cell-cushion (Senin) - 35x28px
- • a.fc-col-header-cell-cushion (Selasa) - 30x28px
- • a.fc-col-header-cell-cushion (Rabu) - 37x28px
- • a.fc-col-header-cell-cushion (Kamis) - 42x28px
- • a.fc-col-header-cell-cushion (Jumat) - 38x28px
- • a.fc-col-header-cell-cushion (Sabtu) - 36x28px
- • a.fc-col-header-cell-cushion (Minggu) - 36x28px
- • a#fc-dom-2.fc-daygrid-day-number (27 April 2026) - 26x32px
- • a#fc-dom-4.fc-daygrid-day-number (28 April 2026) - 26x32px
- • a#fc-dom-6.fc-daygrid-day-number (29 April 2026) - 26x32px
- • a#fc-dom-8.fc-daygrid-day-number (30 April 2026) - 26x32px
- • a#fc-dom-10.fc-daygrid-day-number (1 Mei 2026) - 17x32px
- • a#fc-dom-12.fc-daygrid-day-number (2 Mei 2026) - 17x32px
- • a#fc-dom-14.fc-daygrid-day-number (3 Mei 2026) - 17x32px
- • a#fc-dom-16.fc-daygrid-day-number (4 Mei 2026) - 17x32px
Fix: Increase target size to at least 48x48 CSS pixels for touch interactions.
Social & Rich Results
-
Open Graph Basics Pass
Core Open Graph tags are present.
-
-
Twitter Card Pass
twitter:card set to summary_large_image.
-
Structured Data Pass
JSON-LD schema detected.
-
PWA Metadata Pass
Manifest and Apple touch icon are configured.
-
Open Graph/Twitter Quality Warning
3 social preview quality issues detected.
- • ISSUE: Preview image is too small; use at least 200x200.
- • ISSUE: Preview image is below recommended size (1200x630).
- • ISSUE: Preview image aspect ratio (1.00) differs from the recommended ~1.91:1.
- • GUIDELINE: Optimal og:title length: 40-60 characters (acceptable: 10-70).
- • GUIDELINE: Optimal og:description length: 110-160 characters (acceptable: 50-200).
- • GUIDELINE: Optimal preview image size: 1200x630 pixels.
- • GUIDELINE: Optimal preview image aspect ratio: 1.91:1.
- • GUIDELINE: Optimal preview image file size: under 5 MB.
- • GUIDELINE: Recommended twitter:card: summary_large_image.
- • MEASURED: Image size: 0.01 MB
- • MEASURED: Image dimensions: 113x113
Fix: Use absolute OG/Twitter URLs, keep metadata lengths in recommended ranges, and provide a preview image near 1200x630 under 5MB.
Links Analysis
-
Internal Links Pass
Checked 16 links. No broken internal links found.
-
External Links Pass
No broken external links found in checked URLs.
-
Link Format Warning
49 links are empty, invalid, or placeholder-only.
- • href="(empty)" text="Sen"
- • href="(empty)" text="Sel"
- • href="(empty)" text="Rab"
- • href="(empty)" text="Kam"
- • href="(empty)" text="Jum"
- • href="(empty)" text="Sab"
- • href="(empty)" text="Min"
- • href="(empty)" text="27"
- • href="(empty)" text="28"
- • href="(empty)" text="29"
- • href="(empty)" text="30"
- • href="(empty)" text="1"
- • href="(empty)" text="2"
- • href="(empty)" text="3"
- • href="(empty)" text="4"
- • href="(empty)" text="5"
- • href="(empty)" text="6"
- • href="(empty)" text="7"
- • href="(empty)" text="8"
- • href="(empty)" text="9"
- • href="(empty)" text="10"
- • href="(empty)" text="11"
- • href="(empty)" text="12"
- • href="(empty)" text="13"
- • href="(empty)" text="14"
- • href="(empty)" text="15"
- • href="(empty)" text="16"
- • href="(empty)" text="17"
- • href="(empty)" text="18"
- • href="(empty)" text="19"
- • href="(empty)" text="20"
- • href="(empty)" text="21"
- • href="(empty)" text="22"
- • href="(empty)" text="23"
- • href="(empty)" text="24"
- • href="(empty)" text="25"
- • href="(empty)" text="26"
- • href="(empty)" text="27"
- • href="(empty)" text="28"
- • href="(empty)" text="29"
- • href="(empty)" text="30"
- • href="(empty)" text="31"
- • href="(empty)" text="1"
- • href="(empty)" text="2"
- • href="(empty)" text="3"
- • href="(empty)" text="4"
- • href="(empty)" text="5"
- • href="(empty)" text="6"
- • href="(empty)" text="7"
Fix: Replace empty/#/javascript href values with real destinations or use buttons for non-navigation actions.
Performance & Runtime
-
Core Web Vitals: LCP Warning
Largest Contentful Paint: 2.92s.
Fix: Improve LCP by optimizing above-the-fold media, reducing server latency, and inlining critical CSS.
-
Core Web Vitals: CLS Pass
Cumulative Layout Shift: 0.000.
-
Total Blocking Time estimate: 32ms.
-
Broken Assets Pass
No failed CSS/JS/image/font/media requests detected.
-
No console/page runtime errors detected during audit.