- Which Milan you are competing in — footfall, expertise, catalogue or export — because one of them pays the bills and the rest of the plan follows from it.
- The map pack as a separate contest, and the three signals that decide most local outcomes in the city.
- The language question Milan cannot avoid, and the district-page trap that wastes a quarter.
- A first ninety days that repairs structure before building anything: semalt.com/authorize.
Milan is not one market. A trattoria two streets from the Duomo, a dental practice in Città Studi, a precision components manufacturer on the Sesto axis and a fashion showroom in Brera are all “Milanese businesses”, yet almost nothing about how they earn organic visibility is the same.
The searcher near the Duomo is often a visitor typing in English and deciding within the next twenty minutes. The searcher looking for the dental practice lives four stops away and will compare three clinics over a week. The buyer looking for the components manufacturer is in Stuttgart, searching in German, and will never set foot in the city. Treating all of them with one generic “SEO for Milan” plan is the most common reason budgets disappear without moving anything.
Start by deciding which Milan you compete in
Before any technical work, answer one question honestly: does your revenue depend on proximity, on expertise, on catalogue breadth, or on export?
- Proximity-led. Restaurants, hotels, hairdressers, garages, pharmacies, clinics with a catchment area. The map pack is the battlefield and the website supports it. Winning means being the obvious choice inside a radius, not ranking nationally for a generic term.
- Expertise-led. Lawyers, accountants, medical practices, consultancies, agencies. The decision is slow and trust-driven. Depth of content, named authors with verifiable credentials and consistent professional signals matter more than any single keyword.
- Catalogue-led. Fashion and design e-commerce, wholesalers, distributors. The work is structural: category architecture, control of faceted navigation, and keeping thousands of URLs crawlable and non-duplicated.
- Export-led. The manufacturing belt around the city. Here the market is not Milan at all: it is a language and a country, and the whole plan changes shape.
Local search: the map pack is a separate competition
A Google Business Profile is not a formality. For proximity-led businesses it frequently drives more contacts than the website does, and it is ranked by signals the website barely touches: category selection, proximity to the searcher, review volume and recency, photo activity, and the consistency of your name, address and phone number wherever they appear.
Three things decide most local outcomes in Milan.
District pages, done properly
The temptation is to spin up thirty pages — “SEO Navigli”, “SEO Brera”, “SEO Isola”, “SEO Porta Romana” — with the district name swapped in. Search engines have been discounting that pattern for years, and readers bounce from it instantly.
A district page earns its place when it contains something only someone who works there would know: which streets fall inside the restricted traffic zone and what that does to delivery times, what the parking situation means for an appointment-based business, which landmarks customers actually use to describe where they are going, how the tram lines change who can reach you at seven in the evening.
The language question, which Milan cannot avoid
Milan holds a large international population — multinational offices, universities, design and fashion buyers, a permanent flow of business visitors — and a manufacturing belt that sells abroad. That produces a real strategic decision rather than a cosmetic one.
If your customers include non-Italian speakers, an English version has to be an actual translation of intent, not a machine pass over the Italian. The English searcher does not type “ristorante tipico milanese” — they type “where to eat risotto near Duomo”, “English speaking dentist Milan”, “showroom appointment Milan design week”. Those are different keywords describing the same service, and they need pages written from the English query, not from the Italian sentence.
When you do publish both, connect them properly.
| Element | The rule | What breaks without it |
|---|---|---|
| URL | Each language version gets its own stable address | One URL serving two languages cannot be targeted at either |
hreflang | Each version points at itself and at every counterpart | The versions are never connected, so neither inherits the other’s standing |
canonical | Each version points at itself, never at the other language | The pointed-away version drops out of the index entirely |
x-default | The version an unmatched visitor should land on — usually the Italian one | Unmatched searchers are distributed arbitrarily |
Get this wrong and you get the worst outcome: two pages competing, neither ranking. A common failure is publishing an English URL that serves Italian text — search engines see a duplicate, readers see a broken promise, and the English opportunity is lost while still consuming crawl budget.
Technical work, in the order that pays
Technical SEO in Milan is not different from technical SEO anywhere, but the priorities for a typical local site are consistent enough to list.
Mobile reality first. Much of Milan’s local searching happens outdoors, on a phone, on a congested network, often by somebody walking or on a tram. A page that needs four seconds and a cookie wall before showing an address has already lost that customer. Test on a throttled connection, not on office fibre.
One clear URL per thing. The most common technical defect on small Milanese sites is the same page reachable at several addresses — with and without a trailing slash, with and without www, with tracking parameters, under both a language prefix and the root. Pick one form, redirect the rest with a 301, and make the canonical agree.
Structured data that matches the page. LocalBusiness with real opening hours and address, Article on genuine articles, FAQPage only where the questions are actually on the page. Marking up a claim the page does not make is a liability, not an optimisation.
Indexation hygiene. Know how many pages you have, how many are indexed, and why the difference exists. Sitemaps should list only URLs that answer 200 and carry real content. A sitemap advertising empty or removed pages teaches search engines to trust it less.
“In most audits, two structural defects are worth more than everything else on the list combined. Finding them is an afternoon; arguing about content for a quarter is not.”
Content a Milanese customer recognises
Generic advice ranks nowhere because everyone has published it. Specificity is the only durable advantage, and specificity is free — it comes from doing the work.
A hotel near Centrale writes about arriving late from Malpensa, the actual route, and which night buses run. An accountant writes about the deadlines their clients genuinely miss and what happens next. A workshop in the eastern hinterland writes about which faults it sees most on the models common in the area. A design showroom writes about lead times on made-to-measure pieces, in weeks, with the reason.
- ✓Could a competitor publish this identical text by changing the company name? If yes, it will not rank
- ✓Does it answer a question a customer asked you this month, in the words they used?
- ✓Does anyone verifiable stand behind it? A named author with a real role beats an anonymous “the team” byline, particularly for anything touching money or health
Measuring, without deceiving yourself
Rankings are a diagnostic, not a result. Two measurements matter more.
The first is what search brings you: Search Console shows the queries you actually appear for, the pages that receive them, and the gap between impressions and clicks. A page with many impressions and few clicks usually has a title and description problem, not a ranking problem — and that is a same-day fix.
The second is what happens after the click. Calls, direction requests, form submissions, bookings, quotation requests. A restaurant that climbed three positions but receives no more reservations has learned something more useful than its ranking: the page is not converting the traffic it already has.
Set the review rhythm to match reality. Local visibility moves in weeks. Competitive commercial terms move in months. Export markets move in quarters. Checking positions daily produces anxiety and no information.
The mistakes that cost the most
- Buying links. Milan has an active market in cheap directory and “guest post” packages. They carry real risk and almost no upside.
- One page for everything. A single services page listing eleven services will not rank for any of them. Each service a customer searches for separately deserves its own page.
- Ignoring the Business Profile. Months of content work while the profile has the wrong category, old hours and unanswered reviews is effort spent on the smaller half of the problem.
- Redesigning without a migration plan. A new site launched with new URLs and no redirect map is the fastest way to lose years of accumulated visibility in a single afternoon.
- Publishing empty pages. Placeholder pages left live and listed in a sitemap actively harm the site; unpublish them until they have content.
A realistic first ninety days
Ninety days will not beat an entrenched competitor for the hardest term in the city. It will reliably fix the structural problems that were preventing every other effort from working, and that is the point.
Where the city’s calendar changes the plan
Milan runs on a calendar in a way few other cities do: design week, fashion weeks, trade fairs, the sale periods. For anyone whose demand spikes around those dates, the operational rule is the same one that governs event pages everywhere — publish early enough to be discovered.
A page published three days before an event is published too late: it needs weeks to be found, evaluated and ranked. Six weeks ahead, with whatever data exists, updated as details firm up, is the pattern that works. The corollary is that the editorial calendar for design and fashion has to be built at least two quarters before the events it serves.
When to bring in help
Do it yourself while the work is habit-shaped: reviews, photos, content only you can write. Bring in specialists when the work is structural and infrequent — a migration, a multilingual rollout, a technical audit of a large catalogue, or a recovery after a traffic collapse.
Ask any prospective partner what they would measure and when they would expect it to move.
Frequently asked questions
How many district pages does a Milan business actually need?
As many as it can write two genuinely specific paragraphs about, and no more. For most businesses that is between two and five, not thirty.
Is an English version worth it for a local service business?
It is when a real share of your customers work in English — which in central Milan is common. It is not when the English pages would only be a translation nobody searched for.
How long before the Business Profile work shows?
Local visibility is the fastest-moving part of the whole plan: category and review changes often show within weeks, well before anything happens on competitive commercial terms.
We are a manufacturer in the hinterland. Does local SEO matter at all?
Less than you would think for revenue, more than you would think for recruitment and for credibility checks. But the plan that earns you enquiries is the export one, not the local one.
See which Milan you are actually ranking in
Positions by language and market, indexation against the pages you really have, and the queries that bring contacts.
Open the Semalt dashboardNeed Help With Your SEO?
Our team of experts can help you implement these strategies and more.
Get Free Consultation