SEO audit for netevolution.fr
Netevolution — Développeur Web Fullstack Freelance | Symfony, API, SaaS
Health 65/100 (fair) · 13 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)Sylvain Painchaud — Développeur Fullstack PHP/Symfony freelance à Vernou-la-Celle-sur-Seine (77). Création de sites web, applications mobiles, SaaS et API sur mesure. 12 ans d'expérience.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Canonical | 84 | 0 | 7 | 7 |
| Security | 84 | 0 | 7 | 7 |
| Crawlability | 86 | 0 | 6 | 0 |
| Content | 98 | 0 | 1 | 2 |
| Agent Readiness | 100 | 0 | 0 | 15 |
| Images | 100 | 0 | 0 | 1 |
| Meta Description | 100 | 0 | 0 | 7 |
| Performance | 100 | 0 | 0 | 8 |
| Social | 100 | 0 | 0 | 10 |
| Structured Data | 100 | 0 | 0 | 2 |
Warnings (4 rules)
warning Canonical target is non-200 / non-indexable
Rule canonical.bad_target · Canonical · 7 occurrence(s)
- https://netevolution.fr/ — canonical → https://www.netevolution.fr/ (status 0, noindex=false)
- https://netevolution.fr/about.html — canonical → https://www.netevolution.fr/about.html (status 0, noindex=false)
- https://netevolution.fr/appointment.html — canonical → https://www.netevolution.fr/appointment.html (status 0, noindex=false)
- https://netevolution.fr/contact.html — canonical → https://www.netevolution.fr/contact.html (status 0, noindex=false)
- https://netevolution.fr/index.html — canonical → https://www.netevolution.fr/ (status 0, noindex=false)
- https://netevolution.fr/portfolio.html — canonical → https://www.netevolution.fr/portfolio.html (status 0, noindex=false)
- https://netevolution.fr/services.html — canonical → https://www.netevolution.fr/services.html (status 0, noindex=false)
warning Thin content (low word count)
Rule content.thin · Content · 1 occurrence(s)
- https://netevolution.fr/contact.html — 199 words
warning Incomplete/empty response after retries (likely transient — re-crawl)
Rule fetch.incomplete · Crawlability · 6 occurrence(s)
- https://www.netevolution.fr/ — http/1.1: Get "https://www.netevolution.fr/": guard: host resolution failed: "www.netevolution.fr": lookup www.netevolution.fr on 127.0.0.53:53: no such host after 3 attempts
- https://www.netevolution.fr/about.html — http/1.1: Get "https://www.netevolution.fr/about.html": guard: host resolution failed: "www.netevolution.fr": lookup www.netevolution.fr on 127.0.0.53:53: no such host after 3 attempts
- https://www.netevolution.fr/appointment.html — http/1.1: Get "https://www.netevolution.fr/appointment.html": guard: host resolution failed: "www.netevolution.fr": lookup www.netevolution.fr on 127.0.0.53:53: no such host after 3 attempts
- https://www.netevolution.fr/contact.html — http/1.1: Get "https://www.netevolution.fr/contact.html": guard: host resolution failed: "www.netevolution.fr": lookup www.netevolution.fr on 127.0.0.53:53: no such host after 3 attempts
- https://www.netevolution.fr/portfolio.html — http/1.1: Get "https://www.netevolution.fr/portfolio.html": guard: host resolution failed: "www.netevolution.fr": lookup www.netevolution.fr on 127.0.0.53:53: no such host after 3 attempts
- https://www.netevolution.fr/services.html — http/1.1: Get "https://www.netevolution.fr/services.html": guard: host resolution failed: "www.netevolution.fr": lookup www.netevolution.fr on 127.0.0.53:53: no such host after 3 attempts
warning Content-Type header doesn't match the actual content
Rule headers.content_type_mismatch · Security · 7 occurrence(s)
- https://netevolution.fr/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://netevolution.fr/about.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://netevolution.fr/appointment.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://netevolution.fr/contact.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://netevolution.fr/index.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://netevolution.fr/portfolio.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://netevolution.fr/services.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
Notices (13 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 7 occurrence(s)
- https://netevolution.fr/ — h4 follows h2 — skips h3
- https://netevolution.fr/about.html — h4 follows h2 — skips h3
- https://netevolution.fr/appointment.html — h3 follows h1 — skips h2
- https://netevolution.fr/contact.html — h4 follows h2 — skips h3
- https://netevolution.fr/index.html — h4 follows h2 — skips h3
- https://netevolution.fr/portfolio.html — h3 follows h1 — skips h2
- https://netevolution.fr/services.html — h4 follows h2 — skips h3
notice No llms.txt for AI agents
Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)
- https://netevolution.fr/ — no llms.txt found at the site root — add one so AI agents get a curated site summary
notice No main landmark for AI agents
Rule agent.no_main_landmark · Agent Readiness · 7 occurrence(s)
- https://netevolution.fr/ — add a <main> element (or role=main) around the primary content
- https://netevolution.fr/about.html — add a <main> element (or role=main) around the primary content
- https://netevolution.fr/appointment.html — add a <main> element (or role=main) around the primary content
- https://netevolution.fr/contact.html — add a <main> element (or role=main) around the primary content
- https://netevolution.fr/index.html — add a <main> element (or role=main) around the primary content
- https://netevolution.fr/portfolio.html — add a <main> element (or role=main) around the primary content
- https://netevolution.fr/services.html — add a <main> element (or role=main) around the primary content
notice Canonical points to a different URL
Rule canonical.non_self · Canonical · 7 occurrence(s)
- https://netevolution.fr/ — canonical=https://www.netevolution.fr/
- https://netevolution.fr/about.html — canonical=https://www.netevolution.fr/about.html
- https://netevolution.fr/appointment.html — canonical=https://www.netevolution.fr/appointment.html
- https://netevolution.fr/contact.html — canonical=https://www.netevolution.fr/contact.html
- https://netevolution.fr/index.html — canonical=https://www.netevolution.fr/
- https://netevolution.fr/portfolio.html — canonical=https://www.netevolution.fr/portfolio.html
- https://netevolution.fr/services.html — canonical=https://www.netevolution.fr/services.html
notice Likely hero image lacks fetchpriority=high
Rule images.hero_no_fetchpriority · Performance · 1 occurrence(s)
- https://netevolution.fr/about.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
notice Images without width/height (layout shift / CLS)
Rule images.missing_dimensions · Images · 1 occurrence(s)
- https://netevolution.fr/about.html — 1 of 3 images without width/height
notice Legacy <meta name=keywords> tag present (Google ignores it)
Rule meta.keywords_present · Content · 2 occurrence(s)
- https://netevolution.fr/ — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://netevolution.fr/index.html — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 7 occurrence(s)
- https://netevolution.fr/ — 187 chars
- https://netevolution.fr/about.html — 175 chars
- https://netevolution.fr/appointment.html — 167 chars
- https://netevolution.fr/contact.html — 164 chars
- https://netevolution.fr/index.html — 187 chars
- https://netevolution.fr/portfolio.html — 166 chars
- https://netevolution.fr/services.html — 161 chars
notice Missing Open Graph tags
Rule og.missing · Social · 5 occurrence(s)
- https://netevolution.fr/about.html — og:image
- https://netevolution.fr/appointment.html — og:image
- https://netevolution.fr/contact.html — og:image
- https://netevolution.fr/portfolio.html — og:image
- https://netevolution.fr/services.html — og:image
notice Legacy image format (jpg/png/gif) with no next-gen fallback
Rule perf.images_legacy_format · Performance · 7 occurrence(s)
- https://netevolution.fr/ — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://netevolution.fr/about.html — 3 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://netevolution.fr/appointment.html — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://netevolution.fr/contact.html — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://netevolution.fr/index.html — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://netevolution.fr/portfolio.html — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://netevolution.fr/services.html — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
notice No structured data detected
Rule schema.none · Structured Data · 2 occurrence(s)
notice Missing recommended security headers
Rule security.missing_headers · Security · 7 occurrence(s)
- https://netevolution.fr/ — CSP, X-Content-Type-Options
- https://netevolution.fr/about.html — X-Content-Type-Options, CSP
- https://netevolution.fr/appointment.html — CSP, X-Content-Type-Options
- https://netevolution.fr/contact.html — CSP, X-Content-Type-Options
- https://netevolution.fr/index.html — CSP, X-Content-Type-Options
- https://netevolution.fr/portfolio.html — CSP, X-Content-Type-Options
- https://netevolution.fr/services.html — X-Content-Type-Options, CSP
notice Missing Twitter Card tag
Rule twitter.missing · Social · 5 occurrence(s)
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://netevolution.fr/about.html À propos — Sylvain Painchaud, Développeur Fullstack | Netevolution |
200 | yes | 692 | 7 |
| https://netevolution.fr/appointment.html Prendre Rendez-vous — Entretien Projet Gratuit | Netevolution |
200 | yes | 298 | 7 |
| https://netevolution.fr/contact.html Contact — Devis Gratuit Développement Web | Netevolution |
200 | yes | 199 | 7 |
| https://netevolution.fr/index.html Netevolution — Développeur Web Fullstack Freelance | Symfony, API, SaaS |
200 | yes | 530 | 7 |
| https://netevolution.fr/portfolio.html Réalisations & Portfolio — Projets Web, Mobile & SaaS | Netevolution |
200 | yes | 498 | 7 |
| https://netevolution.fr/services.html Services — Développement Web, SaaS, Mobile & DevOps | Netevolution |
200 | yes | 521 | 7 |
| https://netevolution.fr/ Netevolution — Développeur Web Fullstack Freelance | Symfony, API, SaaS |
200 | yes | 530 | 0 |
| https://www.netevolution.fr/ | 0 | no | 0 | 0 |
| https://www.netevolution.fr/about.html | 0 | no | 0 | 0 |
| https://www.netevolution.fr/appointment.html | 0 | no | 0 | 0 |
| https://www.netevolution.fr/contact.html | 0 | no | 0 | 0 |
| https://www.netevolution.fr/portfolio.html | 0 | no | 0 | 0 |
| https://www.netevolution.fr/services.html | 0 | no | 0 | 0 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.