SEO Report: roskilde-festival.dk
Generated 28 أبريل 2026 · 28 findings · 6.4s
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
هل أنت مستعد لتحسين SEO؟
ابدأ تجربة مجانية واكتشف كيف يمكن تحسين نتيجتك.
Module Breakdown
All Findings (24)
حرج (4)
- highssl
SSL certificate not found
Could not retrieve SSL certificate
Ensure the site has a valid SSL certificate installed
- highaccessibility
2 form fields without labels
Form inputs without associated labels are inaccessible
Use <label for="id"> or aria-label on every form field
- highaccessibility
3 buttons without accessible name
Buttons with no text, aria-label, or title are invisible to screen readers
Add visible text or aria-label to all buttons
- highpage experience
Intrusive interstitials detected
Found 9 potential popup/overlay elements
Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties
متوسط (9)
- mediumheaders
Missing content-security-policy
CSP header is missing. The site may be vulnerable to XSS attacks.
Add a Content-Security-Policy header to restrict resource loading
- mediumstructured data
No structured data found
No JSON-LD schemas detected on the page
Add structured data (Organization, WebSite, BreadcrumbList) for rich search results
- mediumrobots
No sitemap in robots.txt
robots.txt does not reference a sitemap
Add Sitemap: https://yourdomain.com/sitemap.xml to robots.txt
- mediumcontent
External links without noopener
15 external links with target="_blank" lack rel="noopener"
Add rel="noopener noreferrer" to all target="_blank" links
- mediummobile
Zoom disabled
Viewport prevents user zoom — accessibility issue
Remove maximum-scale=1 and user-scalable=no to allow pinch-to-zoom
- 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
- mediumsocial checker
Missing Twitter Card
No twitter:card meta tag — Twitter/X will use default preview
Add twitter:card meta tag (e.g., "summary_large_image")
- mediumbrand checker
No Organization schema
No Organization JSON-LD found
Add Organization structured data with name, logo, and contact information
- mediumlog analyzer
X-Powered-By header exposed
X-Powered-By: Next.js
Remove the X-Powered-By header to reduce information leakage
منخفض (11)
- 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
HSTS max-age too short
HSTS max-age is 15552000s (recommended: 31536000)
Set max-age to at least 31536000 (1 year)
- lowheaders
X-Powered-By exposes technology
X-Powered-By: Next.js
Remove the X-Powered-By header
- lowmeta
Missing Twitter Card
No twitter:card meta tag
Add twitter:card meta tag for Twitter sharing
- lowsitemap
Inconsistent trailing slashes
Some sitemap URLs end with / and some don't
Be consistent with trailing slashes in URLs
- lowcontent
Low text-to-HTML ratio
Text/HTML ratio is 4% (recommended: >5%)
Consider adding more descriptive text content
- lowcontent
Lazy images without dimensions
4 lazy-loaded images lack width/height — causes layout shift
Add width and height attributes to lazy-loaded images
- lowrate limits
No rate limiting detected
No explicit rate-limit headers or 429 responses detected. Cloudflare WAF provides platform-level protection.
Implement rate limiting (e.g., 429 Too Many Requests) to protect against brute-force attacks
- 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
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 roskilde-festival.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": "roskilde-festival.dk",
"scores": {
"overall": 77,
"performance": 0,
"seo": 85,
"accessibility": 62,
"bestPractices": 91,
"security": 72
},
"findings": [
{
"module": "headers",
"severity": "medium",
"title": "Missing content-security-policy",
"description": "CSP header is missing. The site may be vulnerable to XSS attacks.",
"recommendation": "Add a Content-Security-Policy header to restrict resource loading"
},
{
"module": "ssl",
"severity": "high",
"title": "SSL certificate not found",
"description": "Could not retrieve SSL certificate",
"recommendation": "Ensure the site has a valid SSL certificate installed"
},
{
"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": "robots",
"severity": "medium",
"title": "No sitemap in robots.txt",
"description": "robots.txt does not reference a sitemap",
"recommendation": "Add Sitemap: https://yourdomain.com/sitemap.xml to robots.txt"
},
{
"module": "content",
"severity": "medium",
"title": "External links without noopener",
"description": "15 external links with target=\"_blank\" lack rel=\"noopener\"",
"recommendation": "Add rel=\"noopener noreferrer\" to all target=\"_blank\" links"
},
{
"module": "mobile",
"severity": "medium",
"title": "Zoom disabled",
"description": "Viewport prevents user zoom — accessibility issue",
"recommendation": "Remove maximum-scale=1 and user-scalable=no to allow pinch-to-zoom"
},
{
"module": "accessibility",
"severity": "high",
"title": "2 form fields without labels",
"description": "Form inputs without associated labels are inaccessible",
"recommendation": "Use <label for=\"id\"> or aria-label on every form field"
},
{
"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": "accessibility",
"severity": "high",
"title": "3 buttons without accessible name",
"description": "Buttons with no text, aria-label, or title are invisible to screen readers",
"recommendation": "Add visible text or aria-label to all buttons"
},
{
"module": "social-checker",
"severity": "medium",
"title": "Missing Twitter Card",
"description": "No twitter:card meta tag — Twitter/X will use default preview",
"recommendation": "Add twitter:card meta tag (e.g., \"summary_large_image\")"
},
{
"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": "page-experience",
"severity": "high",
"title": "Intrusive interstitials detected",
"description": "Found 9 potential popup/overlay elements",
"recommendation": "Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties"
},
{
"module": "log-analyzer",
"severity": "medium",
"title": "X-Powered-By header exposed",
"description": "X-Powered-By: Next.js",
"recommendation": "Remove the X-Powered-By header to reduce information leakage"
}
]
}
```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.