🌍 What Are Translated Results? #
- When users search in their own language, Google may:
- Translate the title link + snippet of results written in another language.
- Offer a machine-translated version of the page when clicked.
- Translate the title link + snippet of results written in another language.
- Example: Someone searches in Hindi → Your English blog appears with a Hindi title + snippet.
📍 Availability #
- Works for many Indian languages (Hindi, Gujarati, Bengali, Tamil, Telugu, Kannada, Malayalam, Marathi) + global languages.
- Available on mobile & desktop.
⚙ How It Works #
- Clicking the translated result = Google Translate overlay of your original page.
- Full page loads (JavaScript, images, and features work normally).
- Users can switch back to the original page anytime.
📊 Tracking in Search Console #
- You can see traffic from translated results in Performance → Search Appearance → Translated results filter.
✅ FSIDM Action Plan #
- Good News: No setup required. If your site ranks in another language query, translation happens automatically.
To Opt Out: Add
<meta name=”googlebot” content=”notranslate”>
- (Not recommended for FSIDM because translations can expand reach in Hindi, Gujarati, Marathi, etc.)
Enabling your ad network to work with translation-related Google Search features #
🛠️ Why This Matters #
When users click a translated search result, Google serves a translated page from a Google Translate proxy URL like:
https://example-com.translate.goog/…
This URL rewrites the original URL and can break ad networks or scripts that rely on the original domain/URL for targeting or attribution.
🔑 What You Need to Do #
1. Decode the translated proxy URL back to the original hostname #
You need to extract and reconstruct the original domain from the Google Translate URL so your ads continue to work correctly.
2. Rebuild the original URL from the proxy URL #
- Replace the hostname with the decoded original domain.
- Remove Google Translate-specific query parameters (like _x_tr_enc, _x_tr_hp).
- Keep the rest of the URL path, query string, and fragments intact.
🧑💻 Sample JavaScript to Decode Hostname #
function decodeHostname(proxyUrl) {
const parsedProxyUrl = new URL(proxyUrl);
const fullHost = parsedProxyUrl.hostname;
// 1. Remove “.translate.goog”
let domainPrefix = fullHost.substring(0, fullHost.indexOf(‘.’));
// 2. Get encoding list from _x_tr_enc param
const encodingList = parsedProxyUrl.searchParams.has(‘_x_tr_enc’) ?
parsedProxyUrl.searchParams.get(‘_x_tr_enc’).split(‘,’) : [];
// 3. Prepend _x_tr_hp if exists
if (parsedProxyUrl.searchParams.has(‘_x_tr_hp’)) {
domainPrefix = parsedProxyUrl.searchParams.get(‘_x_tr_hp’) + domainPrefix;
}
// 4. Remove ‘1-‘ prefix if encodingList includes ‘1’
if (encodingList.includes(‘1’) && domainPrefix.startsWith(‘1-‘)) {
domainPrefix = domainPrefix.substring(2);
}
// 5. Remove ‘0-‘ prefix if encodingList includes ‘0’ and set isIdn flag
let isIdn = false;
if (encodingList.includes(‘0’) && domainPrefix.startsWith(‘0-‘)) {
isIdn = true;
domainPrefix = domainPrefix.substring(2);
}
// 6. Replace word-boundary hyphens with dots
let decodedSegment = domainPrefix.replaceAll(/\b-\b/g, ‘.’).replaceAll(‘–‘, ‘-‘);
// 7. Add punycode prefix for IDN if needed
if (isIdn) {
decodedSegment = ‘xn--‘ + decodedSegment;
}
return decodedSegment;
}
🧪 Testing Example #
Proxy URL | Decoded Hostname |
https://example-com.translate.goog | example.com |
https://foo-example-com.translate.goog | foo.example.com |
https://0-57hw060o-com.translate.goog/?_x_tr_enc=0 | xn--57hw060o.com (IDN) |
https://1-en–us-example-com/?_x_tr_enc=1 | en-us.example.com |
https://lanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch-co-uk.translate.goog/?_x_tr_hp=l | llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.co.uk |
🚀 Summary for Ad Networks & Publishers #
- Decode the Google Translate hostname using the above approach to get the original domain.
- Use this to rewrite URLs or attribution info in your ads/scripts so they work correctly on translated pages.
- Remove Google Translate-specific query parameters to avoid conflicts.
- Test thoroughly with various translated URLs.