Audit Result
UUID: 019da67c-d23c-71e0-a083-e26cf59c4205
https://www.permaplant.net/
Scanned 4 months ago
Meta Information
-
Title Tag Warning
Found 10 characters. Keep title between 30 and 60 characters.
Fix: Add a unique <title> tag describing the main page intent in 30-60 characters.
-
Meta Description Warning
Found 16 characters. Keep description around 70-160 characters.
Fix: Add <meta name="description" content="..."> in <head> with a clear page summary.
-
Canonical URL Warning
Canonical link not found.
Fix: Add <link rel="canonical" href="https://example.com/page"> to avoid duplicate URL ambiguity.
-
-
Viewport Meta Pass
Viewport configured: width=device-width, initial-scale=1.0
-
HTML Lang Pass
Language declared as "en".
Content Structure
-
H1 Tag Pass
Exactly one H1 found: "make your garden fruit|".
-
Heading Hierarchy Pass
Valid heading flow across 75 headings.
-
Image Alt Text Error
29 of 94 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
2 HTTPS hardening issues detected.
- • HSTS is missing includeSubDomains.
- • Could not probe the HTTP version of this page.
- • Strict-Transport-Security: max-age=63072000
Fix: Set Strict-Transport-Security with a long max-age, add includeSubDomains, and redirect all HTTP requests to HTTPS.
-
Security Headers Warning
Missing: content-security-policy.
Full HTTP headers (14)
- • accept-ranges: bytes
- • cache-control: no-cache
- • content-encoding: gzip
- • content-length: 690
- • content-type: text/html
- • date: Sun, 19 Apr 2026 16:04:46 GMT
- • etag: "846-64fa1c09b5c00-gzip"
- • last-modified: Fri, 17 Apr 2026 06:06:40 GMT
- • referrer-policy: strict-origin-when-cross-origin
- • server: Apache
- • strict-transport-security: max-age=63072000
- • vary: Accept-Encoding
- • x-content-type-options: nosniff
- • x-frame-options: SAMEORIGIN
Fix: Add the missing security headers at your reverse proxy or application layer.
-
CSP Quality Warning
Content-Security-Policy header is missing.
- • Missing Content-Security-Policy header.
Fix: Define a restrictive Content-Security-Policy and avoid unsafe directives such as unsafe-inline and unsafe-eval.
-
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.24s (perceived).
Fix: Reduce payload size, cache static assets, and remove non-critical JS from initial load.
-
Render Blocking Resources Warning
0 scripts and 2 styles may block rendering.
- • style: https://www.permaplant.net/assets/Root-5V6cyxvB.css
- • style: https://www.permaplant.net/assets/App-By0YSI60.css
Fix: Defer non-critical scripts and inline critical CSS to improve first paint speed.
-
Compression Warning
2 text resources look uncompressed.
- • https://www.permaplant.net/api/config (application/json)
- • https://auth.perma.health/realms/Perma/.well-known/openid-configuration (application/json;charset=UTF-8)
Fix: Enable Brotli or Gzip compression for HTML, CSS, JS, and JSON responses.
-
Robots.txt Pass
Found robots.txt (200).
-
Sitemap File Pass
Found sitemap (200) at https://www.permaplant.net/sitemap.xml.
-
Crawl Directives Warning
No robots meta tag defined.
Fix: Add <meta name="robots" content="index,follow"> (or the intended directive) in <head>.
Accessibility Basics
-
Form Labels Error
1 of 3 controls are missing labels.
- • input#react-select-3-input.with-tailwind-1hac4vs-dummyInput (react-select-3-input)
Fix: Associate each form control with a visible label, aria-label, or aria-labelledby.
-
Landmarks Warning
Missing landmarks: header.
Fix: Use semantic regions (<header>, <nav>, <main>, <footer>) for navigation and assistive tech.
-
Tap Target Size Warning
13 interactive elements appear smaller than 48px.
- • a.flex.items-center (PermaplanT1.0.1) - 257x40px
- • button.inline-flex.h-6 (Toggle Dark Mode) - 24x24px
- • button.button.transition-colors (Log in) - 92x40px
- • button.inline-flex.h-6 - 24x24px
- • button.inline-flex.h-6 - 24x24px
- • button.inline-flex.h-6 - 24x24px
- • button.inline-flex.h-6 - 24x24px
- • a.ml-auto.flex (Apply for Membership) - 202x36px
- • button (Apply for Membership) - 154x20px
- • button.inline-flex.items-center (Subscribe) - 133x36px
- • a - 33x33px
- • a.flex.items-center (Imprint) - 51x20px
- • button (Imprint) - 51x20px
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 Warning
No JSON-LD schema scripts found.
Fix: Add JSON-LD structured data matching your page type (Organization, Article, Product, etc.).
-
PWA Metadata Warning
Manifest or Apple touch icon is missing.
Fix: Link your web app manifest and apple-touch-icon for improved install/share experiences.
-
Open Graph/Twitter Quality Warning
1 social preview quality issues detected.
- • ISSUE: og:url points to a different origin than the scanned page.
- • 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.06 MB
- • MEASURED: Image dimensions: 1200x630
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 3 links. No broken internal links found.
-
External Links Pass
No broken external links found in checked URLs.
-
Link Format Warning
13 links are empty, invalid, or placeholder-only.
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Markus RaabObmann"
- • href="(empty)" text="Yvonne MarklPermaculture Expert"
- • href="(empty)" text="Yvonne MarklPermaculture Expert"
- • href="(empty)" text="Yvonne MarklPermaculture Expert"
- • href="(empty)" text="Yvonne MarklPermaculture Expert"
- • href="(empty)" text="Yvonne MarklPermaculture Expert"
- • href="(empty)" text="Yvonne MarklPermaculture Expert"
Fix: Replace empty/#/javascript href values with real destinations or use buttons for non-navigation actions.
Performance & Runtime
-
Core Web Vitals: LCP Pass
Largest Contentful Paint: 2.29s.
-
Core Web Vitals: CLS Pass
Cumulative Layout Shift: 0.000.
-
Main Thread Blocking (TBT) Warning
Total Blocking Time estimate: 421ms.
Fix: Reduce heavy JavaScript work, split long tasks, and defer non-critical scripts.
-
Broken Assets Pass
No failed CSS/JS/image/font/media requests detected.
-
No console/page runtime errors detected during audit.