SEO Report: ssi.dk
Generated April 28, 2026 · 32 findings · 3.2s
Institutional websites prioritize accessibility, security, and proper indexing — citizens and stakeholders need easy access to relevant information.
Score Breakdown
Average General score: 50
Score Projection
Estimated improvement based on the findings in this report
Ready to improve your SEO?
Start a free trial and see how your score can improve.
Module Breakdown
All Findings (29)
Critical (3)
- highheaders
Missing strict-transport-security
HSTS header is missing. The site may be vulnerable to downgrade attacks.
Add Strict-Transport-Security header with max-age of at least 31536000
- highsitemap
Invalid sitemap format
Sitemap does not appear to be valid XML
Ensure sitemap.xml is properly formatted XML
- highsitemap
Empty sitemap
Sitemap contains no URLs
Add URLs to the sitemap
Medium (12)
- mediumheaders
CSP allows unsafe-eval
Content-Security-Policy uses 'unsafe-eval' which allows dynamic code execution
Remove 'unsafe-eval' and refactor code to avoid eval()
- mediumheaders
CORS allows all origins
Access-Control-Allow-Origin: * allows any website to make requests
Restrict CORS to specific trusted origins if the page handles sensitive data
- mediummeta
Missing canonical URL
No canonical link tag found
Add a canonical URL to prevent duplicate content issues
- mediumstructured data
No structured data found
No JSON-LD schemas detected on the page
Add structured data (Organization, WebSite, BreadcrumbList) for rich search results
- mediumcontent
Thin content
Page has only 255 words (recommended: 300+)
Add more meaningful content — aim for at least 300 words on key pages
- mediumaccessibility
Missing main landmark
No <main> element or role="main" found
Wrap primary content in a <main> element for screen reader navigation
- mediumaccessibility
No skip navigation link
No skip-to-content link at the top of the page
Add a visually hidden skip link as the first focusable element
- mediumrate limits
No rate limiting detected
10 rapid requests all succeeded without any rate-limit headers or 429 responses. The site may be vulnerable to abuse.
Implement rate limiting (e.g., 429 Too Many Requests) to protect against brute-force attacks
- mediumuptime checker
Soft 404 detected
Non-existent URLs return HTTP 200 instead of 404
Return proper 404 status codes for non-existent pages to avoid indexing junk URLs
- mediumbrand checker
No Organization schema
No Organization JSON-LD found
Add Organization structured data with name, logo, and contact information
- mediumindexing checker
Missing canonical URL
No canonical link tag found — search engines may index duplicate versions
Add a self-referencing canonical URL to prevent duplicate content issues
- mediumlog analyzer
Server version exposed
Server header reveals version: Microsoft-IIS/10.0
Remove version numbers from the Server header to reduce attack surface
Low (14)
- lowcookies
1 cookie missing HttpOnly flag
Cookies without HttpOnly can be accessed by JavaScript, increasing XSS risk
Add HttpOnly to session and authentication cookies
- lowdns
No IPv6 (AAAA) records
The domain has no AAAA records for IPv6 connectivity
Add AAAA DNS records for IPv6 support
- lowheaders
Missing permissions-policy
Permissions-Policy is missing.
Add Permissions-Policy to restrict browser feature access
- lowheaders
Server header exposes software
Server: Microsoft-IIS/10.0
Remove or obfuscate the Server header to reduce information leakage
- lowmeta
Meta description too long
Description is 225 characters (recommended: 120-160)
Shorten the meta description to 120-160 characters
- lowcontent
Low text-to-HTML ratio
Text/HTML ratio is 4% (recommended: >5%)
Consider adding more descriptive text content
- lowmobile
Unresponsive images
7 images lack srcset or responsive sizing
Use srcset and sizes attributes for responsive images
- lowrate limits
No WAF detected
No Web Application Firewall (Cloudflare, AWS, Akamai, Vercel, Sucuri, Fastly) was detected in response headers.
Consider using a WAF to protect against common web attacks (XSS, SQL injection, DDoS)
- lowrate limits
No bot protection detected
No CAPTCHA, challenge page, or bot detection was triggered during rapid requests.
Consider implementing bot protection (e.g., Cloudflare Turnstile, hCaptcha) for sensitive endpoints
- lowsocial checker
No social profile links
No links to social media profiles found on the homepage
Add links to your social media profiles for better brand visibility and authority signals
- lowbrand checker
No WebSite schema
No WebSite JSON-LD found
Add WebSite structured data for sitelinks search box in Google
- lowbrand checker
Missing og:site_name
Open Graph site name is not set
Add og:site_name meta tag for consistent social sharing
- lowpage experience
No lazy loading on images
10 images without lazy loading
Add loading="lazy" to below-the-fold images for faster initial page load
- lowlog analyzer
Soft 404 response
Non-existent pages return HTTP 200 instead of 404
Return proper 404 status codes for non-existent pages
AI Fix Prompt
Copy this prompt into ChatGPT or Claude to get step-by-step fix instructions
Fix all SEO issues found in the audit of ssi.dk.
Prioritize high-severity issues first, then medium. For each fix, make the actual code change — don't just describe what to do.
```json
{
"domain": "ssi.dk",
"scores": {
"overall": 82,
"performance": 0,
"seo": 79,
"accessibility": 84,
"bestPractices": 93,
"security": 80
},
"findings": [
{
"module": "headers",
"severity": "high",
"title": "Missing strict-transport-security",
"description": "HSTS header is missing. The site may be vulnerable to downgrade attacks.",
"recommendation": "Add Strict-Transport-Security header with max-age of at least 31536000"
},
{
"module": "headers",
"severity": "medium",
"title": "CSP allows unsafe-eval",
"description": "Content-Security-Policy uses 'unsafe-eval' which allows dynamic code execution",
"recommendation": "Remove 'unsafe-eval' and refactor code to avoid eval()"
},
{
"module": "headers",
"severity": "medium",
"title": "CORS allows all origins",
"description": "Access-Control-Allow-Origin: * allows any website to make requests",
"recommendation": "Restrict CORS to specific trusted origins if the page handles sensitive data"
},
{
"module": "meta",
"severity": "medium",
"title": "Missing canonical URL",
"description": "No canonical link tag found",
"recommendation": "Add a canonical URL to prevent duplicate content issues"
},
{
"module": "structured-data",
"severity": "medium",
"title": "No structured data found",
"description": "No JSON-LD schemas detected on the page",
"recommendation": "Add structured data (Organization, WebSite, BreadcrumbList) for rich search results"
},
{
"module": "sitemap",
"severity": "high",
"title": "Invalid sitemap format",
"description": "Sitemap does not appear to be valid XML",
"recommendation": "Ensure sitemap.xml is properly formatted XML"
},
{
"module": "sitemap",
"severity": "high",
"title": "Empty sitemap",
"description": "Sitemap contains no URLs",
"recommendation": "Add URLs to the sitemap"
},
{
"module": "content",
"severity": "medium",
"title": "Thin content",
"description": "Page has only 255 words (recommended: 300+)",
"recommendation": "Add more meaningful content — aim for at least 300 words on key pages"
},
{
"module": "accessibility",
"severity": "medium",
"title": "Missing main landmark",
"description": "No <main> element or role=\"main\" found",
"recommendation": "Wrap primary content in a <main> element for screen reader navigation"
},
{
"module": "accessibility",
"severity": "medium",
"title": "No skip navigation link",
"description": "No skip-to-content link at the top of the page",
"recommendation": "Add a visually hidden skip link as the first focusable element"
},
{
"module": "rate-limits",
"severity": "medium",
"title": "No rate limiting detected",
"description": "10 rapid requests all succeeded without any rate-limit headers or 429 responses. The site may be vulnerable to abuse.",
"recommendation": "Implement rate limiting (e.g., 429 Too Many Requests) to protect against brute-force attacks"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Soft 404 detected",
"description": "Non-existent URLs return HTTP 200 instead of 404",
"recommendation": "Return proper 404 status codes for non-existent pages to avoid indexing junk URLs"
},
{
"module": "brand-checker",
"severity": "medium",
"title": "No Organization schema",
"description": "No Organization JSON-LD found",
"recommendation": "Add Organization structured data with name, logo, and contact information"
},
{
"module": "indexing-checker",
"severity": "medium",
"title": "Missing canonical URL",
"description": "No canonical link tag found — search engines may index duplicate versions",
"recommendation": "Add a self-referencing canonical URL to prevent duplicate content issues"
},
{
"module": "log-analyzer",
"severity": "medium",
"title": "Server version exposed",
"description": "Server header reveals version: Microsoft-IIS/10.0",
"recommendation": "Remove version numbers from the Server header to reduce attack surface"
}
]
}
```Recommendations for your industry
- 1Ensure WCAG 2.1 AA compliance
- 2Implement all recommended security headers
- 3Ensure sitemap covers all important pages
- 4Optimize page load time to under 2 seconds
- 5Ensure responsive design on all pages
SEO Checklist for General
Tips for Mixed websites
- →Define clear landing pages for each segment
- →Use different meta strategies per page group
- →Segment sitemap by content type
Local SEO Context
In Denmark, Google dominates with 95%+ market share. Focus on local searches and Danish language quality.