The short answer
Give each language version its own URL. Do not swap the language with a cookie, a browser setting, or an IP check. Translate the whole page, both the main content and the navigation, and use one language on that URL. Link the versions to each other with hreflang so each version lists itself and the others. Let people switch with a visible link instead of an automatic redirect, and set the html lang attribute so assistive technology can tell the page's language. Publish a language version for an office only when that office can serve patients in that language, with staff, a phone line, and forms, and say so in plain words on the page.
This guide is for a marketing lead at a dental group of about 3 to 50 or more offices. Some offices serve patients who prefer to read in Spanish, or in another language. The group wants translated office pages, service pages, or ads, and it does not want a pile of duplicate or thin pages. The Oak Park office and the Pine Hill office in the examples are placeholders. This is marketing and web guidance. It is not legal, compliance, or translation-certification advice. The map of the other group jobs is marketing a multi-location practice or DSO.
Three ways to publish a language version
None of these three is the right setup for every group. Read the row against the offices that can actually serve patients in that language. The sources for each cell are listed later on this guide.
URL pattern
One URL. A cookie, a browser setting, or an IP check swaps the language.
What Google's pages say. Google's managing multi-regional sites page recommends different URLs for each language version rather than cookies or browser settings. The same page says not to use IP analysis to adapt content, because that analysis is difficult and Google may not crawl the variations. The locale-adaptive page says Googlebot's default IP addresses appear to be in the USA and that requests do not set Accept-Language, so a page that changes by locale may not have every version crawled.
Upkeep for a group. One URL to edit. There is no separate address for the other language, so a reviewer cannot open that version the way a patient would from a link.
Risk. Google uses the visible content of the URL it fetched. A language that appears only after a cookie, a browser setting, or an IP check can stay unseen. A visitor can also land in a language they did not choose.
URL pattern
A language subfolder on the group domain, such as /es/ plus the office slug.
What Google's pages say. Different URLs are the pattern the managing page recommends. That page lists subdirectories on a generic domain, with example.com/de/ as the example: easy to set up and low maintenance on the same host, and harder to separate the sites. The localized versions page says each URL must list itself and the other versions with hreflang, and that those URLs must be fully qualified.
Upkeep for a group. One domain. One hreflang method for the group, either head tags or a sitemap. A reviewer for every language that office actually offers.
Risk. A language folder for an office that cannot serve patients in that language, or a folder that translates only the header and footer. Both leave a thin page under a real office name.
URL pattern
A separate site for the language version.
What Google's pages say. The localized versions page says alternate URLs do not have to be on the same domain. The managing page lists a country-specific domain as a structure that takes more infrastructure.
Upkeep for a group. Each site still needs the same hreflang pairs, the same visible switch, and the same review before publish. The domain choice itself is the one-domain guide.
Risk. The pages drift apart, or the hreflang points only one way. The localized versions page says that if two pages do not point at each other, the tags are ignored.
| URL pattern | What Google's pages say | Upkeep for a group | Risk |
|---|---|---|---|
| One URL. A cookie, a browser setting, or an IP check swaps the language. | Google's managing multi-regional sites page recommends different URLs for each language version rather than cookies or browser settings. The same page says not to use IP analysis to adapt content, because that analysis is difficult and Google may not crawl the variations. The locale-adaptive page says Googlebot's default IP addresses appear to be in the USA and that requests do not set Accept-Language, so a page that changes by locale may not have every version crawled. | One URL to edit. There is no separate address for the other language, so a reviewer cannot open that version the way a patient would from a link. | Google uses the visible content of the URL it fetched. A language that appears only after a cookie, a browser setting, or an IP check can stay unseen. A visitor can also land in a language they did not choose. |
| A language subfolder on the group domain, such as /es/ plus the office slug. | Different URLs are the pattern the managing page recommends. That page lists subdirectories on a generic domain, with example.com/de/ as the example: easy to set up and low maintenance on the same host, and harder to separate the sites. The localized versions page says each URL must list itself and the other versions with hreflang, and that those URLs must be fully qualified. | One domain. One hreflang method for the group, either head tags or a sitemap. A reviewer for every language that office actually offers. | A language folder for an office that cannot serve patients in that language, or a folder that translates only the header and footer. Both leave a thin page under a real office name. |
| A separate site for the language version. | The localized versions page says alternate URLs do not have to be on the same domain. The managing page lists a country-specific domain as a structure that takes more infrastructure. | Each site still needs the same hreflang pairs, the same visible switch, and the same review before publish. The domain choice itself is the one-domain guide. | The pages drift apart, or the hreflang points only one way. The localized versions page says that if two pages do not point at each other, the tags are ignored. |
A single URL with a cookie, browser, or IP switch fits a group that is not publishing a second language page, and that accepts Google will read the one language it can see. A language subfolder fits a group that already keeps its offices on one domain and wants the other language beside the English office page. Separate sites fit when that language already lives on its own site, or the group has already chosen separate office sites. Whether the group uses one domain, separate office sites, or a hybrid is in one domain or separate office sites.
What Google's pages say
Managing multi-regional and multilingual sites recommends different URLs for each language version of a page rather than cookies or browser settings. If you use different URLs, that page says to use hreflang annotations so Google Search results can link to the matching language version. It also says Google uses the visible content to determine the language, and that it does not use code-level language information such as lang attributes, or the URL. Use a single language for the content and the navigation on each page, and avoid side-by-side translations. Translating only the boilerplate, while the bulk stays in one language, can create a bad experience if the same content shows up more than once with different boilerplate. If you have more than one version, avoid automatically redirecting users based on what you think their language is.
Those redirects can prevent users and search engines from seeing every version. Add links so a person can click the other language. The same page says not to use IP analysis to adapt content. IP location analysis is difficult and generally not reliable, and Google may not be able to crawl the variations. Most, but not all, Google crawls originate from the US, and the page says Google does not attempt to vary the location to detect site variations.
Localized versions of your pages says Google does not use hreflang or the HTML lang attribute to detect the language of a page. It uses algorithms. hreflang tells Google that the pages are localized variations of the same content. Each language version must list itself as well as all other language versions. Alternate URLs must be fully qualified, including https, such as https://example.com/foo, not a protocol-relative or path-only URL. If two pages do not both point to each other, the tags are ignored, so a site cannot name itself as an alternate of someone else's page. If a full set of links in every direction is hard to maintain, you can omit some languages on some pages, and Google will still process the ones that point to each other.
Newly expanded language pages should still link both ways to the original language. The language code is ISO 639-1. An optional second code is the region in ISO 3166-1 Alpha 2, as in the page's en-US example. The same shape is es or es-US. A region alone is not valid. Codes outside those lists, such as es-419, are not supported. For languages you do not list, the page says to consider a fallback, especially on a language selector or an auto-redirecting home page, and to use x-default. This guide's practice is the visible switch, not an automatic redirect, so x-default can point at the language the group treats as the fallback or at a page where the visitor picks a language. HTML tags, HTTP headers, and a sitemap are equivalent from Google's perspective. Pick one.
Using all three does not help in Search, and it is harder to keep correct.
How Google crawls locale-adaptive pages describes pages that return different content based on the perceived country or preferred language of the visitor. Google might not crawl, index, or rank all of that content. The default IP addresses of the Googlebot crawler appear to be based in the USA, and the crawler sends requests without setting Accept-Language. The page recommends separate locale URLs annotated with rel="alternate" hreflang. It also says Googlebot crawls with IP addresses outside the USA in addition to the US-based addresses. A separate URL does not depend on which of those addresses fetches the page.
What is URL canonicalization says different language versions of a single page are duplicates only if the primary content is in the same language. That is the case when only the header, footer, and other non-critical text is translated and the body remains the same. A page whose body is actually in Spanish is not that duplicate of the English page. The canonical URL term is already in the glossary. Do not point a fully translated page at the English URL as if the body were the same text.
Spam policies describe scaled content abuse as many pages generated for the primary purpose of manipulating search rankings and not helping users. The examples include scraping or other automated transformations such as synonymizing, translating, or other obfuscation, where little value is provided to users. Use that line as a warning against a bulk set of machine-translated office pages that nobody reviews. A translation tool can produce a draft. A person who reads the language still has to check the page before it is published. The policy does not say machine translation itself is banned.
The sample below is text in a code block. It is not a link element in the head of this page. Replace every example.com address before you use the pattern. The Spanish page repeats the same three links, including a link to itself.
<!-- Text sample only. These are not link elements on this guide. -->
<!-- English page: https://example.com/locations/oak-park -->
<link rel="alternate" hreflang="en" href="https://example.com/locations/oak-park" />
<link rel="alternate" hreflang="es" href="https://example.com/es/locations/oak-park" />
<link rel="alternate" hreflang="x-default" href="https://example.com/locations/oak-park" />
<!-- Spanish page repeats the same three links, including itself. -->
<link rel="alternate" hreflang="en" href="https://example.com/locations/oak-park" />
<link rel="alternate" hreflang="es" href="https://example.com/es/locations/oak-park" />
<link rel="alternate" hreflang="x-default" href="https://example.com/locations/oak-park" />
<!-- Switch on the English page. The Spanish words sit on their own element. -->
<a title="Spanish" href="https://example.com/es/locations/oak-park"><span lang="es">Español</span></a> The html lang attribute
Declaring language in HTML says to always use a language attribute on the html tag to declare the default language of the text in the page. Other elements inherit it. Use the html element, not the body element, because the body element does not cover text in the document head. When a phrase is in another language, the page's example puts the language on that phrase. A link whose title is the English word "Spanish" and whose visible word is Español keeps the link in the page language and marks the Spanish word:
<a title="Spanish" href="https://example.com/es/locations/oak-park"><span lang="es">Español</span></a> Understanding Success Criterion 3.1.1, Language of Page, says the default human language of each web page can be programmatically determined. The explanation says people using assistive technology get information in the correct language, and that media players can show captions correctly. Understanding Success Criterion 3.1.2, Language of Parts, says the human language of each passage or phrase can be programmatically determined, except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the surrounding language. A switch link whose visible word is in Spanish is that kind of phrase. Screen readers and captions use the language you declare. These W3C pages are explanations of the criteria.
The office page and the profile name
The language line belongs on the office page, in that office's own words, and only for a language the office can serve. A plain sentence is enough: this office can take calls and appointments in Spanish. The Pine Hill office does not get a Spanish URL if nobody there can take that call, even when Oak Park can. What belongs on an office page besides the language is in location pages for a multi-office site.
Guidelines for representing your business on Google say the Business Profile name should reflect the business's real-world name, as used on the storefront, the website, stationery, and as known to customers. The name must not include marketing taglines. The page's example of a tagline is a slogan after the business name. A language line, such as Se habla español, is not the office's name. Keep it on the office page and in the office's own copy. Do not add it to the profile name.
Local business structured data says to define each location as a LocalBusiness type and to use the most specific subtype. Address is required. The page calls it the physical location of the business. Name is also required. A dental office page on this site uses Dentist, which is a LocalBusiness subtype. NAP consistency still applies across language versions: the address and the phone are not translated. Street names, city names, and the digits of the phone stay as they are. Only the labels change, such as the word for "phone" or "address."
availableLanguage on schema.org is a language someone may use with or at the item, service, or place. It is used on ContactPoint, among other types, and the property page says to use an IETF BCP 47 code. inLanguage is the language of the content, performance, or action, and it uses the same kind of code. The sample below is text in a code block. It is not JSON-LD on this guide. Do not publish the placeholder values.Do not add a Person block, and do not add a language property on a staff member.
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Example Dental Group Oak Park",
"url": "https://example.com/locations/oak-park",
"inLanguage": "en",
"telephone": "+1-000-000-0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example St",
"addressLocality": "Example City",
"addressRegion": "EX",
"postalCode": "00000",
"addressCountry": "US"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-000-000-0000",
"contactType": "customer service",
"availableLanguage": ["en", "es"]
}
} Ads in more than one language
About language targeting says that starting in September 2026, language targeting changes for Search campaigns and for the Search Network portion of Performance Max campaigns. For Search campaigns, the campaign-level language targeting setting will be removed, and Search ads will automatically match based on the language of the ads. For Performance Max, the campaign-level language setting will no longer apply to ads on the Google Search Network. Those Search Network ads function like the Search campaigns just described. The page says the language settings you select will still apply to other Performance Max channels, such as YouTube, Display, Discover, and Gmail, and that Shopping ads within Performance Max are not affected by language settings.
On the Search Network, the page says Google Ads uses the search term language, the user's language settings, and preferences to understand which language the user knows, and attempts to serve an ad in a language the user understands. The page says no action is required of advertisers for the September 2026 change. That sentence is Google's. It is not a reason to skip the checks below.
Choose your location and language settings says multilingual users may find ads in a different language than they search if Google is confident the user understands the language of the ad. The page's example is a person who understands English, searches with a Spanish query, and can be shown an English ad.
Our practice, not a Google rule: write each ad in the same language as its landing page, keep languages in separate ad groups, and review search terms per office. An English ad for the Oak Park office lands on the English Oak Park page. A Spanish ad lands on the Spanish Oak Park URL, and only if that URL is published because the office can serve patients who prefer Spanish. No budget, bid, or radius is set on this page.
Order of work
One language sheet per office, then the translation, then the links. Google does not publish this form. The fields are the group's. There is no timeline on this list.
- Write the sheet: office slug, languages the office actually offers, who answers the phone in that language, forms the office already has in that language, the translated page URLs, the reviewer, and the last reviewed date.
- Have a person who reads the language check every page before it is published. A draft can come from a translation tool. The reviewer is the gate.
- Translate the full main content and the navigation. One language on the page. Do not leave the body in English and translate only the chrome.
- Keep the name, address, and phone identical across versions. Do not translate the street, the city, or the phone number. Change only the labels.
- Add hreflang pairs for every published pair. Each URL lists itself and the others. The links point both ways.
- Put those pairs in a sitemap or in the head. Pick one method and use it for the whole group.
- Put a visible language switch on each version. Do not redirect the visitor because of the browser language.
If the Oak Park sheet says the office offers Spanish, and a named reviewer has checked the page, the Spanish URL can go live. If the Pine Hill sheet says the office does not offer Spanish, stop. Do not publish the URL to make the group look consistent.
Language version pair checker
This is marketing and web guidance. It is not legal, compliance, or translation-certification advice.
Who owns which edit
Accounts stay with the group. A vendor can have a seat. The vendor is not the owner of record. Language-version URLs belong on the per-office marketing report, under the office slug that report already uses.
| Role | What they change | What you can open |
|---|---|---|
| Operations lead | Which offices offer which languages. The sheet records staff who can serve patients in that language, who answers the phone, and which forms the office already has. | One language sheet per office. The group can open it without a vendor. |
| Web team | The URLs, the hreflang pairs, the html lang attribute, and the visible switch link on each version. | Each published URL opens, lists itself and the other versions, and shows the switch. The html element carries that page's language. |
| Translator and reviewer | Whether the page says what the office means. A person who reads the language checks the page before it is published. | The reviewer field and the last reviewed date are filled in on the sheet. A page with no reviewer stays unpublished. |
| Paid search owner | Ads for that office, written in the same language as the landing page, with languages kept in separate ad groups. | The ad and the final URL are the same language. The account stays with the group. |
| Reporting owner | Each language-version URL on the per-office report, under that office's slug. | The report lists the English URL and any published language URL. It does not invent a row for a language the office does not offer. |
Questions for an agency
Ask these in a proposal or a handoff. They are procurement questions. They are not legal advice, and they do not rank firms.
| Question | A useful answer names | Ask a follow-up if you hear |
|---|---|---|
| 1. Which offices offer which languages, and where is the sheet? | One language sheet per office: slug, languages actually offered, who answers the phone in that language, forms the office already has, translated URLs, reviewer, and last reviewed date. The group can open the sheet. | A plan that publishes Spanish for every office because the template can, or a sheet only the firm can open. |
| 2. Does each language version have its own URL? | Yes. The English office page and the Spanish office page are different https URLs. The language does not depend on a cookie, a browser setting, or an IP check. Visitors switch with a visible link. Nobody is redirected because of the browser language. | One URL that swaps the words after the page loads, or an automatic redirect based on the browser. |
| 3. Who reads the page before it is published? | A person who reads that language. The check covers the main content and the navigation, not only the header and footer. The address and phone stay the same as the other version. Only the labels change. | Machine-translated pages go live with no reviewer, or only the template chrome is translated. |
| 4. How is hreflang written? | Each version lists itself and the other published versions. The links point both ways. URLs are fully qualified, with https. Codes are a language, such as es, or a language plus a region, such as es-US. The group uses one method and keeps it. | The tags do not include the page itself, they point only one way, or the code is a region alone or es-419. |
| 5. Where does a language line go? | On the office page, in the office's own words, for a language that office can actually serve. The Business Profile name stays the real-world name. It does not pick up a language line or a tagline. | The profile name carries a language line, or a language page exists for an office that cannot serve patients in that language. |
| 6. Do the ads match the landing page? | Each ad is in the same language as its landing page. Languages sit in separate ad groups. Search terms are reviewed per office. The ad account stays with the group. | An ad in one language sends people to a page in another, or the firm holds the only login. |
Red flags
These are checks on a plan. They do not name or rank any firm.
-
1. One URL swaps the language with a cookie or an IP check.
The managing multi-regional sites page recommends different URLs rather than cookies or browser settings, and it says not to use IP analysis to adapt content. The locale-adaptive page says a page that changes by locale may not have every version crawled.
-
2. Visitors are redirected by browser language.
The same managing page says to avoid automatically redirecting users based on what you think their language is. Those redirects can keep people, and crawlers, from the other versions. A visible link is the switch.
-
3. Machine-translated office pages are published with no reviewer.
Google's spam policies describe scaled content abuse as many pages generated mainly to manipulate search rankings rather than to help users. The examples include automated transformations such as translating, where little value is provided. A draft from a translation tool can still be reviewed. Publishing a stack of office pages that nobody who reads the language has checked is the pattern to avoid. The policies do not say that machine translation itself is banned.
-
4. Only the header and footer are translated.
The managing page says translating only the boilerplate, while the bulk stays in one language, can create a bad experience when the same content appears with different boilerplate. The canonicalization page says different language versions are duplicates only when the primary content is in the same language, which is the case when only the header, footer, and other non-critical text is translated and the body stays the same.
-
5. hreflang does not list the page itself, or it points only one way.
The localized versions page says each language version must list itself as well as all other language versions. If two pages do not both point to each other, the tags are ignored.
-
6. The code is a region alone, or it is es-419.
The localized versions page says the first code is the language in ISO 639-1, with an optional region in ISO 3166-1 Alpha 2. Specifying the region alone is not valid. Codes that are not in those lists, such as es-419, are not supported.
-
7. A language line is in the Business Profile name.
The representation guidelines say the name should reflect the business's real-world name, and that the name must not include marketing taglines. A language line belongs on the office page, not in the profile name.
-
8. A language page exists for an office that cannot serve patients in that language.
The page would offer a visit the office cannot provide. Publish a language version only when that office has the staff, the phone line, and the forms to serve patients who prefer that language, and say so in plain words on the page.
-
9. An ad in one language points at a page in another.
Our practice is to write each ad in the same language as its landing page, keep languages in separate ad groups, and review search terms per office. That is our rule for the group. It is not a claim about how an ad will perform.
Checklist
Twelve checks before you treat a language version as ready. Ticks stay in this browser only.
Language version checklist
12 items
What DDS Web Solutions builds
DDS Web Solutions builds practice websites. Our team has been building websites since 2014, and we have served 100+ practices. The offices are in Sacramento and San Mateo. Smyly, SmileTrak, and ToothRank are the products. The planning page is DSO and multi-location marketing. A scorecard for hiring a firm is how to choose a DSO dental marketing company.
Sources
Wording on these pages can change, so confirm the live page. This is marketing guidance, not legal advice.
- Google Search Central: Managing multi-regional and multilingual sites
- Google Search Central: Localized versions of your pages
- Google Search Central: How Google crawls locale-adaptive pages
- Google Search Central: What is URL canonicalization
- Google Search Central: Spam policies for Google web search
- Google Search Central: Local business structured data
- Google Business Profile Help: Guidelines for representing your business on Google
- Google Ads Help: About language targeting
- Google Ads Help: Choose your location and language settings
- W3C Internationalization: Declaring language in HTML
- W3C WAI: Understanding SC 3.1.1, Language of Page
- W3C WAI: Understanding SC 3.1.2, Language of Parts
- schema.org: availableLanguage
- schema.org: inLanguage