SEO Report: visma.fi
Generated April 30, 2026 · 32 findings · 3.2s
Service businesses need to dominate local search results with correct NAP data, reviews, and local signals to attract nearby customers.
Score Breakdown
Average Local Business score: 54
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 (30)
Critical (4)
- highcontent
Images missing alt text
1 image(s) have no alt attribute
Add descriptive alt text to all images for accessibility and SEO
- highaccessibility
1 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
- highpage experience
Intrusive interstitials detected
Found 11 potential popup/overlay elements
Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties
Medium (10)
- mediumdns
Missing SPF record
No SPF TXT record found. Email spoofing is possible.
Add a TXT record with v=spf1 policy
- mediumdns
Missing DMARC record
No DMARC policy found at _dmarc subdomain.
Add a DMARC TXT record to prevent email spoofing
- mediumdns
No DKIM record found
None of the common DKIM selectors returned a valid key. Email authentication may be incomplete.
Configure DKIM signing with your email provider and publish the public key in DNS
- mediumheaders
Missing x-content-type-options
X-Content-Type-Options is missing. MIME-sniffing attacks are possible.
Add X-Content-Type-Options: nosniff header
- mediumstructured data
No structured data found
No JSON-LD schemas detected on the page
Add structured data (Organization, WebSite, BreadcrumbList) for rich search results
- mediumtechnology
Render-blocking scripts
9 scripts load synchronously without async/defer
Add async or defer to non-critical scripts to improve page load speed
- mediumcontent
Multiple H1 tags
Found 4 H1 tags (recommended: exactly 1)
Use only one H1 per page; use H2-H6 for subsections
- mediumcontent
External links without noopener
8 external links with target="_blank" lack rel="noopener"
Add rel="noopener noreferrer" to all target="_blank" links
- 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
- mediumbrand checker
No Organization schema
No Organization JSON-LD found
Add Organization structured data with name, logo, and contact information
Low (16)
- 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
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:url
Open Graph URL is not set
Add og:url meta tag matching the canonical URL
- lowsitemap
No lastmod dates
Sitemap URLs don't include lastmod timestamps
Add <lastmod> to help search engines prioritize crawling
- lowtechnology
Many inline scripts
18 inline <script> blocks found
Move inline scripts to external files for caching and CSP compliance
- lowtechnology
Many third-party domains
23 external domains — may impact performance and privacy
Reduce third-party dependencies or self-host critical resources
- lowcontent
Low text-to-HTML ratio
Text/HTML ratio is 3% (recommended: >5%)
Consider adding more descriptive text content
- lowcontent
Empty anchor links
41 links point to "#" or "javascript:void(0)"
Use proper URLs or button elements instead of empty anchors
- lowcontent
Multiple iframes detected
4 iframes found — content inside iframes is harder for search engines to crawl
Minimize use of iframes for important content
- lowcontent
Lazy images without dimensions
53 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
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
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 visma.fi.
Prioritize high-severity issues first, then medium. For each fix, make the actual code change — don't just describe what to do.
```json
{
"domain": "visma.fi",
"scores": {
"overall": 80,
"performance": 0,
"seo": 81,
"accessibility": 62,
"bestPractices": 93,
"security": 83
},
"findings": [
{
"module": "dns",
"severity": "medium",
"title": "Missing SPF record",
"description": "No SPF TXT record found. Email spoofing is possible.",
"recommendation": "Add a TXT record with v=spf1 policy"
},
{
"module": "dns",
"severity": "medium",
"title": "Missing DMARC record",
"description": "No DMARC policy found at _dmarc subdomain.",
"recommendation": "Add a DMARC TXT record to prevent email spoofing"
},
{
"module": "dns",
"severity": "medium",
"title": "No DKIM record found",
"description": "None of the common DKIM selectors returned a valid key. Email authentication may be incomplete.",
"recommendation": "Configure DKIM signing with your email provider and publish the public key in DNS"
},
{
"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": "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": "technology",
"severity": "medium",
"title": "Render-blocking scripts",
"description": "9 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": "Multiple H1 tags",
"description": "Found 4 H1 tags (recommended: exactly 1)",
"recommendation": "Use only one H1 per page; use H2-H6 for subsections"
},
{
"module": "content",
"severity": "high",
"title": "Images missing alt text",
"description": "1 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": "accessibility",
"severity": "high",
"title": "1 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": "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": "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 11 potential popup/overlay elements",
"recommendation": "Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties"
}
]
}
```Recommendations for your industry
- 1Optimize Google Business profile
- 2Add Service/LocalBusiness schema
- 3Integrate customer reviews with Review schema
- 4Ensure consistent NAP data across all pages
- 5Create profiles in local business directories
SEO Checklist for Local Business
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
Finland has high technology adoption and favors Finnish-language pages.