SEO Report: skolplus.se
Generated 28 أبريل 2026 · 60 findings · 2.5s
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 (56)
حرج (11)
- highssl
SSL certificate not found
Could not retrieve SSL certificate
Ensure the site has a valid SSL certificate installed
- highmeta
Missing meta description
No meta description tag found
Add a meta description (120-160 characters)
- highmeta
Missing viewport meta
No viewport meta tag found. Mobile rendering will be broken.
Add <meta name="viewport" content="width=device-width, initial-scale=1">
- 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
- highmobile
Missing viewport meta tag
No viewport meta tag found — page will not be mobile-responsive
Add <meta name="viewport" content="width=device-width, initial-scale=1">
- highaccessibility
Missing lang attribute
The <html> tag does not have a lang attribute
Add lang="en" (or appropriate language) to the <html> tag
- highaccessibility
2 form fields without labels
Form inputs without associated labels are inaccessible
Use <label for="id"> or aria-label on every form field
- 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
Missing viewport meta
No viewport meta tag — mobile rendering will be broken
Add <meta name="viewport" content="width=device-width, initial-scale=1">
- highlog analyzer
Exposed phpinfo()
phpinfo.php is publicly accessible, leaking server configuration details
Remove phpinfo.php from the production server immediately
متوسط (25)
- mediumcookies
3 cookies 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
Title too short
Title is 8 characters (recommended: 50-60)
Write a more descriptive title (50-60 characters)
- 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 User-agent directive
robots.txt has no User-agent directive
Add User-agent: * to apply rules to all crawlers
- mediumrobots
No sitemap in robots.txt
robots.txt does not reference a sitemap
Add Sitemap: https://yourdomain.com/sitemap.xml to robots.txt
- mediumcontent
Thin content
Page has only 177 words (recommended: 300+)
Add more meaningful content — aim for at least 300 words on key pages
- mediummobile
Fixed-width elements may cause horizontal scroll
2 elements have fixed widths > 400px
Use max-width: 100% or responsive units instead of fixed pixel widths
- 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
- mediumlayout scan
No landmark elements
No semantic landmarks found (nav, main, header, footer)
Use semantic HTML5 landmarks for better accessibility and SEO
- 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")
- 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
Exposed /wp-admin
/wp-admin is accessible (HTTP 200) — CMS admin panel is publicly visible
Restrict access to admin panels via IP whitelisting or authentication
- mediumlog analyzer
Exposed /wp-login.php
/wp-login.php is accessible (HTTP 200) — CMS admin panel is publicly visible
Restrict access to admin panels via IP whitelisting or authentication
- mediumlog analyzer
X-Powered-By header exposed
X-Powered-By: PHP/8.1.34, PleskLin
Remove the X-Powered-By header to reduce information leakage
منخفض (20)
- lowcookies
3 cookies missing HttpOnly flag
Cookies without HttpOnly can be accessed by JavaScript, increasing XSS risk
Add HttpOnly to session and authentication cookies
- lowcookies
3 cookies missing SameSite attribute
Missing SameSite defaults to Lax in modern browsers but should be explicit
Set SameSite=Strict or SameSite=Lax on all cookies
- lowcookies
1 cookie with expiry > 1 year
Long cookie lifetimes may violate privacy regulations
Reduce cookie lifetimes to the minimum necessary period
- lowdns
No IPv6 (AAAA) records
The domain has no AAAA records for IPv6 connectivity
Add AAAA DNS records for IPv6 support
- lowdns
DMARC policy is 'none'
DMARC is set but policy is 'none' (monitoring only).
Consider upgrading DMARC policy to 'quarantine' or 'reject'
- lowheaders
Server header exposes software
Server: nginx
Remove or obfuscate the Server header to reduce information leakage
- lowheaders
X-Powered-By exposes technology
X-Powered-By: PHP/8.1.34, PleskLin
Remove the X-Powered-By header
- 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
- lowmobile
Missing autocomplete attributes
1 form fields lack autocomplete hints
Add autocomplete attributes (email, tel, name) for faster mobile form filling
- lowaccessibility
Missing navigation landmark
No <nav> element or role="navigation" found
Wrap navigation links in a <nav> element
- 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 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 2 popup/overlay element(s) — likely consent banners
Ensure popups don't cover main content excessively, especially on mobile
- lowpage experience
No lazy loading on images
11 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 skolplus.se.
Prioritize high-severity issues first, then medium. For each fix, make the actual code change — don't just describe what to do.
```json
{
"domain": "skolplus.se",
"scores": {
"overall": 62,
"performance": 0,
"seo": 65,
"accessibility": 51,
"bestPractices": 64,
"security": 63
},
"findings": [
{
"module": "cookies",
"severity": "medium",
"title": "3 cookies 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": "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": "meta",
"severity": "medium",
"title": "Title too short",
"description": "Title is 8 characters (recommended: 50-60)",
"recommendation": "Write a more descriptive title (50-60 characters)"
},
{
"module": "meta",
"severity": "high",
"title": "Missing meta description",
"description": "No meta description tag found",
"recommendation": "Add a meta description (120-160 characters)"
},
{
"module": "meta",
"severity": "high",
"title": "Missing viewport meta",
"description": "No viewport meta tag found. Mobile rendering will be broken.",
"recommendation": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"
},
{
"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 User-agent directive",
"description": "robots.txt has no User-agent directive",
"recommendation": "Add User-agent: * to apply rules to all crawlers"
},
{
"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": "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 177 words (recommended: 300+)",
"recommendation": "Add more meaningful content — aim for at least 300 words on key pages"
},
{
"module": "mobile",
"severity": "high",
"title": "Missing viewport meta tag",
"description": "No viewport meta tag found — page will not be mobile-responsive",
"recommendation": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"
},
{
"module": "mobile",
"severity": "medium",
"title": "Fixed-width elements may cause horizontal scroll",
"description": "2 elements have fixed widths > 400px",
"recommendation": "Use max-width: 100% or responsive units instead of fixed pixel widths"
},
{
"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": "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": "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": "layout-scan",
"severity": "medium",
"title": "No landmark elements",
"description": "No semantic landmarks found (nav, main, header, footer)",
"recommendation": "Use semantic HTML5 landmarks for better accessibility and SEO"
},
{
"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": "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": "page-experience",
"severity": "high",
"title": "Missing viewport meta",
"description": "No viewport meta tag — mobile rendering will be broken",
"recommendation": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"
},
{
"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": "Exposed /wp-admin",
"description": "/wp-admin is accessible (HTTP 200) — CMS admin panel is publicly visible",
"recommendation": "Restrict access to admin panels via IP whitelisting or authentication"
},
{
"module": "log-analyzer",
"severity": "high",
"title": "Exposed phpinfo()",
"description": "phpinfo.php is publicly accessible, leaking server configuration details",
"recommendation": "Remove phpinfo.php from the production server immediately"
},
{
"module": "log-analyzer",
"severity": "medium",
"title": "Exposed /wp-login.php",
"description": "/wp-login.php is accessible (HTTP 200) — CMS admin panel is publicly visible",
"recommendation": "Restrict access to admin panels via IP whitelisting or authentication"
},
{
"module": "log-analyzer",
"severity": "medium",
"title": "X-Powered-By header exposed",
"description": "X-Powered-By: PHP/8.1.34, PleskLin",
"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
Sweden has high internet penetration and favors Swedish domains in local searches.