NFW Web Studio
News
// State of the web, October 2026
v1.2.0

Milan businesses: how many have a website, and how well it works

We counted just over 50,000 Milan businesses and checked their websites in October 2026. Of these, just over 40,000 list a website, but about 4 businesses in 10 have no working website. It is the largest scan we have run so far: more than five times the businesses of Verona, the city where we are based.

51,950 businesses shown of 51,950 mapped in Milan
Map generated from Overture Maps data of September 18, 2026.
// At a glance

The numbers to remember

have a working website
58%
of just over 50,000 businesses counted
The rest, just over 20,000, have no website, or list one that does not open: an address that does not answer, a social profile.
to show the main content, on a phone
7.1 s
median of just over 25,000 sites, mean 10.6 s
More than three sites in four take longer than 4 seconds, the point Google calls poor. Past 3 seconds, 53% of people on a phone leave the page.
describe themselves to Google in full (structured data)
4%
of just over 30,000 businesses with a working website
Name, address, phone, website and opening hours in a block Google and AI assistants read without guessing.
have a valid sitemap
78%
of just over 25,000 working sites
22% of sites do not hand Google the list of their pages, which it uses to find them all.
median AI Crawlability Score, out of 100
79
across just over 25,000 working sites, mean 70.1
How well ChatGPT, Claude or Gemini can read and cite the site; half the sites score above it, half below. For general searches, reviews and ratings count as much.

Want to know where your site sits among these numbers?Run the free SEO audit

// The report in plain words

What a customer finds when looking for a business in Milan

Here the numbers are told the way people using these sites experience them: a customer looking for a restaurant on their phone, a tourist checking a shop's opening hours, someone asking an AI assistant for a dentist nearby. The detailed technical data is further down.

The Milan economy online: businesses and their websites

We counted 51,962 businesses in Milan, and their mix describes a city of services: after restaurants (7,212) the second largest sector is professional services (5,025, or 9.7%), followed by fashion and beauty stores (4,536) and beauty and wellness (3,672). Professional services, legal firms, finance and real estate together are 9,330 businesses, 18% of the total against 12.6% in Verona, and creative and media businesses weigh twice as much (5.4% against 2.7%). Lodging is 1,533 businesses, almost double Verona's in number but only 3% of the total, against 8.1%.

Four businesses in five list a website (80.7%), but only 58 in 100 have one we could open. The gap, about 11,700 businesses, is the most concrete figure in the whole report: in more than eight cases in ten, someone tapping the website link on a map such as Google Maps gets an error, an expired domain, or a social profile instead of a website. In the rest, the site answers, but its bot protection stopped our tool: we keep those apart below.

Restaurants, professional services and fashion make up almost a third

Restaurants 7,212 (13.9%), professional services 5,025 (9.7%), fashion and beauty stores 4,536 (8.7%), beauty and wellness 3,672 (7.1%), health 3,292 (6.3%), creative and media 2,798 (5.4%).

Next to the sectors where customers decide on their phone, often minutes before walking in, Milan has many businesses that are chosen by comparing: a firm, an agency or a photographer is judged by reading the website before calling. The count comes from Overture Maps, meaning the businesses a customer finds on a map, not the official business register.

Business types in the area
Share of the businesses counted
  • Restaurants13.9% (7,212)
  • Professional services9.7% (5,025)
  • Fashion and beauty8.7% (4,536)
  • Beauty and wellness7.1% (3,672)
  • Health6.3% (3,292)
  • Creative and media5.4% (2,798)
  • Other shops3.8% (1,983)
  • Real estate3.8% (1,978)
  • Bars and pubs3.7% (1,938)
  • Events and leisure3.6% (1,849)
  • Home and tech3.3% (1,736)
  • Other sectors30.7% (15,943)

Almost six businesses in ten have a website that opens

Of 51,962 businesses, 41,954 (80.7%) list a website and 30,255 (58.2%) have a working one. More than one listed address in four (27.9%) does not lead to a website we could open.

Whoever has a website almost always lists it: the difference is what sits behind the link. Behind that quarter are mostly expired domains and servers that do not answer, then error pages and social profiles or platforms listed instead of a website. For the customer the result is the same: they tap the link, do not find what they were looking for, and go back to the search results, where in Milan the competition is dense. Some of them, though, are working sites that block automated tools like ours: the chart below keeps them apart.

The share of businesses with a working website is in line with the average of the 7 cities in Italy we have scanned so far, which is 56.6%. In Verona, with the same tool, 51.5% of businesses have a working website and almost one listed address in three (31%) does not open: Milan is ahead by almost seven points.

Businesses with a website
  • Milan
  • Average of 7 cities in Italy

One link in two leads to a domain that does not answer

Of the 11,696 businesses that list a website we could not open, 5,847 (50%) point to a domain or server that does not answer, 2,128 (18.2%) open an error page, 1,651 (14.1%) have a site whose bot protection stopped our tool, 1,333 (11.4%) list a social profile or a platform page instead of a website, and 735 (6.3%) fail to connect, on a network error or a timeout.

A domain that does not answer has usually expired or lost its hosting: the business had a website, stopped renewing it, and the link stayed on the map. Of the error pages, 1,513 answer 404, page not found: often the address of a rebuilt site that no longer leads anywhere. Eight in ten of the profiles listed instead of a website are social (1,070 businesses): Instagram comes first (553), then Linktree (171), the page of links many use as a mini site, Facebook (159) and YouTube (74). In Verona social profiles are two in three and platforms such as PagineGialle and Airbnb weigh more. The 1,651 businesses with a protected site are a separate case: the server answers with a bot check page (status 403 for 1,065 businesses, 202 for 568), so the site most likely opens for someone visiting it in a browser, but we could not audit it. That is a limit of the tool, not a broken site: counting them, the businesses with a working website would rise to at most 31,906, or 61.4%.

The share of links to a domain that does not answer is in line with the average of the 7 cities in Italy we have scanned so far, which is 48.7%.

Why the listed website does not open
  • Milan
  • Average of 7 cities in Italy

The bot protections recognised

  • SiteGround525 sites | 36.8%
  • Cloudflare424 sites | 29.7%
  • Vercel72 sites | 5%
  • DataDome20 sites | 1.4%
  • PerimeterX1 sites | 0.1%
  • Not recognised384 sites | 26.9%

Those who sell consulting are online, those who serve a coffee much less

75.7% of creative and media businesses have a working website, as do 74.6% of industry, 72.7% of travel, 72.4% of professional services and 71.1% of education. At the bottom are bars and pubs (27.5%), cafés (32.7%), beauty and wellness (38.4%), restaurants (45.4%) and food shops (45.8%).

The businesses that live on passing customers have the fewest working websites, and they weigh heavily on the total: restaurants, beauty salons, cafés and bars are 27.1% of businesses but 39% of those without a working website (8,463 out of 21,707). The two absences are different. Among bars and pubs 45.8% have no website at all, and among those that list one almost one in two does not open (49.4%); among cafés it is missing in 43.4% of cases. Among restaurants, instead, 73.8% list a website but 38.4% of those links do not lead to a page that opens. A missing website is a website to build; a broken link is a Google listing that sends the customer down a dead end.

Against the average of the 7 cities in Italy we have scanned so far, 5 of 25 sectors are higher, 0 lower and 20 in line. The order of the sectors is almost the same as in Verona, with creative and media at the top and cafés, bars and beauty salons at the bottom, and Milan is ahead in 22 sectors out of 25: the widest gaps are beauty and wellness (11 points) and sport and fitness (10), not enough to change the ranking.

Websites by sector
  • Working website, above average
  • Working website, below average
  • Listed, not working
  • No website
  • Milan average, every sector: 58.2%
  • Working website, average of 7 cities in Italy
Creative and media2,79875.7%16.6%7.7%75.2%
Industry1,32374.6%16.4%9%73.2%
Travel1,26972.7%17.2%10.1%71.1%
Professional services5,02572.4%19.8%7.8%71.6%
Education1,04371.1%20.8%8.1%70.2%
Real estate1,97868.6%21.1%10.3%67.7%
Legal1,06966.6%19.2%14.2%67.1%
Finance1,25865.7%19.2%15.1%65.8%
Home and tech1,73665.4%23%11.6%66.5%
Sport and fitness1,45365.2%19.5%15.3%62.2%
Health3,29264.3%21.5%14.2%63.8%
Construction1,71762.7%23.2%14.1%63.1%
Fashion and beauty4,53661.9%21.5%16.6%59.7%
Pets38561.3%16.9%21.8%56.3%
Dentists68061.2%22.6%16.2%59.1%
Automotive1,12759.5%24%16.5%59.2%
Other shops1,98359.4%22.9%17.7%57.8%
Events and leisure1,84959.2%21.4%19.4%58.2%
Lodging1,53352.8%26.4%20.8%50.9%
Local services40447.3%20.8%31.9%47.4%
Food shops1,39245.8%25.4%28.8%41.7%
Restaurants7,21245.4%28.4%26.2%43.9%
Beauty and wellness3,67238.4%24.6%37%35.9%
Cafés1,27832.7%23.9%43.4%30.9%
Bars and pubs1,93827.5%26.7%45.8%25.7%

Speed and ease of use, on a phone

The server answers in 86 milliseconds for half of Milan's websites, but the tail is long: one in four takes more than 455 milliseconds and one in ten more than 1.2 seconds. Most of the wait comes afterwards, while the phone downloads and runs the page.

On a mid-range phone with a slow mobile connection, the conditions Lighthouse simulates, the home page's main content appears after a median of 7.1 seconds, and more than three sites in four take longer than the 4 seconds Google considers poor.

That is more than twice the 3 seconds after which, according to research, 53% of people on a phone leave the page: on the typical Milan website, more than half of phone visitors risk leaving before they see the main content, and in Milan an alternative is always two streets away.

What people do while they wait, according to research
  • 53%

    of people on a phone leave a page that takes longer than 3 seconds to load.

  • +103%

    more visitors leave straight away with a delay of just 2 seconds.

  • 7%

    fewer enquiries and sales for every extra 100 milliseconds of waiting.

Sources: Google, Akamai. Research on user behavior, not measurements from this scan.

SEO and best practices pass, speed stays the lowest score

Median scores on the home page of 25,905 sites: performance 66 out of 100 (mean 65.2), accessibility 88 (mean 86), best practices 96 (mean 86.5), SEO 92 (mean 91.8).

The three high scores depend mostly on the CMS and the theme: titles, tags, HTTPS, page structure. Speed depends on what the page loads, meaning photos, sliders, fonts and third party scripts. Performance sits in the middle band, 50 to 89: the middle half of sites is between 54 and 76 and one in ten reaches 90, the good band. The score is higher than the main content time would suggest because part of the grade rewards blocking time, good for most sites, and layout stability, almost perfect. Accessibility is good but can improve, with a median of 88: Lighthouse lowers it when it finds low contrast text, buttons and links without a readable name, and images without a description.

The median performance score is in line with the average of the 7 cities in Italy we have scanned so far, which is 66. With the same tool Verona has the same medians (performance 66, accessibility 87, best practices 96, SEO 92): on these scores two cities of very different sizes are, in practice, the same.

Lighthouse scores of the home page
  • Milan
  • Average of 7 cities in Italy

Being found on Google

The basics a CMS adds on its own are almost everywhere: 93.6% of home pages have a title and 89.6% of sites use HTTPS. What is missing are the things that take a decision by whoever runs the site.

One home page in three has no meta description and one in four does not tell Google which address is the canonical one. One site in two shows no sign of being connected to Search Console, the free tool that tells which searches the site appears for. And only 1 business in 26 describes itself to Google and to assistants in full.

Search Console is still the most common gap

Of 27,460 working sites, 50.2% show no Search Console verification we can see, 33.3% have no meta description on the home page, 25.6% do not state a canonical URL for the home page, and 21.9% have no valid sitemap.

Search Console can also be verified in ways that are invisible from outside, so that 50.2% is an upper bound; still, one site in two shows no sign of being connected to the tool Google uses to report problems. The sitemap helps Google find every page, the canonical keeps two copies of the same page from competing, and the meta description is the text shown under the title in the results. In a city where every search has many competitors, these details count.

The share of sites without a sitemap is in line with the average of the 7 cities in Italy we have scanned so far, which is 22.2%. Verona is worse on all three: no verifiable Search Console on 53.7% of sites, no valid sitemap on 24.3%, no canonical on 30.2%.

What working sites are missing
  • Milan
  • Average of 7 cities in Italy

Only 1 business in 26 describes itself to Google in full

1,141 of 30,255 businesses with a working website (3.8%) have both a complete LocalBusiness block and a complete WebSite block. The LocalBusiness block is on 4,345 sites (14.4%), and more than half of them are incomplete: opening hours are missing on 44.8%, the phone number on 25.2%, the address on 15.2%, the site URL on 9.3% and the name on 2.2%. The WebSite block is on 14,685 sites: the name is missing on 3.3% and the URL on 0%.

Structured data is a block hidden in the page that tells Google, search engines and assistants such as Gemini, Claude or ChatGPT the business's name, address, phone and opening hours without leaving them to guess: the same details as the listing on Google Maps, but from the business's own site, where the business controls them. The detail left out most often, opening hours, is exactly what a customer checks before leaving home; the phone number, second, is what they use to call. The WebSite block, when present, is almost always complete: the most common SEO plugins for WordPress add it on their own (Yoast SEO is on 20.3% of sites), while the LocalBusiness block has to be filled in by hand.

The share of businesses with complete data is in line with the average of the 7 cities in Italy we have scanned so far, which is 3.8%. In Verona the share is practically the same: 4.1%.

Businesses with complete structured data (JSON-LD)
  • Yes, complete
  • No, incomplete or missing
Yes, complete3.8%3.8%
No, incomplete or missing96.2%96.2%
What is missing among those with the block
Opening hoursLocalBusiness44.8%1,948 of 4,345
TelephoneLocalBusiness25.2%1,095 of 4,345
AddressLocalBusiness15.2%659 of 4,345
URLLocalBusiness9.3%404 of 4,345
NameWebSite3.3%489 of 14,685
NameLocalBusiness2.2%95 of 4,345
URLWebSite0%7 of 14,685

Being read by AI assistants

More and more people ask an AI assistant instead of searching Google. For general questions, such as a good restaurant downtown or a hairdresser open on Monday, assistants rely mostly on the ratings and the number of reviews a business has on Google and on review sites.

The website becomes decisive for specific questions (the menu, prices, a particular service, holiday opening hours) and to confirm the business exists and is the right one: that is why the assistant has to be able to read it. 93.7% of sites show their text without needing to run JavaScript, and 83.7% let AI assistants' crawlers in.

Assistants can read Milan's sites, but must guess the business

Across 27,460 working sites the median AI Crawlability Score is 79.3 out of 100 and the mean 70.1; the middle half of the sites sits between 59.6 and 85, and one site in ten stays below 39.1.

The average is below the median because a tail of sites stays very low: sites built only in JavaScript or closed to crawlers, which an assistant can barely read. Of the 100 points, 20 reward text visible without JavaScript (passed by 93.7% of sites) and 15 a robots.txt open to AI crawlers (83.7%): two points the CMS almost always hands out. What separates the sites are the others: structured data on the home page (15 points, 58.1%) and the llms.txt file, an index meant for assistants (10 points, 26.8%). The ARD manifest for AI agents is published by none of the 27,460 sites. And even where structured data is present, it describes the business in full only in a few cases: just 3.8% of businesses have complete basic data.

The median score is in line with the average of the 7 cities in Italy we have scanned so far, which is 79.3. Verona's median AI Crawlability Score is 74.6: Milan is ahead by almost five points, mostly thanks to structured data on the home page (58.1% against 53.8%) and the canonical.

Median AI Crawlability Score
The score weighs ten checks: here is which ones, and how much each counts.
  • 79.3/100 Average of 7 cities in Italy
  • 79.3/100 Milan

Trust: HTTPS and blocklisted servers

Trust plays out on two fronts. The first is visible: 10.4% of sites do not use HTTPS, and the browser writes "Not secure" next to the address, right where a customer is about to leave their name and phone number in a form.

The second is invisible, and it is about email. A server flagged for spam does the website no harm, which opens and shows up in search results as before; but email sent from that server can land in customers' spam folders and never be read.

243 sites on servers flagged for spam, mostly shared

Of 27,122 sites with an answer, 243 (0.9%) sit on a server on a spam blocklist: 144 servers out of 10,518. Barracuda lists 178 of them, Spamhaus 67.

For a business that sends booking confirmations, quotes or replies to customers from the same server as its website, the risk is real: the message goes out, but the customer never sees it. 243 sites on 144 servers means several sites share a server, and the flag often comes from another site hosted next door, not from the business. The website itself is not affected. Sharing is a trait of Milan: its 27,122 sites sit on 10,518 servers, 2.6 sites per server against 1.8 in Verona, probably also because of services such as Cloudflare (on 20.9% of sites) that put many sites behind the same addresses.

The share of sites on a blocklisted server is in line with the average of the 7 cities in Italy we have scanned so far, which is 0.9%. In Verona the share of blocklisted sites is the same, 0.9%.

Sites on spam blocklisted servers
Milan
  • Blocklisted0.9%
  • Not blocklisted97.9%
  • No answer1.2%
144 blocklisted servers out of 10,518 checked
Average of 7 cities in Italy
  • Blocklisted0.9%
  • Not blocklisted98.1%
  • No answer1%
200 blocklisted servers out of 13,472 checked

Milan and Verona compared

Verona is the city where we are based and Milan has more than five times its businesses. Both analyses were run with the same version of the tool (1.2.0) and the same scoring rules, so the numbers can be compared.

The result: two cities of very different sizes, and websites that look very much alike. What changes most is how many businesses have one.

Milan is ahead by a few points, almost everywhere

Businesses with a working website: 58.2% against 51.5%. Valid sitemap: 78.1% against 75.7%. Canonical stated: 74.4% against 69.8%. Structured data on the home page: 58.1% against 53.8%. Search Console verifiable: 49.8% against 46.3%. Complete basic data: 3.8% against 4.1%. llms.txt file: 26.8% against 26.2%.

Milan is ahead on six rows out of seven, by a margin that goes from half a point to almost five, except for working websites (almost seven). On the one row where Verona is ahead, complete basic data, the difference is three tenths of a point: in both cities almost nobody describes themselves in full. Whoever builds the sites neglects the same things everywhere; what changes most is how many businesses have one.

Share of businesses and sites, Milan and Verona
  • Milan
  • Verona

Speed and SEO are equal, the AI Crawlability Score is higher in Milan

Performance 66 and 66, accessibility 88 and 87, best practices 96 and 96, SEO 92 and 92. Median AI Crawlability Score 79.3 against 74.6.

On the four Lighthouse scores, which measure how the site is built, the differences are at most one point. The AI Crawlability Score also measures what the site declares (structured data, sitemap, canonical address) and is 4.7 points higher in Milan: where sites are better looked after for Google, they are also better looked after for assistants.

Median scores, Milan and Verona
  • Milan
  • Verona
// Your site

Try it on your site

The free audit runs the same checks as this report on your site: it reads the pages, measures the home page with Lighthouse, computes the AI Crawlability Score and tells you how it compares with the sites of your city. No sign up, up to 4 sites an hour.

  • SEO
  • Speed
  • Core Web Vitals
  • AI Crawlability Score
  • Compared with your city

Source: NFW Web Studio scan of 51,962 businesses, data updated on October 10, 2026.

// The technical detail

The same measurements, by their technical names

For developers: how the 27,460 working sites divide, not just their average. Here are the Core Web Vitals against Google's thresholds, JavaScript, image and font weight, file formats, technologies, what the structured data is made of, and the AI Crawlability Score's individual checks.

Performance and the AI Crawlability Score are the two scores where sites differ

From the 10th to the 90th percentile: performance from 41 to 90 (median 66), accessibility from 73 to 96 (88), best practices from 69 to 100 (96), SEO from 83 to 100 (92), AI Crawlability Score from 39.1 to 94.6 (79.3).

SEO and best practices are high and squeezed at the top: CMSs, themes and plugins provide them. Performance is much wider: it depends on the technologies chosen for the site and includes the amount and format of media, the weight of scripts and, for CMSs, the weight and number of plugins. The AI Crawlability Score is the widest of all because it depends on a limited number of points that are either passed or failed, such as llms.txt and structured data.

The median performance score is in line with the average of the 7 cities in Italy we have scanned so far, which is 66.

Lighthouse and AI Crawlability Scores: the spread
  • Milan
  • Average of 7 cities in Italy
PerformanceMilan415466769065
PerformanceAverage of 7 cities in Italy415466768965
AccessibilityMilan738188939686
AccessibilityAverage of 7 cities in Italy738188939686
Best practicesMilan69749610010087
Best practicesAverage of 7 cities in Italy69749610010087
SEOMilan83919210010092
SEOAverage of 7 cities in Italy83919210010092
AI Crawlability ScoreMilan39.159.679.38594.670.1
AI Crawlability ScoreAverage of 7 cities in Italy39.159.679.38594.670

Server answer in 86 ms, main content after 7.1 seconds

Medians across 25,871 sites: server response (TTFB) 86 ms, first content (FCP) 2.6 s, visible page (Speed Index) 4.9 s, main content (LCP) 7.1 s, blocking time (TBT) 124 ms. At the 90th percentile the main content arrives after 20.9 s and the server answers after 1.2 s.

Against Google's thresholds, server response and blocking time are good, first content and Speed Index need improvement, and main content is poor. The 10th percentile of LCP is 2.9 seconds: fewer than one site in ten is within the 2.5 seconds Google considers good. Between the median first content and the median main content there are 4.5 seconds, the time it takes to load the big home page photo, the slider or the headline font. The mean LCP, 10.6 seconds, is well above the median: a tail of very slow sites, one in four above 12.6 seconds, pulls it up. These are lab measurements on a simulated phone with a slow connection; on an office computer the times are shorter.

The median main content time (LCP) is in line with the average of the 7 cities in Italy we have scanned so far, which is 7.2 s. In Verona, under the same conditions: server 94 ms, first content 2.6 s, main content 7.5 s.

Home page load times: Core Web Vitals and Lighthouse
  • Milan
  • Average of 7 cities in Italy
  • Google's "good" threshold
First content on screen (FCP)Milan1.4 s2.0 s2.6 s3.4 s4.7 s3.0 s
First content on screen (FCP)Average of 7 cities in Italy1.4 s2.0 s2.6 s3.4 s4.7 s3.0 s
Main content on screen (LCP)Milan2.9 s4.4 s7.1 s12.6 s20.9 s10.6 s
Main content on screen (LCP)Average of 7 cities in Italy2.9 s4.4 s7.2 s12.7 s20.6 s10.5 s
Page on screen (Speed Index)Milan2.1 s3.2 s4.9 s7.5 s11.2 s6.1 s
Page on screen (Speed Index)Average of 7 cities in Italy2.1 s3.2 s4.9 s7.5 s11.0 s6.0 s
Blocking time (TBT)Milan0 ms24 ms124 ms364 ms835 ms401 ms
Blocking time (TBT)Average of 7 cities in Italy0 ms25 ms128 ms370 ms843 ms396 ms
Server response (TTFB)Milan13 ms28 ms86 ms455 ms1.2 s432 ms
Server response (TTFB)Average of 7 cities in Italy13 ms29 ms91 ms468 ms1.2 s432 ms

One site in ten downloads almost 2 MB of JavaScript

JavaScript downloaded by the home page: median 703 kB, one site in four above 1.3 MB, one in ten above 2.0 MB. Layout shift (CLS): median 0, 75th percentile 0.02, 90th percentile 0.16.

Much of that JavaScript comes from older libraries: jQuery is on 58.5% of sites, jQuery UI on 22.3% and jQuery Migrate, the compatibility layer for older code, on 35.5%. The layout, on the other hand, is stable: three sites in four stay within 0.02, well below 0.1, Google's good threshold, and content does not jump around while the page loads. One site in ten goes above 0.16, close to the poor threshold of 0.25.

The median JavaScript weight is in line with the average of the 7 cities in Italy we have scanned so far, which is 695 kB.

JavaScript weight and layout stability
  • Milan
  • Average of 7 cities in Italy
JavaScript downloadedMilan109 kB329 kB703 kB1.3 MB2.0 MB909 kB
JavaScript downloadedAverage of 7 cities in Italy110 kB325 kB695 kB1.2 MB1.9 MB897 kB
  • Milan
  • Average of 7 cities in Italy
  • Google's "good" threshold
Layout shift (CLS)Milan0000.020.160.05
Layout shift (CLS)Average of 7 cities in Italy0000.020.160.05

One video in ten weighs more than 36 MB

Median weight per file: images 22 kB, fonts 31 kB, favicons 4 kB, preview image (og:image) 110 kB. One image in ten is above 288 kB, one preview image in ten above 693 kB. 6.5% of sites have a video, with a median weight of 4.4 MB; one in ten is above 36.8 MB.

The preview image is the one that appears when the site's link is shared on WhatsApp or social media: with a median of 110 kB, it is often a photo uploaded at full resolution. 54.5% of sites have one that downloads (in Verona 50.6%): on the other 45.5%, a shared link appears without an image or with one the platform picks. Videos are more common than in Verona (6.5% of sites against 5.5%) and are the heaviest files: one that starts on its own when the page opens can be enough, on a slow mobile connection, to slow the page down. The chart's scale is logarithmic: each tick is ten times the one before.

The median image weight is in line with the average of the 7 cities in Italy we have scanned so far, which is 22 kB.

File weight, by kind
  • Milan
  • Average of 7 cities in Italy
ImagesMilan498 B3 kB22 kB95 kB288 kB138 kB
ImagesAverage of 7 cities in Italy512 B3 kB22 kB95 kB286 kB135 kB
FontsMilan9 kB16 kB31 kB48 kB83 kB47 kB
FontsAverage of 7 cities in Italy9 kB16 kB31 kB48 kB84 kB47 kB
FaviconsMilan788 B1 kB4 kB10 kB22 kB14 kB
FaviconsAverage of 7 cities in Italy810 B1 kB4 kB11 kB22 kB14 kB
Preview image (og:image)Milan15 kB43 kB110 kB286 kB693 kB317 kB
Preview image (og:image)Average of 7 cities in Italy15 kB43 kB110 kB283 kB684 kB312 kB
VideosMilan42 kB973 kB4.4 MB14.0 MB36.8 MB14.1 MB
VideosAverage of 7 cities in Italy44 kB1.1 MB4.9 MB15.0 MB37.8 MB14.4 MB
AudioMilan4 kB7 kB16 kB50 kB2.7 MB1.0 MB
AudioAverage of 7 cities in Italy4 kB7 kB18 kB61 kB2.6 MB1.0 MB

Fewer than one image in four uses a modern format

Of the 1,016,224 images found: JPG 36.3%, PNG 21.5%, WebP 18.1%, SVG 12.8%, AVIF 5%. Of the fonts, 77.1% are WOFF2. Of the favicons, 64% are PNG.

WebP and AVIF together are 23.1% of images. At the same quality they are usually much lighter than JPG and PNG, and converting images is one of the simplest speed fixes on a phone. AVIF, the lighter of the two, is used a little more than in Verona (5% against 4.1%), but is still rare. Fonts, on the other hand, are mostly in the right format already.

The share of images in a modern format is in line with the average of the 7 cities in Italy we have scanned so far, which is 22.6%.

File formats
Images
  • JPG
  • PNG
  • WEBP
  • SVG
  • Other
JPG36.3%36.8%
PNG21.5%21.8%
WEBP18.1%18.1%
SVG12.8%12.6%
Other11.3%10.7%
Fonts
  • WOFF2
  • WOFF
  • TTF
  • 2
  • Other
WOFF277.1%77.3%
WOFF6.1%6%
TTF4.4%4.5%
24.2%4%
Other8.3%8.1%
Favicons
  • PNG
  • ICO
  • JPG
  • WEBP
  • Other
PNG64%64.4%
ICO14.7%15%
JPG12.6%12.4%
WEBP4.1%3.8%
Other4.5%4.4%
Preview image (og:image)
  • JPG
  • PNG
  • WEBP
  • SVG
  • Other
JPG64%63.9%
PNG23.6%23.4%
WEBP10.3%10.6%
SVG0.6%0.6%
Other1.5%1.5%
Videos
  • MP4
  • WEBM
  • 4
  • MOV
  • Other
MP482.8%83.5%
WEBM5.4%5.4%
43.9%3.8%
MOV2.7%2.8%
Other5.2%4.4%
Audio
  • MP3
  • WAV
  • OGG
  • MP4
  • Other
MP393.3%93.7%
WAV2.5%2.1%
OGG1.4%1.8%
MP40.7%0.5%
Other2.1%1.8%

Four sites in ten run on WordPress, one in eight on React

Across 27,460 working sites: WordPress 38.9%, Elementor 12.1%, Wix 4.2%, Duda 1.2%, Joomla 1.1%. Google Analytics 36.8%, Facebook Pixel 11.1%. Cloudflare 20.9%, Aruba hosting 12.6%. Online stores: WooCommerce 6%, Shopify 4.2%. Cookie consent: iubenda 13.9%, Cookiebot 5.8%. WhatsApp chat on the site 4.1%.

Milan is a WordPress city like Verona (38.9% against 37.5%), but with more recent technologies: React is on 12.1% of sites against Verona's 9.6%, jQuery on 58.5% against 63.5%. Wix is more common (4.2% against 2.9%). WordPress with a page builder such as Elementor used to be an easy combination to edit, but with the arrival of modern tools it has lost its edge, and it loads a lot of code. Booking built into the website is rare (0.4% of sites), even in a city with 7,212 restaurants and 1,533 lodging businesses. Technologies are detected on the home page only, so ones used only on inner pages can be missed.

The share of sites on WordPress is in line with the average of the 7 cities in Italy we have scanned so far, which is 39.9%.

Most used technologies
  • Milan
  • Average of 7 cities in Italy
  1. 01
    Open Graph
    59.9%
  2. 02
    jQueryJavaScript libraries
    58.5%
  3. 03
    PHPProgramming languages
    45%
  4. 04
    HTTP/3
    43.5%
  5. 05
    Google Font APIFont scripts
    43.4%
  6. 06
    Google Tag ManagerTag managers
    40.7%
  7. 07
    MySQLDatabases
    39.9%
  8. 08
    WordPressBlogs
    38.9%
  9. 09
    Priority HintsPerformance
    38%
  10. 10
    Google AnalyticsAnalytics
    36.8%
  11. 11
    RSS
    35.8%
  12. 12
    jQuery MigrateJavaScript libraries
    35.5%
Open Graph59.9%59.4%
jQuery58.5%60.6%
PHP45%46.7%
HTTP/343.5%42.4%
Google Font API43.4%44.4%
Google Tag Manager40.7%41.3%
MySQL39.9%40.9%
WordPress38.9%39.9%
Priority Hints38%37.6%
Google Analytics36.8%37.8%
RSS35.8%36.3%
jQuery Migrate35.5%36.6%
Font Awesome35.1%36.6%
core-js35%34.8%
Nginx24%24.1%
jQuery UI22.3%23%
Cloudflare20.9%20.2%
Yoast SEO20.3%20.5%
Twitter Emoji (Twemoji)19.6%20%
Swiper17.8%18.3%
Apache HTTP Server16.6%17.4%
Contact Form 715.1%15.6%
Bootstrap14.9%16.4%
GSAP14.8%14.8%
iubenda13.9%14.3%
Cart Functionality12.8%12.5%
Lodash12.7%12.2%
Aruba.it12.6%12.8%
Masonry12.5%13.2%
Elementor12.1%12.7%
React12.1%11.1%
reCAPTCHA12%12.7%
Facebook Pixel11.1%11%
Isotope9.6%10.4%
lit-html7.9%8.2%
lit-element7.9%8.2%
PWA7.8%7.9%
Modernizr7.2%7.6%
Site Kit6.6%6.7%
Amazon Web Services6.5%6.3%
Slider Revolution6.5%7%
LazySizes6.5%6.4%
Plesk6.1%6.5%
Cookie Control6.1%6.2%
Sentry6%5.4%
WooCommerce6%6%
wpBakery5.9%6%
Cookiebot5.8%6%
Google Maps5.7%6.3%
LiteSpeed5.1%5%
Microsoft ASP.NET5%4.9%
Cybot5%5.1%
Animate.css4.9%5.1%
FancyBox4.8%5%
Tailwind CSS4.6%4.4%
OWL Carousel4.6%4.9%
PayPal4.6%4.3%
WPML4.5%4.4%
Windows Server4.4%4.3%
IIS4.4%4.2%
MediaElement.js4.3%4.4%
Wix4.2%3.7%
Shopify4.2%3.9%
Microsoft Clarity4.2%4%
WhatsApp Business Chat4.1%4.1%
jsDelivr4.1%4.2%
Hello Elementor4%4.2%
Popper3.9%4%
Select23.8%3.8%
cdnjs3.7%4.1%
prettyPhoto3.6%3.7%
Wix eCommerce3.4%3%
Apple Pay3.3%3.1%
YouTube3.1%3.1%
Google Cloud3.1%2.8%
RankMath SEO3.1%3.3%
Divi3%2.9%
Google Cloud CDN3%2.8%
Webpack3%2.9%
Moment.js2.9%3%
PhotoSwipe2.9%3%
Google Ads2.9%2.8%
CookieYes2.8%3%
Skrollr2.8%3%
Vimeo2.8%2.8%
Facebook Login2.7%2.8%
Vue.js2.7%2.9%
Preact2.6%2.5%
Amazon CloudFront2.6%2.4%
Adobe Fonts2.6%2.4%
Flickity2.6%2.5%
Google Ads Conversion Tracking2.5%2.4%
AOS2.3%2.2%
Next.js2.2%2.1%
RequireJS2.2%2.1%
All in One SEO Pack2.1%2%
Chart.js2%2.1%
Linkedin Insight Tag2%n/a
Polylang2%n/a
Smash Balloon Instagram Feed2%n/a

More than half have structured data, few describe the business

Of the 30,255 businesses with a working website, 61.2% have at least one JSON-LD block, but only 3.8% have complete basic data. The LocalBusiness block is missing for 85.6%, incomplete for 8.5% and complete for 5.9%. The WebSite block is complete for 46.9%.

The most common types are WebSite (48.5% of sites), Organization (36%), BreadcrumbList (35.7%), WebPage (34.5%), ImageObject (24.2%), Person (19.3%) and Article (17.3%): the markup SEO plugins add on their own, describing the site, its pages and the authors of its articles. LocalBusiness and its subtypes (Restaurant 0.8%, Hotel 0.6%, Physician 0.5%) remain rare, while Product is on 5.8% of sites and FAQPage on 4.5%. Those that have the block most often leave out opening hours (44.8%) and the phone number (25.2%).

The share of businesses with complete basic data is in line with the average of the 7 cities in Italy we have scanned so far, which is 3.8%.

Basic structured data (JSON-LD)

What we count as complete

A business has complete basic structured data when the pages of its site carry both of these JSON-LD blocks:

  • LocalBusiness or one of its subtypes (Restaurant, Dentist, Store, LegalService...), with name, a structured address (PostalAddress, not free text), telephone, URL and opening hours.
  • WebSite with the site's name and URL.

Each block can appear on any of the analyzed pages. A block missing even one of these counts as incomplete. Shares are of the businesses with a working website.

Milan
57.4%
38.8%
  • Complete 3.8%
  • Some JSON-LD, basics incomplete 57.4%
  • No JSON-LD 38.8%
Average of 7 cities in Italy
56.9%
39.3%
  • Complete 3.8%
  • Some JSON-LD, basics incomplete 56.9%
  • No JSON-LD 39.3%
LocalBusinessComplete 5.9%
  • Complete 5.9%
  • Incomplete 8.5%
  • Missing 85.6%
Missing from LocalBusiness
  • Opening hours44.8%
  • Telephone25.2%
  • Address15.2%
  • URL9.3%
  • Name2.2%
WebSiteComplete 46.9%
  • Complete 46.9%
  • Incomplete 1.6%
  • Missing 51.5%
Missing from WebSite
  • Name3.3%
  • URL0%

The three heaviest points: two passed by almost everyone, one by few

Across 27,460 sites: content visible without JavaScript 93.7%, home page title 93.6%, Lighthouse SEO 91.8 out of 100, HTTPS 89.6%, robots.txt open to AI crawlers 83.7%, sitemap 78.1%, canonical 74.4%, meta description 66.7%, structured data on the home page 58.1%, llms.txt 26.8%, ARD manifest 0%.

The three points that weigh the most, 50 out of 100, split in two groups: content without JavaScript (20 points) and an open robots.txt (15) are passed by the large majority of sites, structured data on the home page (15) by only 58.1% of sites. Right after come the sitemap and llms.txt, 10 points each: 78.1% of sites have a sitemap, 26.8% the llms.txt file. 16.3% of sites fail the robots.txt point: either they have none, or it closes the door to at least one AI crawler, sometimes by choice and sometimes through a default setting of the theme or the host.

The share of sites open to AI crawlers is in line with the average of the 7 cities in Italy we have scanned so far, which is 83.8%.

The AI Crawlability Score's checks
  • 93.7%
    Content visible without JavaScript
    weight 20
    Average of 7 cities in Italy: 94.1%
  • 83.7%
    robots.txt open to AI crawlers
    weight 15
    Average of 7 cities in Italy: 83.8%
  • 58.1%
    Structured data on the home page
    weight 15
    Average of 7 cities in Italy: 57.5%
  • 78.1%
    Sitemap
    weight 10
    Average of 7 cities in Italy: 77.8%
  • 26.8%
    llms.txt file
    weight 10
    Average of 7 cities in Italy: 25.9%
  • 93.6%
    Home page title
    weight 5
    Average of 7 cities in Italy: 93.7%
  • 91.8%
    Lighthouse SEO score
    weight 5
    Average of 7 cities in Italy: 91.8%
  • 89.6%
    HTTPS
    weight 5
    Average of 7 cities in Italy: 89.6%
  • 74.4%
    Home page canonical
    weight 5
    Average of 7 cities in Italy: 73.8%
  • 66.7%
    Home page meta description
    weight 5
    Average of 7 cities in Italy: 66.7%
  • 0%
    ARD manifest for AI agents
    weight 5
    Average of 7 cities in Italy: 0%
// Digging deeper

What else the working sites show

Cuts of the 27,460 working sites beyond the headline figures. A site counts once, only home pages are measured, and a group needs at least 10 sites to appear.

Sector by sector

Mean Lighthouse performance and AI Crawlability Score of the working sites of each sector with at least 10 sites. A site counts once, in the sector most of its businesses are in.

SectorSitesPerformanceAI Crawlability Score
Professional services3,50167.270
Restaurants2,72567.867.6
Fashion and beauty2,38859.975.1
Creative and media2,0886867.9
Health1,9736673.8
Beauty and wellness1,28265.169.6
Real estate1,27861.966.2
Events and leisure1,06166.468.4

What the sites run on

Technologies detected on the home page of 26,873 of 27,460 working sites, with the mean scores of the sites that use each.

Technologies
TechnologySitesSharePerformanceAI Crawlability Score
Open Graph16,46159.9%63.378.9
jQuery16,06158.5%63.273
PHP12,35345%64.175.7
HTTP/311,94543.5%66.274.3
Google Font API11,92043.4%62.172.4
Google Tag Manager11,17640.7%59.276.9
MySQL10,95139.9%63.777.5
WordPress10,67238.9%6477.8
CDN
CDNSitesSharePerformanceAI Crawlability Score
None detected18,65267.9%65.667.9
cloudflare3,58813.1%6576.1
google2,2468.2%67.878
aws1,5825.8%65.972.5
cloudfront5712.1%54.173.3
azure2991.1%57.767.3
fastly2430.9%49.972.8
oracle1540.6%46.862.6

Content basics

63.2% of the sites have at least one page that repeats a word above the density our crawler flags as keyword stuffing.

On the home page, 22.1% of titles are longer than 60 characters and 33.3% of the sites have no meta description. 13.9% repeat the same title on more than one page.

Security

89.6% of the sites answer on HTTPS, and 91.8% of those redirect plain HTTP to it.

Of 24,376 certificates checked, 100% are valid and 11.3% expire within 30 days.

Security headers on the home page: 32.7% send Strict-Transport-Security and 15.2% a Content-Security-Policy. We check that a header is present, not how strong it is.

// This scan

The Milan scan, at a glance

Period
From October 4 to 10, 2026
Kind of scan
Quick: home page and first 4 sitemap pages; Lighthouse and technologies on the home page only
Area
City of Milan
Businesses counted
51,962
Working sites analyzed
27,460
National comparison
Average of 7 cities scanned in Italy
Data updated
October 10, 2026
Overture Maps data
September 18, 2026
Scanner version
v1.2.0
How we measure: the full method
// Data and limits

Where the data comes from

The businesses and the website they list come from Overture Maps, an open dataset of places. We use no other source to find websites: every site analyzed is the one listed on the business's Overture entry.

Places have no single licence for the whole theme: each provider has its own, all permissive. CDLA Permissive 2.0 for Meta, Microsoft, PinMeTo, Krick, RenderSEO, DAC and BrightQuery, Apache 2.0 for Foursquare (whose data was transformed to Overture's schema) and CC0 1.0 for AllThePlaces.

Administrative boundaries (the divisions theme) are licensed ODbL and come from OpenStreetMap, geoBoundaries, Esri Community Maps and LINZ. That is why our reports carry the line Overture gives for data that includes OpenStreetMap.

Overture's page states no sharing or derived data obligations beyond that line: we add no conditions that are not there, and refer to each source's own licence for the details.

Attribution
© OpenStreetMap contributors, Overture Maps Foundation

What this scan read

  • Overture dataset of September 18, 2026.
  • 11,051 of the 38,511 sites we tried to analyze did not answer or blocked our tool (28.7%): the web figures cover the other 27,460.
  • AI Crawlability Score computed with rules 2.0.0. It is our own measure, not an industry standard.

What these figures do and do not measure

A report says precise things, and only those. These are the limits to keep in mind when quoting one of its figures.

  • Homepage only. Lighthouse and the AI Crawlability Score measure each site's main page, not the whole site: the figure is that of a shop window, not of every page.
  • Working sites only. The web figures cover the sites that answer. Sites that do not answer, or that block our tool, are left out: a site behind a bot check can be unmeasurable while working for a visitor.
  • Only businesses that list a website on Overture. A business with no website on its listing is not measured on the web, and a listing with an old website leads to a page that does not open. Every report says how many businesses list a website and how many have a working one.
  • A sample, not a register. Overture is not the business register: it covers some businesses and some areas better than others, so the picture can lean towards businesses with a well kept listing.
  • A site counts once. When several businesses list the same site, it counts once in the web figures. Business counts count each one.
  • One language. Our tool presents itself as an Italian browser: a multilingual site is measured in its Italian version.
  • Search Console is recognised only from a meta tag or the DNS, so the real share can be higher than the one we show.
  • The AI Crawlability Score is our own measure, not a market standard: it cannot be compared with outside tools. It changes with rules versions, and two reports compare only on the same scanner and the same rules.
  • Cities only, and only averages and medians. Reports do not say who is best in a sector or which studios do better, and they publish no single business's result.
// frequently asked questions

The answers, to your questions.

We counted 51,962 businesses in Milan. 41,954 of them (80.7%) list a website, but only 30,255 (58.2%) have one that works: the other addresses do not answer, or lead to a social profile or a booking site. The scan ran from October 4 to 10, 2026.
Among the sectors with at least 30 businesses, the fewest working websites are in bars and pubs (27.5%), cafés (32.7%), and beauty and wellness (38.4%); the most are in creative and media (75.7%), industry (74.6%), and travel (72.7%). The shares are the sector's businesses with a website that opens.
In part. In Milan 58.2% of businesses have a working website, in Verona 51.5%, and Milan is ahead in 22 sectors out of 25. The sites themselves, though, are very alike: the same medians for performance (66), best practices (96) and SEO (92), and one site in two with no verifiable Search Console in Milan against more than one in two in Verona. The median AI Crawlability Score is 79.3 against 74.6. Both analyses use the same version of the tool (1.2.0), so the numbers can be compared.
If it is based in Milan and appears on Overture Maps, probably yes. We do not publish results for single businesses or single sites, here or in the open data. If you want to see yours, book the free 30 minute call: we show you how it came out of the scan, meaning speed, SEO, AI readability and technologies, and what we would fix first. Or run the free SEO audit on your site right away: the same checks as this report, compared with the sites of your city.
Looking at Milan's websites, the things missing most often are also the cheapest to fix: connecting Search Console (no sign of it on 50.2% of sites), writing a meta description for the home page (missing on 33.3%), adding a complete LocalBusiness block with opening hours (only 3.8% of businesses have complete basic data), converting images to WebP or AVIF (23.1% today) and adding a preview image for shares (missing on 45.5% of sites). For general searches, ratings and reviews matter most: keeping the Google listing up to date is worth as much as the website. The free SEO audit shows you in a few minutes which of these your site is missing; on the free call we go through them together.
The figures are free to use, commercial use included, as long as you cite the source (CC BY 4.0 license). Cite NFW Web Studio, the page title and its link, for example: NFW Web Studio, "Milan businesses: state of the web, October 2026", https://www.nfw.run/state-of-the-web/milano-city-october-2026-v1-2-0. The aggregate figures are also available as JSON at https://dashboard.nfw.run/state-of-the-web/v1/scans/92b63c4f-1e2a-478a-bb36-d38119a1573e. If you need a figure that is not here, write to us.
A landing page starts from €520 and a full website from €1,160, VAT included. These are starting prices: after a call, you get a written quote with a single figure within 24 hours. A landing page takes under 7 days, a full website starts from 7 days. With the express option, timelines are halved and guaranteed: online within 48 hours for a landing page and 96 hours for a full website.
Yes to both. We are based in Verona, and when it makes sense we come and see the shop, workshop or venue: understanding the space helps us describe it on the site. We also work remotely with businesses across Italy and Europe, with the same method and timelines: only the way we meet changes, a video call instead of a coffee.
You can, and to get started it may be enough. Before you choose, check the things this report measures on every site: how long it takes to open on a phone, whether it has a sitemap, whether it describes the business in a way Google and AI assistants can read. Some free builders cover them, some do not, and some do not let you change them. To check them you can use the free SEO audit; if you like, we can look at what you built together on the free call.

Didn't find what you were looking for? Contact us

// ready when you are

Your website, online within a week.

Write to us today: we reply within 24 hours with the next steps.

  • Meet in person or by video call
  • Written quote within 24 hours
  • Published prices, VAT included
  • Online within a week
  • The site stays yours
Contact for Milan
Enrico: Software Engineer
enrico@nfw.run
Available for in-person meetings in San Giovanni Lupatoto and Verona, and by video call across Italy and Europe.