SEO Report: t2n.fr
Generated May 30, 2026 · 62 findings · 9.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
Ready to improve your SEO?
Start a free trial and see how your score can improve.
Module Breakdown
All Findings (59)
Critical (7)
- 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
- highheaders
HTTP 500 error
Server returned HTTP 500
Fix the server error to return a 200 status
- 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
Missing sitemap.xml
No sitemap.xml found at the root
Create a sitemap.xml to help search engines discover all pages
- 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
- highuptime checker
No HTTPS redirect
HTTP requests are not redirected to HTTPS
Configure a 301 redirect from HTTP to HTTPS for all pages
Medium (26)
- mediumcookies
4 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
- 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 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
- mediumssl
HTTP does not redirect to HTTPS
Port 80 does not redirect to HTTPS
Set up a 301 redirect from HTTP to HTTPS
- 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)
- 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
Missing robots.txt
robots.txt returned HTTP 404
Create a robots.txt file to guide search engine crawlers
- mediumcontent
Thin content
Page has only 13 words (recommended: 300+)
Add more meaningful content — aim for at least 300 words on key pages
- mediumcontent
No internal links
No internal links found on the page
Add internal links to help search engines discover and understand your site structure
- 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
Inconsistent headings
Desktop has 1 H1 tags, mobile has 0
Ensure the same heading structure is served to both mobile and desktop users
- 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
Inconsistent www handling
Both www and non-www versions respond with 200 — one should redirect to the other
Choose either www or non-www as canonical and redirect the other with a 301
- mediumbrand checker
No Organization schema
No Organization JSON-LD found
Add Organization structured data with name, logo, and contact information
- mediumbrand checker
Missing favicon
No favicon link tag found
Add a favicon for brand recognition in browser tabs and bookmarks
- 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
- mediumreputation
No review platform links found
No links to Trustpilot, Google Business, TripAdvisor, Yelp, G2, Capterra, or Glassdoor detected on the homepage
Add links to your review profiles to build trust signals and improve local SEO
Low (26)
- lowcookies
4 cookies missing HttpOnly flag
Cookies without HttpOnly can be accessed by JavaScript, increasing XSS risk
Add HttpOnly to session and authentication cookies
- lowcookies
4 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
- lowdns
DMARC policy is 'none'
DMARC is set but policy is 'none' (monitoring only).
Consider upgrading DMARC policy to 'quarantine' or 'reject'
- lowdns
DMARC reporting not configured
DMARC record does not have a rua= tag for aggregate reports.
Add rua=mailto:[email protected] to receive DMARC reports
- 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
- 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
- lowheaders
Content-Type missing charset
Content-Type header does not specify charset
Add charset=utf-8 to Content-Type 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
- lowmeta
Missing favicon
No favicon link tag found
Add a favicon for better browser tab recognition
- 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
- lownews mentions
No press or news presence
No press pages found on the site and no external news mentions detected
Create a /news or /press page with company updates — this builds authority and earns links
- lowsocial checker
Missing og:type
Open Graph type is not set
Add og:type meta tag (e.g., "website", "article")
- lowsocial checker
No social profile links
No links to social media profiles found on the homepage
Add links to your social media profiles for better brand visibility and authority signals
- lowuptime checker
No custom 404 page
The 404 error page appears to be a generic server default
Create a custom 404 page with navigation links and search to retain visitors
- 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
- lowcrawl budget
No robots.txt found
No robots.txt file — no crawl directives
Add a robots.txt file with sitemap reference and crawl directives
- 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
113 images without lazy loading
Add loading="lazy" to below-the-fold images for faster initial page load
- lowreputation
Only 0 sameAs entries
Found 0 sameAs URLs across all JSON-LD entities — search engines use sameAs to verify brand identity
Add sameAs URLs for all your social profiles, Wikipedia page, and business directory listings (aim for 3+)
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 t2n.fr.
Prioritize high-severity issues first, then medium. For each fix, make the actual code change — don't just describe what to do.
```json
{
"domain": "t2n.fr",
"scores": {
"overall": 76,
"performance": 0,
"seo": 65,
"accessibility": 81,
"bestPractices": 88,
"security": 79
},
"findings": [
{
"module": "cookies",
"severity": "medium",
"title": "4 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": "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": "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": "headers",
"severity": "high",
"title": "HTTP 500 error",
"description": "Server returned HTTP 500",
"recommendation": "Fix the server error to return a 200 status"
},
{
"module": "ssl",
"severity": "medium",
"title": "HTTP does not redirect to HTTPS",
"description": "Port 80 does not redirect to HTTPS",
"recommendation": "Set up a 301 redirect from HTTP to HTTPS"
},
{
"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": "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": "Missing robots.txt",
"description": "robots.txt returned HTTP 404",
"recommendation": "Create a robots.txt file to guide search engine crawlers"
},
{
"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": "content",
"severity": "medium",
"title": "Thin content",
"description": "Page has only 13 words (recommended: 300+)",
"recommendation": "Add more meaningful content — aim for at least 300 words on key pages"
},
{
"module": "content",
"severity": "medium",
"title": "No internal links",
"description": "No internal links found on the page",
"recommendation": "Add internal links to help search engines discover and understand your site structure"
},
{
"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": "Inconsistent headings",
"description": "Desktop has 1 H1 tags, mobile has 0",
"recommendation": "Ensure the same heading structure is served to both mobile and desktop users"
},
{
"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": "high",
"title": "No HTTPS redirect",
"description": "HTTP requests are not redirected to HTTPS",
"recommendation": "Configure a 301 redirect from HTTP to HTTPS for all pages"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Inconsistent www handling",
"description": "Both www and non-www versions respond with 200 — one should redirect to the other",
"recommendation": "Choose either www or non-www as canonical and redirect the other with a 301"
},
{
"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": "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": "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"
},
{
"module": "reputation",
"severity": "medium",
"title": "No review platform links found",
"description": "No links to Trustpilot, Google Business, TripAdvisor, Yelp, G2, Capterra, or Glassdoor detected on the homepage",
"recommendation": "Add links to your review profiles to build trust signals and improve local SEO"
}
]
}
```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
France requires French content for local searches and has strict RGPD rules.