The short version

International SEO makes sure Google shows the right version of your page in every country and language. First decide whether you serve another language, another country or both. Give every version its own URL, usually in a subfolder such as /fr/ or /en-gb/. Link the versions with hreflang in both directions. Research keywords again for each country instead of only translating. Don't redirect visitors automatically based on language, and measure the results per country in Google Search Console.

International SEO makes sure Google shows the right version of your page in every country and language. For a small business, that comes down to five choices. Which countries and languages do you serve? Where does each version live in the URL? How do you link the versions? How do you adapt the content to each country? And how do you measure the results per country?

I have been building websites for more than 20 years, and our own site runs in two languages: Dutch at the root and English under /en/. In this guide I walk through the choices you make before you add a second country or language, whatever CMS you use. If you work with Storyblok, the technical setup is in our guide to Storyblok localization.

What is international SEO, exactly?

International SEO is everything you do so search engines show your pages in the right countries and languages. Google’s guidelines for multi-regional and multilingual sites make a useful distinction. A multilingual site offers content in more than one language. A multi-regional site explicitly targets users in different countries. Many sites are both. Multilingual SEO, the work for a site in several languages, is one part of international SEO.

That distinction shapes your setup. A Belgian installer who wants customers in the Netherlands speaks the same language but targets another country. An online store in Antwerp that sells to Wallonia and France needs a second language. A business active in the Netherlands, Germany and France needs both. The more countries and languages you add, the more the basics matter, because every mistake repeats in every version.

So international SEO isn’t a separate technique next to regular SEO. It’s the same work our SEO services for small businesses cover, done per country: technology, content and measurement for every version of your site.

Language or country: which one do you need?

Don’t start with the technology. Start with your customers and ask yourself three questions.

  • Does your offer differ per country? Different prices, delivery times, regulations or contact details call for a separate country version.
  • Does the language differ? Then you need a translated version, even if the offer stays the same.
  • Do customers in that country search with different words? Then you need adapted copy, even in the same language.

Businesses often underestimate that last point. Dutch is a good example: Belgians usually say “gsm” for a cell phone, while people in the Netherlands say “mobiel”. The language is the same, but the search terms differ. A customer abroad also expects a local address and phone number, or at least clear information about delivery and service.

If you only need a second language for the same audience, for example English for expats and international clients, one language version without a country code is enough. That’s how we run this site.

Domain, subfolder or subdomain?

Every version of a page needs its own URL. Google advises against switching the language with cookies or browser settings on the same URL, because its crawler then won’t find every version. So the only question is where those URLs live. Google lists the options in its guidelines.

StructureExampleProsCons
Country code domainexample.deClear signal for one country, separate site per countryMore expensive, more upkeep, targets one country only, sometimes strict requirements
Subdomainde.example.comEasy to set up, separate hosting per country possibleVisitors can't always tell whether de is a language or a country
Subfolderexample.com/de/Easy to set up, low maintenance, one domainVisitors can't always tell the country from the URL, one server
URL parameterexample.com?loc=deNoneNot recommended by Google, hard to measure and to separate

For most small and mid-sized businesses, a subfolder on your existing domain is the logical place to start. You build on the authority your domain already has, you manage one site, and you can still add a country domain later. A country code domain is the strongest signal for a single country. Consider it when you really need a local presence there, for example because customers expect a local domain.

Watch out for domains that look like country domains. Google treats .eu as a generic domain, just like .com. It also treats country domains such as .io, .ai and .co as generic, because that’s how people use them. With one of those domains, you don’t send a country signal.

Hreflang tells Google which pages are versions of each other, so the right version shows up in search results. The rules in Google’s documentation on localized versions are short:

  • Every version links to itself and to all other versions.
  • You use full URLs, including https://.
  • The link only works if both pages point to each other.
  • An x-default points to the page for visitors whose language isn’t on the list.

The trap is often in the codes. The first code is always the language (ISO 639-1), the second, optional one is the country (ISO 3166-1). A Dutch version for Belgium, a Dutch version for the Netherlands and a French version for Belgium look like this:

html
<link rel="alternate" hreflang="nl-BE" href="https://example.be/" />
<link rel="alternate" hreflang="nl-NL" href="https://example.be/nl-nl/" />
<link rel="alternate" hreflang="fr-BE" href="https://example.be/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.be/" />

Never write be on its own: that’s the language code for Belarusian, not a country code. UK and EU don’t work either, because they aren’t on the ISO list. Use en-GB for the United Kingdom.

You can put hreflang in the HTML, in the HTTP headers or in the sitemap. Google calls the three methods equivalent and sees no benefit in combining them. So pick the place you can keep free of errors most easily.

Also watch the canonical URL. If two versions really target different countries, let each version’s canonical URL point to itself. A canonical URL pointing to another country’s version tells Google that only that version counts. If you accidentally have two URLs with the same content for the same audience, pick one preferred version, as Google recommends.

Translating isn’t the same as localizing

A translated page only ranks if it uses the words people in that country search with. So research keywords again for each country instead of translating your original keywords word for word. Google Ads Keyword Planner lets you filter by country and language. Demand differs even within one language area: in Keyword Planner, the Dutch term “internationale seo” averaged 30 searches a month in the Netherlands from November 2025 through October 2026, against 10 in Belgium.

Localizing goes beyond keywords. Google lists local addresses and phone numbers, the local language and currency, links from other local sites and a Business Profile as signals for a page’s audience. A Dutch version with only a Belgian phone number and Belgian delivery terms convinces visitors and search engines less than a version with local contact details.

Keep each page in one language, too. Google determines a page’s language from its visible text, not from the lang attribute or the URL. A French page with Dutch menus or half-translated sections sends a mixed signal. So translate the navigation, buttons, forms and footer as well.

Why you shouldn’t redirect visitors automatically

Many sites automatically send visitors to the language of their browser or the version for their country. Google advises against it. Such a redirect can stop visitors and search engines from seeing every version. According to the documentation, Google’s crawler usually comes from the United States and doesn’t send a language preference, so with automatic redirects it keeps landing on the same version.

Instead, show a clear language or country switcher on every page, with links to the same page in the other versions. A notice such as “This page is also available in French” is fine, as long as visitors choose for themselves. That way a Dutch speaker in Brussels keeps the choice, and Google finds every version through regular links.

How do you measure international SEO per country?

In Google Search Console, add a Country filter to the Performance report. You then see clicks, impressions, CTR and average position per country. Combine that with a Page filter, for example on the subfolder /fr/, to see how one language version performs in the countries you built it for.

Our own site shows how big the differences can be. From August through October 2026, Belgium brought 127 clicks from 61,378 impressions, at an average position of 19.1. The Netherlands brought 90 clicks from 216,583 impressions, at an average position of 29.1. Google shows us far more often in the Netherlands, but lower and with fewer clicks per impression. Numbers like these per country tell you where extra work pays off most.

After launching a new language or country version, give it at least 30 days before drawing conclusions. During that period, also use URL Inspection to check that Google indexed every version and which canonical URL Google chose.

How we handle it on our own site

This site exists in Dutch and English. The Dutch pages live at the root and the English pages in the /en/ subfolder. The slugs are translated too: our page speed guide is /blog/laadtijd-website in Dutch and /en/blog/website-performance in English. Because the English version is for everyone, we use language codes without a country: nl, en and an x-default that points to the Dutch version.

One fixed list of page pairs in the code decides which pages are translations of each other. On every deploy, we build both the hreflang links in the HTML and the xhtml:link entries in the sitemap from that list. I wrote up the sitemap part with code in the guide to localized sitemaps with Astro and Storyblok. Google says one method is enough; we use both because they come from the same source and can’t drift apart. Pages that only exist in English get no hreflang links, just a canonical URL. That way there’s never a link to a translation that doesn’t exist.

That setup works without a CMS, but also with a headless CMS. If you want your own editors to manage the translations, look at a Storyblok website or another headless CMS implementation that supports languages per field or per folder.

Checklist for your second country or language

Use this list before you launch a new version:

  • You know whether you’re adding a language, a country or both, and why.
  • Every version has its own URL, preferably in a subfolder.
  • The hreflang codes are correct (language first, country optional) and every version links to itself and the other versions.
  • There’s an x-default for visitors whose language isn’t on the list.
  • Every version points to itself with a canonical URL.
  • You researched keywords per country and adapted the copy, contact details and terms.
  • Navigation, buttons and forms are translated too.
  • Visitors choose their own language; there’s no automatic redirect.
  • You measure per country in Search Console, with a baseline and a second measurement after at least 30 days.