Skip to content
DS Program

Ital Cheese Food

One experience, in three languages, for a consultancy that works outside Italy

My role in this project was to design and develop the website. The dairy consultancy the site describes belongs to the client: I built the way it is explained and reached.

Type
Web experience, Multilingual · Lead
My role
Website design & development
The Italian home page of Ital Cheese Food

The problem

Almost fifty years inside production don’t fit in a brochure.

People looking for this consultancy come from different countries and languages, often with a specific problem (a plant to start up, a production that won’t hold steady) and need to understand within seconds whether they’ve found the right person. A single-language site with a list of services doesn’t tell them that.

One experience, adapted to three markets instead of translated three times. Method and person first, then services: readers should recognize their own case before they find a form. And contact must stay within reach from any point, because people decide while they read, not at the end.

What I built

  1. The three home pages (Italian, Spanish, English) with reciprocal hreflang and `x-default` on the Italian one: each language is canonical to itself, none points to another.

  2. URLs translated language by language, declared in a single registry from which sitemap, canonical and alternate tags are derived.

  3. The method in four elements (structure, technology, people, support) and the comparison between online and on-site consulting.

  4. The plant journey: from analysis to start-up, with equipment as part of the project rather than a catalog.

  5. The map of the countries where the consultancy has worked, drawn from geographic data instead of an image.

  6. The request form with server-side delivery and an email fallback when the service doesn’t respond: no request gets lost silently.

  7. Visit statistics behind explicit consent, with six events that measure contacts and no personal data.

The product

The plant journey, from analysis to start-up
The services, each with the result it delivers
The section on production experience
Online and on-site consulting, side by side
The same experience in English
The method in four elements, on a phone

The decisions

  1. Three languages, not three sites

    Italian, Spanish and English live in the same structure: the content changes, not the framework. Each home page is canonical to itself and declares the other two as alternates, with Italian as the default language for visitors from countries that aren’t covered. The two in-depth pages exist only in Italian and don’t announce translations that aren’t there: declaring a language that doesn’t exist is a mistake Google remembers.

  2. Routes as the single source

    Status, indexability and URL for each language are declared in one registry. Sitemap, canonical and hreflang read from there: a new page enters the site map because it’s declared, not because someone remembered to add it. It’s also why drafts stay out of the sitemap while they’re drafts.

    • Five indexable URLs, all 200 and canonical
    • Legal pages kept out of the sitemap until the texts are final
    • No language canonicalized to another
  3. Method before services

    The central section doesn’t list services: it shows four elements (structure, technology, people, support) and the journey that runs through them, from plant analysis to start-up with the staff. Producers recognize their own sticking point in there, and reach the list of services already knowing what to ask for.

  4. Measuring without slowing down

    Statistics start only after explicit consent, and the tag loads last, when the content is already on screen. This isn’t abstract caution: loaded earlier, on a slow network it competes for bandwidth with the opening photo (measured: more than two extra seconds of LCP). The events measure contacts (WhatsApp, phone, email, form submission, language switch) and carry nothing a person types.

How it’s made

Next.js with the language segment in the route and the copy in typed files, one per language: one structure, three sets of content, no duplicate pages to keep in sync. Routes live in a registry that declares status, indexability and slug per language: sitemap, canonical and hreflang are derived from it, so a new page can’t be created outside the site map. Static pages on a distributed network; the form is the only thing that runs on the server.

Stack
Next.js, React, TypeScript, Tailwind CSS, Vercel, Multilingual IT/ES/EN, Technical SEO, GA4 with consent
My role
Product thinking, UX/UI, Frontend, Multilingual content structure, Technical SEO, Analytics and consent, Deployment

The result

  • Five indexable URLs, all self-canonical, with reciprocal hreflang across the three languages.
  • A sitemap generated from the route registry and accepted by Search Console, with no test pages or drafts.
  • Contact events verified on the requests actually sent, not just in the browser queue: none of them contain personal data.
  • The measurement tag loads last, after the content: loading it earlier cost, measured on a slow network, more than two seconds of LCP on the opening photo.

The site launched with more markets planned than the ones published: pages by service and by geographic area are already provided for in the route registry and will open when the copy truly exists in each language. Real searches will set the direction, not assumptions.

Ital Cheese Food is live: open it

What I built here: Websites

Need something similar?

Tell me about it: I’ll start from where you are now.