Balkans · EU candidate
SEO audit for websites in Bosnia and Herzegovina
Bosnia and Herzegovina has three languages in official use, two scripts and an audience that notices which variety a page speaks. The SEO question is less ‘how do I translate’ than ‘which variant do I publish, in which script, and what do I tell the search engine about it’.
These notes are for a site aimed at Sarajevo, Banja Luka, Mostar or Tuzla, or at communities abroad.
Bosnia and Herzegovina at a glance
- Languages and hreflang codes
- Bosnian
bs-BAOfficial in practice; written in Latin - Croatian
hr-BAOfficial in practice; written in Latin - Serbian
sr-BAOfficial in practice; Latin or Cyrillic (sr-Latn-BA, sr-Cyrl-BA)
- Bosnian
- Script
- Latin is predominant in practice. Bosnian and Serbian can be written in Latin or Cyrillic; Croatian is written only in Latin.
- Domain
- .ba is the country code.
- Native name
- Bosna i Hercegovina
- Currency
- Convertible mark (BAM, written KM), pegged to the euro
- Calling code
+387- Postcode
- 5 digits
e.g. 71000 (Sarajevo) - EU, EEA and Schengen
- EU candidate since December 2022. As far as we could verify, formal accession negotiations had not opened as of this review. Not an EEA or Schengen member.
Market notes for Bosnia and Herzegovina
Three standard languages, one audience that notices
Bosnian, Croatian and Serbian are mutually intelligible and collectively known as Serbo-Croatian, but each has its own standard form, and using one rather than another can mark identity. Some everyday words differ: ‘thousand’ is tisuća in Croatian and hiljada in Bosnian and Serbian. A page written in one variant can read as foreign to readers of another, even though they understand it.
Choose the variant by who your customers are, not by what is easiest to produce. Many business sites pick one Latin-script version as the default, and add the others only for the markets where the difference matters. If you publish several, give each its own URL, native-quality copy and hreflang value (bs-BA, hr-BA, sr-BA).
Latin or Cyrillic: serve both without confusing Google
Latin is predominant in practice, but Serbian readers, especially in Republika Srpska, may prefer Cyrillic. Serbian is almost entirely one-to-one between its two scripts, so a reliable automatic transliteration is a safe way to produce a Cyrillic version of the same Serbian text, unlike a machine translation between languages.
Give the Cyrillic version its own URLs, such as /sr-cyrl/, and tag it with a script subtag (sr-Cyrl-BA), with the Latin version tagged sr-Latn-BA. Do not switch scripts with a cookie or a script that rewrites the page, because crawlers will see only one of them.
Two entities, one district and addresses that must agree
The country consists of two entities and the Brčko District, and local business information such as addresses, phone prefixes and postcodes follows local conventions. Postcodes have five digits, as in 71000 for Sarajevo. Use the exact form your map listing shows, keep it as text, and repeat it in LocalBusiness markup, the footer and the contact page.
Prices are quoted in convertible marks (KM). In schema and product feeds use the ISO code BAM, so that search engines read the currency correctly, and keep the visible price in the form your customers expect.
Communities abroad and the neighbours’ search results
Bosnian-language readers live well beyond the country’s borders, and your pages compete with Croatian-language content from Croatia and Serbian-language content from Serbia. Local proof sets your site apart: prices in KM, a +387 number, Bosnian addresses and local references in the copy.
For guides aimed at everyone who reads the language, plain bs, hr or sr codes describe the language without claiming a country. Use the -BA region only on pages that are about Bosnia and Herzegovina.
Copy-ready examples for Bosnia and Herzegovina
Both snippets use placeholder data. Replace the domain, name, street, phone number, coordinates and prices with your own before you publish them.
hreflang tags
This set covers 4 versions (bs-BA, hr-BA, sr-Latn-BA, sr-Cyrl-BA) plus an x-default. Put the same full set in the <head> of every language version, each page listing itself too; Google ignores pairs that do not link back.
<link rel="alternate" hreflang="bs-BA" href="https://example.ba/bs/" />
<link rel="alternate" hreflang="hr-BA" href="https://example.ba/hr/" />
<link rel="alternate" hreflang="sr-Latn-BA" href="https://example.ba/sr/" />
<link rel="alternate" hreflang="sr-Cyrl-BA" href="https://example.ba/sr-cyrl/" />
<link rel="alternate" hreflang="x-default" href="https://example.ba/bs/" />
LocalBusiness JSON-LD
The postcode follows the Bosnia and Herzegovina format (5 digits) and the telephone starts with +387. Use the most specific business type that fits, and keep every detail identical to your footer, contact page and map listing.
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"name": "Example Studio Sarajevo",
"url": "https://example.ba/bs/",
"image": "https://example.ba/images/storefront.jpg",
"telephone": "+387 33 000 000",
"priceRange": "20-150 BAM",
"address": {
"@type": "PostalAddress",
"streetAddress": "Ulica Primjer 1",
"addressLocality": "Sarajevo",
"postalCode": "71000",
"addressCountry": "BA"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 43.8563,
"longitude": 18.4131
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "09:00",
"closes": "18:00"
}
]
}
What the audit looks at
What the audit checks for Bosnia and Herzegovina
hreflang with script subtags
We check reciprocal tags for bs-BA, hr-BA, sr-Latn-BA and sr-Cyrl-BA, valid ISO codes and a self-reference on every page.
Script switching done with cookies or scripts
We flag script switchers that rewrite the page without separate URLs, because they hide the other script from crawlers.
UTF-8 and Latin and Cyrillic letters
We look for broken č, ć, đ, š, ž and Cyrillic letters in titles and structured data.
LocalBusiness schema with BAM prices
We validate required properties, the +387 telephone and the five-digit postcode stored as text.
Questions about SEO in Bosnia and Herzegovina
Which language should I choose for a Bosnian business site?
Choose the variant your customers use, in Latin script by default. Add other variants only for markets where they matter, each with its own URL and hreflang.
How do I handle Cyrillic for Serbian readers?
Publish it on separate URLs tagged sr-Cyrl-BA, and tag the Latin version sr-Latn-BA. Avoid cookie-based script switching, which hides one version from crawlers.
Which currency code should structured data use?
BAM, the ISO code of the convertible mark. Customers see KM on prices, but machines expect the ISO code.
Is Bosnia and Herzegovina in the EU?
No. It has been a candidate since December 2022. As far as we could verify, formal accession negotiations had not opened as of this review.
Can I use sr-BA for Serbian aimed at Bosnia?
Yes. Add a script subtag when you publish both scripts: sr-Latn-BA for Latin and sr-Cyrl-BA for Cyrillic.
Need a hand with Bosnia and Herzegovina?
If your Bosnia and Herzegovina audit turns up work you would rather hand over, two teams stand behind this tool. Nomor (nomor.tech) is our software development company and Limi Creatives (limicreatives.com) is our marketing company. Send us your report and tell us which market you are working in.
Nomor
Our software development company. Nomor designs and builds the software and websites behind this tool, including the audit engine, the PDF report and the pages you are reading. It is the right place to start for custom development, performance work and technical fixes.
Limi Creatives
Our marketing company. Limi Creatives is a creative agency that runs SEO, paid ads, content, social media and video for brands. It is the right place to start when you want help turning audit findings into traffic and enquiries.