Skip to main content
EcommerceB2C

SEO Report: borsen.dk

Generated 27 April 2026 · 42 findings · 5.2s

80
report.overallScore
88
seo
76
security
0
performance
69
accessibility
84
Best Practices

Ecommerce and commercial websites have unique SEO challenges — product pages require structured data, fast loading, and optimal mobile experience to convert.

Score Breakdown

Average Ecommerce score: 62

seo
88(+30 vs avg)
security
76(+5 vs avg)
performance
0(-55 vs avg)
accessibility
69(+5 vs avg)
Best Practices
84(+16 vs avg)

Score Projection

Estimated improvement based on the findings in this report

Current score: 80Projected score: 85
Current score
Free (+3)
Pro (+2)

Ready to improve your SEO?

Start a free trial and see how your score can improve.

Module Breakdown

headers
157 findings
social checker
255 findings
meta
617 findings
page experience
653 findings
accessibility
693 findings
content
702 findings
rate limits
753 findings
brand checker
753 findings
structured data
903 findings
cookies
951 finding
dns
951 finding
sitemap
951 finding
technology
951 finding
ssl
100
robots
100
mobile
1001 finding
layout scan
100
news mentions
1001 finding
uptime checker
100
crawl budget
100
indexing checker
100
log analyzer
100

All Findings (38)

Critical (5)

  • 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

  • highcontent

    Images missing alt text

    5 image(s) have no alt attribute

    Add descriptive alt text to all images for accessibility and SEO

  • highaccessibility

    5 images missing alt attribute

    Images without alt text are inaccessible to screen readers

    Add descriptive alt text to all informational images, or alt="" for decorative ones

  • highsocial checker

    Missing og:title

    Open Graph title is not set — social shares will use generic text

    Add og:title meta tag for compelling social media previews

  • highpage experience

    Intrusive interstitials detected

    Found 3 potential popup/overlay elements

    Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties

Medium (14)

  • 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

  • mediumheaders

    Missing x-content-type-options

    X-Content-Type-Options is missing. MIME-sniffing attacks are possible.

    Add X-Content-Type-Options: nosniff header

  • mediumheaders

    Missing x-frame-options

    X-Frame-Options is missing. The site may be vulnerable to clickjacking.

    Add X-Frame-Options: DENY or SAMEORIGIN header

  • mediummeta

    Title too short

    Title is 6 characters (recommended: 50-60)

    Write a more descriptive title (50-60 characters)

  • mediummeta

    Missing og:title

    Open Graph title is not set

    Add og:title meta tag for social sharing

  • mediummeta

    Missing og:image

    No Open Graph image set. Social shares will lack a preview image.

    Add og:image meta tag (1200x630px recommended)

  • mediumcontent

    Very low text-to-HTML ratio

    Text/HTML ratio is 2% (recommended: >5%)

    Increase meaningful text content relative to HTML markup

  • 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

  • mediumaccessibility

    Potential color contrast issues

    8 elements with very light text colors detected

    Ensure text meets WCAG AA contrast ratio (4.5:1 for normal text, 3:1 for large text)

  • 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

  • mediumsocial checker

    Missing og:description

    Open Graph description is not set

    Add og:description for better social sharing previews

  • mediumsocial checker

    Missing og:image

    No social sharing image set — posts will lack visual appeal

    Add og:image meta tag (1200x630px recommended)

  • 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

    Missing favicon

    No favicon link tag found

    Add a favicon for brand recognition in browser tabs and bookmarks

Low (19)

  • 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 referrer-policy

    Referrer-Policy is not set. Full URLs may leak to third parties.

    Add Referrer-Policy: strict-origin-when-cross-origin

  • lowheaders

    Missing permissions-policy

    Permissions-Policy is missing.

    Add Permissions-Policy to restrict browser feature access

  • lowheaders

    Server header exposes software

    Server: Apache

    Remove or obfuscate the Server header to reduce information leakage

  • lowmeta

    Missing og:description

    Open Graph description is not set

    Add og:description meta tag for social sharing

  • lowmeta

    Missing Twitter Card

    No twitter:card meta tag

    Add twitter:card meta tag for Twitter sharing

  • lowmeta

    Missing favicon

    No favicon link tag found

    Add a favicon for better browser tab recognition

  • lowstructured data

    Duplicate ItemList schema

    Found 3 schemas of type ItemList

    Consider consolidating duplicate ItemList schemas into one

  • lowstructured data

    Duplicate NewsArticle schema

    Found 31 schemas of type NewsArticle

    Consider consolidating duplicate NewsArticle schemas into one

  • lowsitemap

    No lastmod dates

    Sitemap URLs don't include lastmod timestamps

    Add <lastmod> to help search engines prioritize crawling

  • lowtechnology

    Many inline scripts

    47 inline <script> blocks found

    Move inline scripts to external files for caching and CSP compliance

  • 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

    Missing og:type

    Open Graph type is not set

    Add og:type meta tag (e.g., "website", "article")

  • lowbrand checker

    No web app manifest

    No manifest.json linked — PWA features unavailable

    Add a web app manifest for installability and brand customization

  • 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 resource hints

    No preload or preconnect hints found

    Add preload for critical resources and preconnect for important third-party origins

  • lowpage experience

    No lazy loading on images

    60 images without lazy loading

    Add loading="lazy" to below-the-fold images for faster initial page load

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 borsen.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": "borsen.dk",
  "scores": {
    "overall": 80,
    "performance": 0,
    "seo": 88,
    "accessibility": 69,
    "bestPractices": 84,
    "security": 76
  },
  "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": "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": "headers",
      "severity": "medium",
      "title": "Missing x-content-type-options",
      "description": "X-Content-Type-Options is missing. MIME-sniffing attacks are possible.",
      "recommendation": "Add X-Content-Type-Options: nosniff header"
    },
    {
      "module": "headers",
      "severity": "medium",
      "title": "Missing x-frame-options",
      "description": "X-Frame-Options is missing. The site may be vulnerable to clickjacking.",
      "recommendation": "Add X-Frame-Options: DENY or SAMEORIGIN header"
    },
    {
      "module": "meta",
      "severity": "medium",
      "title": "Title too short",
      "description": "Title is 6 characters (recommended: 50-60)",
      "recommendation": "Write a more descriptive title (50-60 characters)"
    },
    {
      "module": "meta",
      "severity": "medium",
      "title": "Missing og:title",
      "description": "Open Graph title is not set",
      "recommendation": "Add og:title meta tag for social sharing"
    },
    {
      "module": "meta",
      "severity": "medium",
      "title": "Missing og:image",
      "description": "No Open Graph image set. Social shares will lack a preview image.",
      "recommendation": "Add og:image meta tag (1200x630px recommended)"
    },
    {
      "module": "content",
      "severity": "medium",
      "title": "Very low text-to-HTML ratio",
      "description": "Text/HTML ratio is 2% (recommended: >5%)",
      "recommendation": "Increase meaningful text content relative to HTML markup"
    },
    {
      "module": "content",
      "severity": "high",
      "title": "Images missing alt text",
      "description": "5 image(s) have no alt attribute",
      "recommendation": "Add descriptive alt text to all images for accessibility and SEO"
    },
    {
      "module": "accessibility",
      "severity": "high",
      "title": "5 images missing alt attribute",
      "description": "Images without alt text are inaccessible to screen readers",
      "recommendation": "Add descriptive alt text to all informational images, or alt=\"\" for decorative ones"
    },
    {
      "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": "medium",
      "title": "Potential color contrast issues",
      "description": "8 elements with very light text colors detected",
      "recommendation": "Ensure text meets WCAG AA contrast ratio (4.5:1 for normal text, 3:1 for large text)"
    },
    {
      "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": "social-checker",
      "severity": "high",
      "title": "Missing og:title",
      "description": "Open Graph title is not set — social shares will use generic text",
      "recommendation": "Add og:title meta tag for compelling social media previews"
    },
    {
      "module": "social-checker",
      "severity": "medium",
      "title": "Missing og:description",
      "description": "Open Graph description is not set",
      "recommendation": "Add og:description for better social sharing previews"
    },
    {
      "module": "social-checker",
      "severity": "medium",
      "title": "Missing og:image",
      "description": "No social sharing image set — posts will lack visual appeal",
      "recommendation": "Add og:image meta tag (1200x630px recommended)"
    },
    {
      "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": "Missing favicon",
      "description": "No favicon link tag found",
      "recommendation": "Add a favicon for brand recognition in browser tabs and bookmarks"
    },
    {
      "module": "page-experience",
      "severity": "high",
      "title": "Intrusive interstitials detected",
      "description": "Found 3 potential popup/overlay elements",
      "recommendation": "Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties"
    }
  ]
}
```

Recommendations for your industry

  • 1Add Product schema markup to product pages
  • 2Mark up prices with Offer schema
  • 3Optimize checkout speed to under 3 seconds
  • 4Add trust signals and customer reviews
  • 5Ensure mobile-friendly checkout experience

SEO Checklist for Ecommerce

Tips for B2C websites

  • →Prioritize mobile speed and user experience
  • →Use rich structured data for products/services
  • →Implement customer reviews and social proof

Local SEO Context

In Denmark, Google dominates with 95%+ market share. Focus on local searches and Danish language quality.

Start your free trial

Use Ctrl+P / Cmd+P to save as PDF