SEO Report: artis.fr
Generated May 9, 2026 · 42 findings · 13.9s
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 (40)
Critical (4)
- highcontent
No H1 tag found
The page has no H1 heading
Add exactly one H1 tag with the primary keyword
- highlayout scan
Could not fetch page
Failed to fetch the page for layout analysis
Ensure the site is accessible
- highpage experience
Intrusive interstitials detected
Found 3 potential popup/overlay elements
Reduce intrusive interstitials — they hurt mobile experience and can trigger Google penalties
- highreputation
Missing AggregateRating in schema
Found Organization schema without AggregateRating — missing rich snippet opportunity
Add aggregateRating with ratingValue, ratingCount, and bestRating to your structured data for star ratings in search results
Medium (18)
- 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
- mediumstructured data
Missing @type in schema
A structured data object has no @type
Add a @type property (e.g. Organization, WebSite)
- mediumcontent
Very low text-to-HTML ratio
Text/HTML ratio is 2% (recommended: >5%)
Increase meaningful text content relative to HTML markup
- mediumcontent
External links without noopener
21 external links with target="_blank" lack rel="noopener"
Add rel="noopener noreferrer" to all target="_blank" links
- mediumcontent
Generic anchor text in internal links
13 internal links use generic text like "En savoir plus" — search engines use anchor text to understand target pages
Replace generic anchor text with descriptive keywords that describe the linked page content
- mediumaccessibility
Auto-playing media detected
1 video/audio elements auto-play
Avoid auto-playing media or ensure it has controls and is muted by default
- 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
- mediumuptime checker
Slow response time
Average response time is 2468ms (should be < 2000ms)
Optimize server response time — consider CDN, caching, or server upgrades
- mediumuptime checker
Intermittent failures
1 of 3 requests failed
Investigate server stability — intermittent failures hurt user experience and SEO
- mediumcrawl budget
No sitemap.xml found
sitemap.xml returned HTTP 404
Create a sitemap.xml to help search engines discover all pages
- 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
- mediumreputation
LocalBusiness missing "address"
LocalBusiness/Organization schema found but "address" is not set
Add "address" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "telephone"
LocalBusiness/Organization schema found but "telephone" is not set
Add "telephone" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "openingHours"
LocalBusiness/Organization schema found but "openingHours" is not set
Add "openingHours" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "geo"
LocalBusiness/Organization schema found but "geo" is not set
Add "geo" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "priceRange"
LocalBusiness/Organization schema found but "priceRange" is not set
Add "priceRange" to your LocalBusiness schema for better local search visibility
Low (18)
- 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
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
HSTS max-age too short
HSTS max-age is 15552000s (recommended: 31536000)
Set max-age to at least 31536000 (1 year)
- lowheaders
Server header exposes software
Server: Apache/2.4.62 (Debian)
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
- lowstructured data
Missing Organization schema
No Organization or LocalBusiness structured data found
Add Organization schema with name, logo, and contact info
- lowstructured data
Missing WebSite schema
No WebSite structured data found
Add WebSite schema with SearchAction for sitelinks search box
- lowtechnology
Many inline scripts
21 inline <script> blocks found
Move inline scripts to external files for caching and CSP compliance
- lowtechnology
Many third-party domains
21 external domains — may impact performance and privacy
Reduce third-party dependencies or self-host critical resources
- lowmobile
Unresponsive images
5 images lack srcset or responsive sizing
Use srcset and sizes attributes for responsive images
- 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
- lowbrand checker
No web app manifest
No manifest.json linked — PWA features unavailable
Add a web app manifest for installability and brand customization
- lowpage experience
No lazy loading on images
22 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 artis.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": "artis.fr",
"scores": {
"overall": 89,
"performance": 0,
"seo": 87,
"accessibility": 92,
"bestPractices": 88,
"security": 91
},
"findings": [
{
"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": "structured-data",
"severity": "medium",
"title": "Missing @type in schema",
"description": "A structured data object has no @type",
"recommendation": "Add a @type property (e.g. Organization, WebSite)"
},
{
"module": "content",
"severity": "high",
"title": "No H1 tag found",
"description": "The page has no H1 heading",
"recommendation": "Add exactly one H1 tag with the primary keyword"
},
{
"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": "medium",
"title": "External links without noopener",
"description": "21 external links with target=\"_blank\" lack rel=\"noopener\"",
"recommendation": "Add rel=\"noopener noreferrer\" to all target=\"_blank\" links"
},
{
"module": "content",
"severity": "medium",
"title": "Generic anchor text in internal links",
"description": "13 internal links use generic text like \"En savoir plus\" — search engines use anchor text to understand target pages",
"recommendation": "Replace generic anchor text with descriptive keywords that describe the linked page content"
},
{
"module": "accessibility",
"severity": "medium",
"title": "Auto-playing media detected",
"description": "1 video/audio elements auto-play",
"recommendation": "Avoid auto-playing media or ensure it has controls and is muted by default"
},
{
"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": "high",
"title": "Could not fetch page",
"description": "Failed to fetch the page for layout analysis",
"recommendation": "Ensure the site is accessible"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Slow response time",
"description": "Average response time is 2468ms (should be < 2000ms)",
"recommendation": "Optimize server response time — consider CDN, caching, or server upgrades"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Intermittent failures",
"description": "1 of 3 requests failed",
"recommendation": "Investigate server stability — intermittent failures hurt user experience and SEO"
},
{
"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": "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"
},
{
"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"
},
{
"module": "reputation",
"severity": "high",
"title": "Missing AggregateRating in schema",
"description": "Found Organization schema without AggregateRating — missing rich snippet opportunity",
"recommendation": "Add aggregateRating with ratingValue, ratingCount, and bestRating to your structured data for star ratings in search results"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"address\"",
"description": "LocalBusiness/Organization schema found but \"address\" is not set",
"recommendation": "Add \"address\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"telephone\"",
"description": "LocalBusiness/Organization schema found but \"telephone\" is not set",
"recommendation": "Add \"telephone\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"openingHours\"",
"description": "LocalBusiness/Organization schema found but \"openingHours\" is not set",
"recommendation": "Add \"openingHours\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"geo\"",
"description": "LocalBusiness/Organization schema found but \"geo\" is not set",
"recommendation": "Add \"geo\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"priceRange\"",
"description": "LocalBusiness/Organization schema found but \"priceRange\" is not set",
"recommendation": "Add \"priceRange\" to your LocalBusiness schema for better local search visibility"
}
]
}
```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
France requires French content for local searches and has strict RGPD rules.