Perimetry Research · November 2026 edition
How well do French town halls protect their website and e-mail?
We measured the website and e-mail domain of every commune listed in the official directory of the French administration: 34,946 communes, 26,232 domains, with the same passive checks as Perimetry Cloud. Here is what we found, and who gets it right.
Download the full report (PDF) About twenty pages: findings, charts, every table, recommendations for town halls and the methodology.
- 34,946
- communes studied
- 58.6%
- have a website on their own domain
- 52.6%
- of town hall addresses are consumer mailboxes
- 6%
- of graded communes get an A or a B
What stands out
52.6% of the town hall addresses in the directory are at Orange, Wanadoo, Gmail or another consumer provider. The town hall does not control that domain: nothing stops someone from opening a look-alike mailbox and writing to residents in its name.
Among communes with their own domain, 45.2% publish a DMARC policy, and 19.2% enforce it (quarantine or reject). Without an enforced policy, receiving servers generally deliver a message forged in the town hall’s name.
On the websites: 93.4% of the communes’ own sites have a valid certificate and 86.4% send visitors from HTTP to HTTPS.
22.1% of the communes’ domains are signed with DNSSEC.
Grades
Each commune with a domain of its own gets a score: the share of the checks below that it passes, among those that apply to it. 22,829 communes are graded; the average score is 47 out of 100.
A: 90 or more · B: 75 · C: 60 · D: 40 · E: 20 · F: under 20
Check by check
Share of the graded communes that pass each check, among those it applies to (the website checks only apply to communes with a site on their own domain).
Website
- Valid HTTPS certificate93.4%
The site answers over HTTPS with a certificate that is in date, issued for its name, and trusted by browsers. 18,429 of 19,725.
- HTTP sends visitors to HTTPS86.4%
Someone who types the address lands on the encrypted site, not on a page anyone on the network can read or alter. 17,052 of 19,725.
- HSTS for six months or more28.3%
Browsers remember to use HTTPS only, so the first unencrypted request cannot be hijacked. 5,534 of 19,588.
- Basic protective headers26.1%
X-Content-Type-Options: nosniff, and protection against being framed by another site (X-Frame-Options or CSP frame-ancestors). 5,108 of 19,588.
DNS
- DNSSEC22.1%
Answers about the domain are signed, so a resolver cannot be fed false addresses for the town hall’s site or mail. 5,055 of 22,829.
- CAA record2.8%
The domain names the certificate authorities allowed to issue certificates for it. 649 of 22,829.
- Strict SPF85.9%
The domain lists the servers allowed to send its mail and asks receivers to reject or flag the others (-all or ~all). 19,604 of 22,812.
- DMARC record45.2%
The domain publishes a DMARC policy, the standard that ties SPF and DKIM to the visible sender. 10,320 of 22,812.
- DMARC enforced19.2%
The policy is quarantine or reject: messages forged in the town hall’s name go to spam or are refused, not delivered. 4,373 of 22,812.
- Address on a public domain71.1%
The town hall’s address is on its own domain or a shared public one, not on a consumer mailbox (Orange, Gmail…) it does not control. 16,051 of 22,591.
By size of commune
The same measures by number of inhabitants.
| Population | Communes | Graded | Average | A or B | Own website | Consumer mailbox |
|---|---|---|---|---|---|---|
| 100,000 inhabitants or more | 42 | 42 | 66 | 35.7% | 100% | 0% |
| 20,000 to 99,999 | 450 | 449 | 64 | 21.4% | 99.1% | 0% |
| 5,000 to 19,999 | 1,785 | 1,775 | 59 | 13.9% | 98.3% | 0.7% |
| 1,000 to 4,999 | 7,815 | 7,611 | 50 | 6.1% | 94.2% | 15.6% |
| Under 1,000 | 24,854 | 12,952 | 44 | 4.2% | 43.7% | 68.8% |
Honour roll
12 communes pass every one of the ten checks. They are listed by population.
- Joué-lès-Tours (37)
- Biéville-Beuville (14)
- Marolles-les-Braults (72)
- Villers-Écalles (76)
- Saint-Léonard (76)
- Eurre (26)
- Beaurevoir (02)
- Saint-Aubin-sur-Scie (76)
- Caumont (27)
- Artemare (01)
- Bouville (76)
- Veules-les-Roses (76)
Best in each size band
The highest scores among communes with their own website (at least nine checks applying), up to fifteen per band.
100,000 inhabitants or more
- Montpellier (34)90
- Le Havre (76)90
- Orléans (45)90
- Bordeaux (33)89
- Nantes (44)80
- Le Mans (72)80
- Annecy (74)80
- Perpignan (66)80
- Rouen (76)80
- Mulhouse (68)80
- Marseille (13)78
- Toulouse (31)78
- Toulon (83)78
- Montreuil (93)78
20,000 to 99,999
- Joué-lès-Tours (37)100
- Béziers (34)90
- La Rochelle (17)90
- Mérignac (33)90
- Drancy (93)90
- Saint-Quentin (02)90
- Alès (30)90
- Bagneux (92)90
- Villenave-d'Ornon (33)90
- Châtillon (92)90
- La Garenne-Colombes (92)90
- Villemomble (93)90
- Le Plessis-Robinson (92)90
- Yerres (91)90
- Limeil-Brévannes (94)90
5,000 to 19,999
- Bourg-lès-Valence (26)90
- Gentilly (94)90
- Verneuil-sur-Seine (78)90
- Sin-le-Noble (59)90
- Elbeuf (76)90
- Senlis (60)90
- Arnouville (95)90
- Saint-Avertin (37)90
- Audincourt (25)90
- Les Ponts-de-Cé (49)90
- Nemours (77)90
- Andernos-les-Bains (33)90
- Saint-Cyr-sur-Mer (83)90
- Cesson (77)90
- Mouans-Sartoux (06)90
1,000 to 4,999
- Biéville-Beuville (14)100
- Marolles-les-Braults (72)100
- Villers-Écalles (76)100
- Saint-Léonard (76)100
- Eurre (26)100
- Beaurevoir (02)100
- Saint-Aubin-sur-Scie (76)100
- Caumont (27)100
- Artemare (01)100
- Bouville (76)100
- Claira (66)90
- Mandres-les-Roses (94)90
- Provin (59)90
- Ghyvelde (59)90
- Pézilla-la-Rivière (66)90
Under 1,000
- Veules-les-Roses (76)100
- Norroy-le-Veneur (57)90
- Moisson (78)90
- Jauldes (16)90
- Lavoûte-sur-Loire (43)90
- Saint-Étienne-Lardeyrol (43)90
- Salmiech (12)90
- Canly (60)90
- Ayen (19)90
- Barran (32)90
- Prunet (15)90
- Saint-Julien-de-Lampon (24)90
- Ambérieux (69)90
- Bailleul-le-Soc (60)90
- Vittefleur (76)90
Website platforms
Many communes publish their site on a platform (a site builder or a shared portal). Its security is then the platform’s, so we grade the platform, not the commune, on a sample of up to five communes’ sites there (a check counts as passed when most of the sample passes it). Platforms used by at least five communes, graded only when at least three of their sites could be checked:
| Platform | Communes | Grade | Checks passed |
|---|---|---|---|
| Jimdo | 95 | E | Valid HTTPS certificate, HTTP sends visitors to HTTPS |
| Wix | 73 | D | Valid HTTPS certificate, HTTP sends visitors to HTTPS, HSTS for six months or more |
| e-monsite | 60 | F | Valid HTTPS certificate |
| Free (pages perso) | 48 | F | – |
| WordPress.com | 38 | C | Valid HTTPS certificate, HTTP sends visitors to HTTPS, HSTS for six months or more, CAA record |
| Blogger | 24 | D | Valid HTTPS certificate, HTTP sends visitors to HTTPS, CAA record |
| Neopse | 12 | E | Valid HTTPS certificate, HTTP sends visitors to HTTPS |
| SiteW | 11 | C | Valid HTTPS certificate, HTTP sends visitors to HTTPS, Basic protective headers, DNSSEC |
| Webnode | 7 | E | Valid HTTPS certificate, HTTP sends visitors to HTTPS |
| SiteGo | 5 | E | Valid HTTPS certificate, HTTP sends visitors to HTTPS |
| Orange (pages perso) | 5 | F | HTTP sends visitors to HTTPS |
| Weebly | 5 | E | Valid HTTPS certificate, HTTP sends visitors to HTTPS |
By département
Aggregates only. Départements with fewer than 10 graded communes (4) show no figures, so that none of them can be singled out.
| Département | Communes | Average | A or B | Own website | Consumer mailbox | DMARC enforced |
|---|---|---|---|---|---|---|
| 01 Ain | 391 | 48 | 4.5% | 75.2% | 28.8% | 14.6% |
| 02 Aisne | 797 | 44 | 6.3% | 24.2% | 81.9% | 15.9% |
| 03 Allier | 316 | 50 | 11.6% | 60.4% | 52.1% | 27.1% |
| 04 Alpes-de-Haute-Provence | 198 | 45 | 3.2% | 64.6% | 40.9% | 19% |
| 05 Hautes-Alpes | 162 | 48 | 6.8% | 77.2% | 42.6% | 16.5% |
| 06 Alpes-Maritimes | 163 | 47 | 4.7% | 86.5% | 26.1% | 16.1% |
| 07 Ardèche | 335 | 44 | 3.1% | 79.4% | 32.4% | 10.4% |
| 08 Ardennes | 447 | 42 | 0% | 21.5% | 89.5% | 13.9% |
| 09 Ariège | 325 | 44 | 2.9% | 47.4% | 69% | 14.9% |
| 10 Aube | 431 | 40 | 0.7% | 24.1% | 80.6% | 9.7% |
| 11 Aude | 433 | 43 | 1.3% | 49.4% | 68.1% | 8.2% |
| 12 Aveyron | 285 | 66 | 41% | 76.1% | 15.4% | 76.1% |
| 13 Bouches-du-Rhône | 119 | 55 | 6.7% | 99.2% | 2.7% | 28.6% |
| 14 Calvados | 526 | 47 | 6.1% | 48.7% | 57.1% | 19.5% |
| 15 Cantal | 250 | 43 | 2.7% | 56% | 75.6% | 6.8% |
| 16 Charente | 359 | 53 | 4.3% | 51% | 52.5% | 58.5% |
| 17 Charente-Maritime | 462 | 50 | 3.5% | 61.3% | 18% | 5.9% |
| 18 Cher | 286 | 43 | 2.6% | 60.8% | 69.4% | 10.1% |
| 19 Corrèze | 277 | 47 | 3.8% | 63.5% | 51.8% | 14.4% |
| 21 Côte-d'Or | 698 | 50 | 6.8% | 37.1% | 80.5% | 16% |
| 22 Côtes-d'Armor | 344 | 46 | 3.6% | 75.6% | 44% | 9.3% |
| 23 Creuse | 255 | 40 | 0% | 45.5% | 81.4% | 8.7% |
| 24 Dordogne | 503 | 43 | 4.6% | 59.8% | 68.7% | 17.3% |
| 25 Doubs | 563 | 45 | 5.6% | 41.6% | 61.5% | 12.3% |
| 26 Drôme | 362 | 43 | 3.1% | 66.6% | 47.8% | 15.3% |
| 27 Eure | 585 | 43 | 2.4% | 43.6% | 72.2% | 13% |
| 28 Eure-et-Loir | 363 | 40 | 1.2% | 61.4% | 59.7% | 11.1% |
| 29 Finistère | 277 | 55 | 14.3% | 93.1% | 19.5% | 23.4% |
| 2A Corse-du-Sud | 124 | 38 | 0% | 47.6% | 76.9% | 3.3% |
| 2B Haute-Corse | 236 | 39 | 2.2% | 39% | 82.8% | 8.9% |
| 30 Gard | 350 | 45 | 3% | 84% | 36.5% | 17.8% |
| 31 Haute-Garonne | 586 | 50 | 6.9% | 58.7% | 49.5% | 22.1% |
| 32 Gers | 458 | 55 | 28.4% | 26% | 72.8% | 45.4% |
| 33 Gironde | 534 | 47 | 4.4% | 76.8% | 46.9% | 13% |
| 34 Hérault | 341 | 49 | 8.4% | 76.8% | 33.6% | 25.2% |
| 35 Ille-et-Vilaine | 332 | 52 | 8.4% | 93.7% | 21.5% | 26.7% |
| 36 Indre | 241 | 41 | 2.6% | 52.3% | 61.7% | 15.9% |
| 37 Indre-et-Loire | 272 | 46 | 3.6% | 82.4% | 23.5% | 11.9% |
| 38 Isère | 512 | 46 | 3.3% | 86.9% | 27.1% | 16.9% |
| 39 Jura | 492 | 50 | 1.8% | 53.3% | 53.6% | 16.1% |
| 40 Landes | 327 | 59 | 3.5% | 70.6% | 19.6% | 74.8% |
| 41 Loir-et-Cher | 267 | 44 | 6.6% | 66.7% | 46.4% | 13.3% |
| 42 Loire | 320 | 43 | 2.4% | 83.8% | 27.3% | 12.3% |
| 43 Haute-Loire | 257 | 49 | 11% | 54.5% | 63.3% | 14.2% |
| 44 Loire-Atlantique | 207 | 59 | 18.4% | 98.6% | 3.9% | 35.3% |
| 45 Loiret | 325 | 48 | 6.5% | 68.3% | 43.7% | 21.1% |
| 46 Lot | 312 | 45 | 6.6% | 63.8% | 77.9% | 12.8% |
| 47 Lot-et-Garonne | 319 | 47 | 5.4% | 55.5% | 41.1% | 19.5% |
| 48 Lozère | 152 | 43 | 2.5% | 48% | 75.5% | 12.5% |
| 49 Maine-et-Loire | 176 | 52 | 11% | 87.5% | 20.1% | 10.4% |
| 50 Manche | 445 | 45 | 4% | 40.7% | 64% | 10.2% |
| 51 Marne | 610 | 42 | 0.8% | 37% | 81.8% | 10.9% |
| 52 Haute-Marne | 426 | 33 | 2.4% | 16.9% | 89.1% | 7.1% |
| 53 Mayenne | 240 | 46 | 5.2% | 71.3% | 44.6% | 15.8% |
| 54 Meurthe-et-Moselle | 591 | 46 | 6.3% | 34.9% | 70.1% | 17.9% |
| 55 Meuse | 493 | 52 | 5.2% | 19.3% | 80.5% | 20% |
| 56 Morbihan | 249 | 54 | 10.1% | 92.8% | 15.7% | 19% |
| 57 Moselle | 725 | 42 | 2.5% | 49.8% | 63.9% | 11.2% |
| 58 Nièvre | 309 | 49 | 7% | 44.3% | 84.4% | 14% |
| 59 Nord | 647 | 48 | 6.5% | 79% | 38% | 10.4% |
| 60 Oise | 680 | 47 | 5.8% | 73.4% | 45.3% | 22.1% |
| 61 Orne | 381 | 44 | 6.8% | 27.6% | 80.1% | 18.2% |
| 62 Pas-de-Calais | 887 | 45 | 7.2% | 47.5% | 57.8% | 12.3% |
| 63 Puy-de-Dôme | 463 | 39 | 2.4% | 77.8% | 63.3% | 19.2% |
| 64 Pyrénées-Atlantiques | 545 | 48 | 3.3% | 49% | 45.5% | 26.5% |
| 65 Hautes-Pyrénées | 469 | 40 | 1.4% | 27.1% | 86.2% | 16.4% |
| 66 Pyrénées-Orientales | 226 | 42 | 2.2% | 75.2% | 46.7% | 11.5% |
| 67 Bas-Rhin | 514 | 48 | 2.7% | 72.4% | 35% | 14.5% |
| 68 Haut-Rhin | 366 | 46 | 1.7% | 84.4% | 18.1% | 15.7% |
| 69 Rhône | 266 | 51 | 5.3% | 96.2% | 3.8% | 13.4% |
| 70 Haute-Saône | 536 | 34 | 0.5% | 30.4% | 83.6% | 6% |
| 71 Saône-et-Loire | 563 | 52 | 8.6% | 67.9% | 57.8% | 15.8% |
| 72 Sarthe | 352 | 47 | 4% | 57.4% | 41.4% | 10.3% |
| 73 Savoie | 273 | 46 | 2.4% | 90.1% | 25.4% | 18.9% |
| 74 Haute-Savoie | 279 | 52 | 3.7% | 94.6% | 8.6% | 17.6% |
| 75 Paris | 1 | – | ||||
| 76 Seine-Maritime | 707 | 48 | 9.4% | 50.9% | 54.9% | 20.5% |
| 77 Seine-et-Marne | 507 | 48 | 7.9% | 77.9% | 43.7% | 20.1% |
| 78 Yvelines | 259 | 54 | 7.9% | 91.1% | 22% | 23.8% |
| 79 Deux-Sèvres | 252 | 48 | 3% | 60.7% | 29.6% | 14.3% |
| 80 Somme | 771 | 40 | 0% | 54.5% | 62% | 2.7% |
| 81 Tarn | 314 | 44 | 3.7% | 57.3% | 60.7% | 14.7% |
| 82 Tarn-et-Garonne | 195 | 59 | 36.6% | 66.2% | 4.7% | 73% |
| 83 Var | 153 | 50 | 7.4% | 96.1% | 16% | 16.8% |
| 84 Vaucluse | 151 | 49 | 7.4% | 88.7% | 23.3% | 18.5% |
| 85 Vendée | 253 | 50 | 4.9% | 89.3% | 7.2% | 12.7% |
| 86 Vienne | 265 | 59 | 9% | 68.3% | 5.3% | 83.6% |
| 87 Haute-Vienne | 195 | 45 | 4.3% | 80% | 49.2% | 11.6% |
| 88 Vosges | 506 | 43 | 1.8% | 28.3% | 78.5% | 15.2% |
| 89 Yonne | 423 | 50 | 7.5% | 57% | 74.5% | 18.7% |
| 90 Territoire de Belfort | 101 | 42 | 0% | 61.4% | 61.6% | 11.6% |
| 91 Essonne | 194 | 54 | 12.2% | 90.2% | 19.3% | 26.7% |
| 92 Hauts-de-Seine | 36 | 66 | 22.2% | 100% | 3.7% | 30.6% |
| 93 Seine-Saint-Denis | 39 | 60 | 20.5% | 100% | 0% | 46.2% |
| 94 Val-de-Marne | 47 | 64 | 22.2% | 97.9% | 0% | 31.1% |
| 95 Val-d'Oise | 183 | 54 | 11.3% | 87.4% | 27.3% | 20.8% |
| 971 Guadeloupe | 32 | 53 | 3.3% | 90.6% | 10% | 13.3% |
| 972 Martinique | 34 | 45 | 3.2% | 73.5% | 9.1% | 12.9% |
| 973 Guyane | 22 | 50 | 6.3% | 45.5% | 25% | 31.3% |
| 974 La Réunion | 24 | 57 | 12.5% | 100% | 0% | 45.8% |
| 975 Saint-Pierre-et-Miquelon | 2 | – | ||||
| 976 Mayotte | 17 | 43 | 0% | 70.6% | 0% | 7.1% |
| 977 Saint-Barthélemy | 1 | – | ||||
| 978 Saint-Martin | 1 | – | ||||
| 987 Polynésie française | 41 | 52 | 3.6% | 26.8% | 13.2% | 53.6% |
| 988 Nouvelle-Calédonie | 33 | 47 | 0% | 27.3% | 20% | 16% |
Behind the numbers
Consumer mailboxes used by town halls
- wanadoo.fr49.3%
- orange.fr40.2%
- gmail.com5.9%
- laposte.net1.5%
- outlook.fr0.6%
- free.fr0.4%
Who issues the certificates of the communes’ own sites
- Let's Encrypt77.1%
- Google Trust Services4.4%
- ZeroSSL GmbH3.9%
- Sectigo Limited3.7%
- Gandi1.1%
- DigiCert Inc1%
What the communes’ own sites run on (when the page says so)
- WordPress44.9%
- Not stated35.3%
- Other14.7%
- Joomla2%
- Drupal1.6%
- Wix1.5%
Registrars of the communes’ domains
- OVH61.4%
- GANDI14.3%
- REGIE AUTONOME DE NUMERIAN6.3%
- IONOS5.3%
- SCALEWAY5.3%
- NORDNET2.5%
- NAMESHIELD2.5%
- SOMME NUMERIQUE2.4%
Serious issues are reported privately
276 communes have a serious issue. They are not named here: we tell them first, quietly.
- Website or mail domains listed in the official directory that no longer exist, which anyone could register: 134
- Domains registered but missing from DNS: 24
- Domains missing from DNS, registration to check: 3
- Domains whose DNS answers fail: 27
- Expired certificates: 52
- SPF records that let anyone send mail in the town hall’s name: 37
How we measured
Passive checks only: the home page of each website over HTTP and HTTPS and nothing else on the site, public DNS records, a robot that says who it is. Sources: the official directory of the administration (Service-Public.fr, DILA, Licence Ouverte 2.0) and the population figures of the State’s geographic API.
Read the methodology Download the figures (JSON) Download the full report (PDF)
Figures corrected on 8 November 2026: see the methodology.
Next edition: January 2027, then every quarter. You may reuse these figures with a link to this page.