
International and multilingual SEO
Working on several markets at once is a different job from working on one well. The structure has to carry every language without them competing, the query research has to be redone for each, and the reporting has to keep them apart — because a single blended figure across markets hides which of them is actually working.
100
+Completed projects
Websites, landing pages and SEO projects for businesses in different niches and markets.
15
Years of experience
Hands-on experience in SEO, website development and digital strategy.
17
+Industries covered
From local services and startups to real estate, e-commerce and B2B projects.
3
Working languages
English, Polish and Russian — with content and structure adapted to each market.
What international SEO work involves
Deciding which markets are worth entering
Not all of them, and rarely all at once. Where competition is thin enough that a realistic budget can place, where deal values justify the work, and which market funds the next. This comes before any technical work.
The structure that carries every language
Locale routing, hreflang across every version including the return references, canonical relationships that don't collapse versions into each other, and a content model where adding a market later is a content task rather than a rebuild.
Query research rebuilt per language
Done in the language, not translated into it. This is the part that never transfers between markets, and treating it as translation is the most reliable way to target terms with no volume.
Market signals per version
Currency, formats, service area in structured data, contact conventions. Individually small, collectively the difference between a version aimed at a market and one that merely exists in its language.
AI visibility measured per language
Assistants answer in the language of the question from sources in that language. A company well described in one language can be entirely absent in another, and a blended figure hides exactly that gap.
Reporting that never averages markets together
Non-branded clicks per country, positions on a per-language query list, AI answer presence per language. Separated from month one, because once the figures are combined the useful question can no longer be asked.
Why several markets are a different job from one market repeated
The assumption behind most multi-market projects is that the work multiplies: what was done for one country gets done again for the next, at roughly the same cost each time.
Part of that is true and part of it is the reason these projects overrun.
What genuinely transfers is the technical layer. The structure, the routing, the markup, the measurement setup — build them once properly and every additional market costs a fraction. That's the real economy of scale here, and it's why the structure decision made at the start determines the cost of everything after it.
What never transfers is the query research and the content. Each language phrases commercial intent its own way, and no amount of care in translation produces the phrasings people actually type. Every market is a fresh start on that side, every time.
So the honest shape is: technical work once, market work per market. A supplier promising that entering the second country costs a tenth of the first is describing only the half that scales.
Why hreflang matters more than it sounds like it should
The most common structural failure, and it's invisible without looking.
Search engines encountering several versions of the same page have to decide whether they're duplicates competing for one position or alternatives serving different audiences. Hreflang is how they're told. Get it wrong and the versions are treated as duplicates: the signal splits between them, and both rank worse than a single version would have.
The failures are specific and findable. Missing return references, so version A points at B but B doesn't point back. Codes that don't match the actual content. Versions that reference pages which no longer exist. A default version declared for nobody or for everybody.
None of this shows in analytics as a problem. It shows as underperformance without a cause, which is why it survives for years on sites that are otherwise well run.
I've seen the sharper version of this too: a site rebuilt with AI assistance where the language versions were wired to the wrong locales. Traffic fell within two days, and the two weeks it took to resolve were almost entirely diagnosis.
Choosing markets is the part that saves the most money
Before any of the technical work, there's a question most projects skip: which markets are actually worth entering at your budget.
They are not equal. A market where established competitors have held the commercial terms for a decade has a realistic ceiling that a new entrant can't reach in a year. A smaller market with thin competition may return more for a fraction of the effort. And some markets you're already reaching adequately through an existing language version, in which case building separately duplicates what you have.
That assessment is cheap relative to what it prevents. An audit that establishes there's no reachable target in your largest intended market costs a few hundred euros; discovering it after a year of retainer costs the year.
Sequence matters too. Entering three markets simultaneously means three sets of everything for a partial presence in each. Entering one properly and letting it fund the next produces something you can build on — and the technical work, done once, makes the second market genuinely cheaper.
Measurement is where multi-market work usually fails
Not in the execution — in the reporting.
Combined organic traffic across five markets is a number that cannot be acted on. A rise in one market masks a decline in another. Branded searches in the home market swamp non-branded growth abroad. And because the aggregate keeps moving, nobody notices that one of the five has been flat since the start.
What the reporting has to separate: non-branded clicks per country, positions on a query list built per language, and — increasingly — presence in AI assistant answers per language, since that moves independently of search positions and a blended number hides it completely.
This has to be set up from the first month. Once several markets have been reported together for a year, the historical data can't be separated retrospectively, and the question of which market ever worked becomes unanswerable.
When you need a country page instead of this service
Worth saying plainly rather than in small print.
If you're entering one market, this isn't the service. The work is that market's specifics — how buyers there search, what they check, which competitors hold what — and there are pages on this site for individual markets that cover exactly that.
This service is for the machinery: structure that carries several languages, the decision of which markets and in what order, and reporting that keeps them apart. It's the layer underneath the country work rather than a substitute for it.
Most companies working across borders need both, and the order is usually structure first — because entering a second market on a foundation built for one is where the rebuild costs appear.
I built a four-language property catalogue on that basis: buyers from more than twenty countries, over 1,500 organic visits a month with no advertising budget, and adding a language remained a content task throughout rather than becoming a rebuild.
How international SEO work starts
Which markets, in what order
Where competition is thin enough to place at your budget, which markets you're already reaching adequately, and which one funds the next. This decides the scope before anything is built.
The structure, built once
Locale routing, hreflang across every version, canonical relationships and a content model that accepts a new market as content rather than as a rebuild.
Per-market work, one market at a time
Query research in the language, market signals, content. This is the part that repeats and doesn't get cheaper.
Reporting separated from month one
Non-branded clicks per country, per-language query positions, AI answer presence per language. Set up before there's data to separate, because it can't be done retrospectively.

