Skip to main content
GeneralMixed

SEO Report: boligportal.dk

Generated April 26, 2026 · 47 findings · 3.6s

68
report.overallScore
65
seo
89
security
0
performance
21
accessibility
85
Best Practices

Institutional websites prioritize accessibility, security, and proper indexing — citizens and stakeholders need easy access to relevant information.

Score Breakdown

Average General score: 50

seo
65(+20 vs avg)
security
89(+31 vs avg)
performance
0(-44 vs avg)
accessibility
21(-31 vs avg)
Best Practices
85(+29 vs avg)

Score Projection

Estimated improvement based on the findings in this report

Current score: 68Projected score: 75
Current score
Free (+3)
Starter (+1)
Pro (+3)

Ready to improve your SEO?

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

Module Breakdown

accessibility
217 findings
social checker
255 findings
structured data
301 finding
sitemap
301 finding
content
475 findings
meta
547 findings
headers
704 findings
brand checker
704 findings
cookies
803 findings
robots
851 finding
technology
851 finding
crawl budget
851 finding
indexing checker
851 finding
mobile
902 findings
rate limits
952 findings
page experience
951 finding
dns
100
ssl
100
layout scan
100
news mentions
1001 finding
uptime checker
100
log analyzer
100

All Findings (43)

Critical (7)

  • highsitemap

    Missing sitemap.xml

    No sitemap.xml found at the root

    Create a sitemap.xml to help search engines discover all pages

  • highcontent

    Images missing alt text

    36 image(s) have no alt attribute

    Add descriptive alt text to all images for accessibility and SEO

  • highaccessibility

    Missing lang attribute

    The <html> tag does not have a lang attribute

    Add lang="en" (or appropriate language) to the <html> tag

  • highaccessibility

    36 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

  • highaccessibility

    1 form fields without labels

    Form inputs without associated labels are inaccessible

    Use <label for="id"> or aria-label on every form field

  • highaccessibility

    19 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

  • 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

Medium (21)

  • mediumcookies

    1 cookie missing Secure flag

    Cookies without Secure flag can be sent over unencrypted HTTP connections

    Add the Secure attribute to all cookies to prevent transmission over HTTP

  • 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

  • mediummeta

    Missing canonical URL

    No canonical link tag found

    Add a canonical URL to prevent duplicate content issues

  • 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)

  • mediummeta

    Missing lang attribute

    The <html> element has no lang attribute

    Add lang attribute to <html> for accessibility and SEO

  • 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

  • mediumtechnology

    Render-blocking scripts

    5 scripts load synchronously without async/defer

    Add async or defer to non-critical scripts to improve page load speed

  • mediumcontent

    Thin content

    Page has only 246 words (recommended: 300+)

    Add more meaningful content — aim for at least 300 words on key pages

  • mediumcontent

    Very low text-to-HTML ratio

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

    Increase meaningful text content relative to HTML markup

  • mediumcontent

    External links without noopener

    8 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

    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

  • 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

    No Organization schema

    No Organization JSON-LD found

    Add Organization structured data with name, logo, and contact information

  • mediumcrawl budget

    No sitemap.xml found

    sitemap.xml returned HTTP 404

    Create a sitemap.xml to help search engines discover all pages

  • 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

Low (15)

  • lowcookies

    1 cookie missing HttpOnly flag

    Cookies without HttpOnly can be accessed by JavaScript, increasing XSS risk

    Add HttpOnly to session and authentication cookies

  • lowcookies

    1 cookie missing SameSite attribute

    Missing SameSite defaults to Lax in modern browsers but should be explicit

    Set SameSite=Strict or SameSite=Lax on all cookies

  • 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

    Missing Cache-Control header

    No Cache-Control header — browser caching is undefined

    Add Cache-Control with appropriate max-age for static and dynamic resources

  • 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

  • lowcontent

    Lazy images without dimensions

    16 lazy-loaded images lack width/height — causes layout shift

    Add width and height attributes to lazy-loaded images

  • lowaccessibility

    Missing navigation landmark

    No <nav> element or role="navigation" found

    Wrap navigation links in a <nav> element

  • 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

  • lowsocial checker

    Missing og:type

    Open Graph type is not set

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

  • lowbrand checker

    No WebSite schema

    No WebSite JSON-LD found

    Add WebSite structured data for sitelinks search box in Google

  • 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

    Popup elements detected

    Found 1 popup/overlay element(s) — likely consent banners

    Ensure popups don't cover main content excessively, especially on mobile

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 boligportal.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": "boligportal.dk",
  "scores": {
    "overall": 68,
    "performance": 0,
    "seo": 65,
    "accessibility": 21,
    "bestPractices": 85,
    "security": 89
  },
  "findings": [
    {
      "module": "cookies",
      "severity": "medium",
      "title": "1 cookie missing Secure flag",
      "description": "Cookies without Secure flag can be sent over unencrypted HTTP connections",
      "recommendation": "Add the Secure attribute to all cookies to prevent transmission over HTTP"
    },
    {
      "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": "meta",
      "severity": "medium",
      "title": "Missing canonical URL",
      "description": "No canonical link tag found",
      "recommendation": "Add a canonical URL to prevent duplicate content issues"
    },
    {
      "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": "meta",
      "severity": "medium",
      "title": "Missing lang attribute",
      "description": "The <html> element has no lang attribute",
      "recommendation": "Add lang attribute to <html> for accessibility and SEO"
    },
    {
      "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": "sitemap",
      "severity": "high",
      "title": "Missing sitemap.xml",
      "description": "No sitemap.xml found at the root",
      "recommendation": "Create a sitemap.xml to help search engines discover all pages"
    },
    {
      "module": "technology",
      "severity": "medium",
      "title": "Render-blocking scripts",
      "description": "5 scripts load synchronously without async/defer",
      "recommendation": "Add async or defer to non-critical scripts to improve page load speed"
    },
    {
      "module": "content",
      "severity": "medium",
      "title": "Thin content",
      "description": "Page has only 246 words (recommended: 300+)",
      "recommendation": "Add more meaningful content — aim for at least 300 words on key pages"
    },
    {
      "module": "content",
      "severity": "medium",
      "title": "Very low text-to-HTML ratio",
      "description": "Text/HTML ratio is 1% (recommended: >5%)",
      "recommendation": "Increase meaningful text content relative to HTML markup"
    },
    {
      "module": "content",
      "severity": "high",
      "title": "Images missing alt text",
      "description": "36 image(s) have no alt attribute",
      "recommendation": "Add descriptive alt text to all images for accessibility and SEO"
    },
    {
      "module": "content",
      "severity": "medium",
      "title": "External links without noopener",
      "description": "8 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": "Missing lang attribute",
      "description": "The <html> tag does not have a lang attribute",
      "recommendation": "Add lang=\"en\" (or appropriate language) to the <html> tag"
    },
    {
      "module": "accessibility",
      "severity": "high",
      "title": "36 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": "high",
      "title": "1 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": "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": "accessibility",
      "severity": "high",
      "title": "19 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": "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": "No Organization schema",
      "description": "No Organization JSON-LD found",
      "recommendation": "Add Organization structured data with name, logo, and contact information"
    },
    {
      "module": "crawl-budget",
      "severity": "medium",
      "title": "No sitemap.xml found",
      "description": "sitemap.xml returned HTTP 404",
      "recommendation": "Create a sitemap.xml to help search engines discover all pages"
    },
    {
      "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"
    }
  ]
}
```

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.

Start your free trial

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