Instagram widget in the wrong language? How page language is detected

You add an Instagram feed to an English website, and the Follow button says フォローする. Or you run a Japanese site and the feed header says “Posts” and “Follow.” Both come from the same place: the widget picks its language from your page’s language setting, and falls back to the visitor’s browser when the page does not say. This post explains exactly which words in Social Feed by grip space change with the language, how the language is chosen, how to check your own page in under a minute, and how to fix it, including the simplest fix of all: typing your own Follow button text.

Updated October 12, 2026

The short answer

Social Feed by grip space shows its few built-in words in English or Japanese. When the widget loads, it looks at the lang attribute on your page’s <html> tag. If that value starts with “ja”, the widget uses Japanese. If it is anything else, the widget uses English. If the page has no lang value at all, the widget uses the language of the visitor’s browser instead.

So when the language looks wrong, there are only three likely causes:

  1. Your page has no lang value, so each visitor sees the language of their own browser. A visitor with a Japanese browser sees Japanese on your English site.
  2. Your page has the wrong lang value, for example a theme or template that was built for another language and still says so.
  3. The feed sits inside a frame that a website builder created for embedded code. The widget then reads the language of that frame, not of your page.

The fastest fix for the Follow button is to type the text you want into “Follow button text” in the dashboard. Custom text is shown exactly as you typed it, on every page, whatever the language setting. The rest of this post covers the details and the proper fix for the page itself.

Which words change with the language

Most of what visitors see in the feed is your own content: your photos, your username and your captions. The widget adds only a handful of words, and those are what switch between English and Japanese:

WhereEnglishJapaneseCan you change it?
Post count in the account headerPosts 128投稿 128You can hide the post count
Follow buttonFollowフォローするYes, type your own text
Link at the bottom of the lightboxView on InstagramInstagramで見るNo
Arrow buttons in the slider (read by screen readers)Previous posts / Next posts前の投稿へ / 次の投稿へNo
Arrows for carousel posts in the lightbox (read by screen readers)Previous image / Next image前の画像 / 次の画像No
Close button in the lightbox (read by screen readers)Close閉じるNo
Name of the lightbox for screen readersInstagram post by @yourname@yourname のInstagram投稿No

Several of these are never printed on the screen. They are labels for screen readers and other assistive technology, which is one more reason to get the page language right: a blind visitor using an English screen reader should hear “Close,” not a Japanese word read with English pronunciation.

Some things do not change with the language at all:

  1. Your captions. The widget shows them exactly as you wrote them on Instagram. It does not translate them.
  2. Your username and profile picture. They come straight from your Instagram account.
  3. Like and comment counts. They are numbers with a heart and a speech bubble icon, so they read the same in any language.
  4. The “Powered by Social Feed” credit on the Free plan. It has the same wording on English and Japanese pages. On paid plans you can turn it off.
Only English and Japanese. The widget has text in these two languages only. A page in French, Spanish, German or any other language gets the English text. If your site is in another language, typing your own Follow button text (see below) is the way to get that button in your language. The other labels stay in English.

How the widget decides, step by step

The check happens once, in the visitor’s browser, at the moment the widget’s script runs. It goes like this:

  1. The widget reads the lang attribute of the page’s root element, the <html> tag.
  2. If that attribute is missing or empty, it reads the browser’s preferred language instead. MDN describes this value as “the preferred language of the user, usually the language of the browser UI.”
  3. If the value it found starts with ja (upper or lower case), the text is Japanese. That covers ja, ja-JP and similar.
  4. Anything else, including no value at all, gives English.

Here is how that plays out in practice:

Your pageVisitor’s browserWidget text
<html lang="en">EnglishEnglish
<html lang="en">JapaneseEnglish (the page wins)
<html lang="ja">EnglishJapanese (the page wins)
<html lang="en-US">, "en-GB" and so onAnyEnglish
<html lang="fr"> or another languageAnyEnglish
<html> with no langEnglishEnglish
<html> with no langJapaneseJapanese
<html lang="">JapaneseJapanese (an empty value counts as no value)
<html lang="jp">AnyEnglish (see below)

Two rows deserve a closer look.

No lang at all. This is the most common reason people see “the wrong language,” and the tricky part is that it looks fine to you. Your own browser is set to your language, so you see the feed in your language. A visitor whose browser is set to the other language sees the other one. If someone tells you the feed is in Japanese and you cannot reproduce it, a missing lang value is the first thing to check. MDN notes that when there is no indication of language anywhere, the page language is unknown, and recommends always specifying it.

lang="jp". The lang attribute takes a language tag, and the tag for Japanese is ja. JP is the country code for Japan, used in the second part of tags like ja-JP. A page marked lang="jp" is not marked as Japanese, so the widget uses English. If your Japanese site shows English labels, look for this mistake first.

Check your page in under a minute

You do not need any tools beyond your browser. Use either method on the published page where the feed appears, not in your site builder’s editor:

  1. View the source. Right-click the page and choose View Page Source (the wording varies by browser). The first lines show the <html> tag. Look for lang="…" inside it.
  2. Ask the browser. Open your browser’s developer tools, go to the Console tab, and type the line below. It prints the value the widget sees. An empty result means the page has no language set.
document.documentElement.lang

If the page source shows the right value but the widget still uses the other language, the feed is probably inside a frame. See the section on site builders below.

To see the feed the way a visitor with a different browser language would, you can temporarily change your browser’s language in its settings, or ask a friend abroad to look. You only need to do this when the page has no lang value; once the page sets its language, the visitor’s browser no longer matters.

Fix 1: set the page language

Setting the right language on the page fixes the widget and helps everything else that reads it: screen readers use it for pronunciation, and browsers and translation tools use it to know what language they are looking at. It is also required by WCAG success criterion 3.1.1, “Language of Page.”

Hand-written HTML. Add the lang attribute to the opening <html> tag of every page. Use en (or a regional tag like en-US) for English and ja for Japanese:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    ...

WordPress. Themes normally write the lang attribute with the function language_attributes(). According to the WordPress developer reference, it builds the attribute from get_bloginfo( 'language' ), the site’s language. You choose that language under Settings → General → Site Language. If the setting is right and the page source still shows another value, a plugin may be filtering it (WordPress lets plugins change this output), or the theme may print its own fixed value in header.php. A multilingual plugin should set a different lang on each language version of a page, which the widget then follows.

Squarespace. Squarespace’s help center says that your site’s selected language “appears in your site’s header code,” where search engines and accessibility software read it. You change it in the Site Languages panel by choosing a language from the Site language dropdown and clicking Save. Some sites also show a Localize website toggle, which needs to be on.

Wix. Wix’s help center describes setting your site language under Settings → Language & Region → Site language in the dashboard, or through the Accessibility Wizard in the editor. Wix’s article does not say how this setting appears in the page code. Also note that Wix shows embedded code inside a box of its own (see the next section), so check the result on your live site.

Webflow. Webflow’s help center describes the site’s language code as coming from the primary locale you set in its Localization settings, optionally with a country to form a code like en-US.

Other platforms. Look for a “site language” or “language and region” setting. After changing it, publish, then check the page source as described above to confirm the <html> tag changed. Platform settings do not always do what their names suggest, so the page source is the final word.

Fix 2: type your own Follow button text

In the Social Feed dashboard, open the widget’s “Settings & preview”. Under “Show account info” you will find “Follow button text.” The rule for this field is simple:

  1. If you leave it at the default (or clear it), the button follows the page language: “Follow” on English pages, フォローする on Japanese pages.
  2. If you type anything else, that exact text is shown on every page, in every language, for every visitor. The widget does not translate or change it.

This makes custom text the most reliable fix when you cannot change the page language, or when the feed sits in a frame you have no control over. Type “Follow,” “Follow us,” “See more on Instagram,” “Suivez-nous” or whatever suits your site, save, and the button reads that way everywhere.

There is one side effect to know about. Because typed text is never translated, typing “Follow” means the button says “Follow” even on Japanese pages. On a single-language site that is exactly what you want. On a site with both English and Japanese pages, leave the field at the default so the button switches with each page, or use two widgets, one per language, each with its own text.

The preview follows the dashboard, not your page. The preview in “Settings & preview” uses the language of the dashboard itself and shows the Follow button text exactly as the field contains it. It cannot know the language of the page where you will paste the code. If the preview looks right but the live site does not, the live page’s language is the thing to check.

For more on the button itself (colors, spacing, and where it links), see adding an Instagram Follow button to your website.

Fix 3: reduce the built-in text you do not need

The other labels have no text setting. If you cannot set the page language and the labels bother you, you can reduce how many appear:

  1. Hide the post count. Under “Elements to show”, untick “Post count.” The header then shows your profile picture, your username and the Follow button.
  2. Hide the whole header. Turn off “Show account info” and the feed shows only your posts. The Follow button disappears with it.
  3. Skip the lightbox. Set “On click” to “Open Instagram” (or “Do nothing”). Without the lightbox, “View on Instagram” and the lightbox’s screen reader labels are never used. Read lightbox or link to Instagram? before deciding, since each choice has its own advantages.

These are workarounds. If your page can carry the correct lang value, that is the better fix, because it also helps screen reader users with the rest of your page.

Site builders that put embeds in a frame

The Social Feed widget does not use a frame of its own. Its script draws the feed directly into your page, right where you paste the tag, and reads that page’s language. Some website builders, however, place any embedded code inside a box (an iframe) that they create. An iframe holds a separate document, with its own &lt;html&gt; tag. Whether that inner document carries your site’s language depends on the builder, and builders rarely document it.

If the frame has no language of its own, the widget falls back to the visitor’s browser language, even though your page itself is set correctly. You cannot add a lang attribute to a frame that the builder generates, so in this case:

  1. Type your own Follow button text (Fix 2). This always works, frame or not.
  2. Use the options in Fix 3 if the remaining labels matter to you.
  3. If your platform also offers a way to add code directly to the page rather than through an embed box, use that instead. Our guide to where to place the widget script explains what difference the location makes.

Our guides for Wix and Google Sites cover the other effects of a frame, such as a fixed height.

Bilingual and multilingual sites

If your site has an English version and a Japanese version, you usually do not need anything special. Paste the same embed code on both versions. As long as each version marks its own language on the &lt;html&gt; tag, which multilingual plugins and builders normally do, the widget shows English labels on the English pages and Japanese labels on the Japanese pages, and leaving the Follow button text at the default lets the button switch too.

Your captions are the same on both versions, because they come from your Instagram posts as written. If you post in both languages, the caption keyword filter can help: one widget could show only posts that contain a certain word or hashtag in the caption, and another could exclude them. See filtering your Instagram feed by keyword for how the filter works. Each widget counts toward your plan’s widget limit: one on the Free plan, three on the Light plan, unlimited on the Standard plan. More on that in using multiple Instagram feeds on one website.

One thing that does not work: changing the page language with a script after the page has loaded. The widget checks the language once, when its script runs. If a language switcher rewrites the lang attribute later without reloading the page, the widget keeps the language it started with until the page is loaded again.

Troubleshooting checklist

What you seeLikely causeWhat to do
Japanese text on an English site, only for some visitorsNo lang on the page; those visitors use a Japanese browserSet lang="en" on the page (Fix 1)
English text on a Japanese sitelang is missing, set to English, or written as "jp"Set lang="ja"; check for "jp"
Page source shows the right lang, widget still wrongThe feed is inside a frame created by your builderType your own Follow text; see the frame section
Follow button says “Follow” on Japanese pagesThe text field contains “Follow,” which is shown as typedReset the field to the default, or type the Japanese text
Preview and live site differThe preview uses the dashboard’s languageJudge by the live page; check its lang
Language does not change after using a language switcherThe switcher changes lang without reloadingReload the page, or use separate URLs per language
Your French or Spanish page shows English labelsThe widget only has English and Japanese textType your own Follow text in your language
The language is right but the feed does not appear at allA different problemInstagram feed not showing

Frequently asked questions

Can I choose the widget language in the dashboard?
There is no language switch for the widget. It follows the page, then the visitor’s browser. The one piece of text you can set yourself is the Follow button, which then appears exactly as typed.

Will the widget translate my captions?
No. Captions are shown as you wrote them on Instagram. If visitors use their browser’s translation feature, that works on the page as a whole and is outside the widget’s control.

Does the widget remember a visitor’s language?
No. It does not set cookies or use local storage. It decides each time the page loads, from the page and the browser.

Does my dashboard language affect the widget?
Only in the preview. The live widget on your site does not know or care which language you use in the dashboard.

Is setting lang on the page worth it if I just type my own button text?
Yes. Typing your own text fixes the visible button, but screen readers still rely on the page language for everything on your site, including the widget’s screen reader labels. Setting it correctly is a small change with a real benefit. See accessible social media embeds for more.

Does the language setting change anything for search engines?
The widget’s few words are a tiny part of your page either way. For how a feed relates to search in general, see does an Instagram feed help SEO?

New to Social Feed by grip space? Sign up free with your email address, connect your Instagram professional account and paste one embed code. Compare what each plan includes on the pricing section.

Sources

  1. MDN Web Docs, “lang” global attribute: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/lang
  2. MDN Web Docs, “Navigator: language property”: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language
  3. WordPress.org Documentation, “Settings General screen”: https://wordpress.org/documentation/article/settings-general-screen/
  4. WordPress Developer Resources, “language_attributes()”: https://developer.wordpress.org/reference/functions/language_attributes/
  5. WordPress Developer Resources, “get_language_attributes()”: https://developer.wordpress.org/reference/functions/get_language_attributes/
  6. Squarespace Help Center, “Changing your account and site language”: https://support.squarespace.com/hc/en-us/articles/360000177507-Changing-your-account-and-site-language
  7. Wix Help Center, “Accessibility: Setting and Managing Your Site’s Language”: https://support.wix.com/en/article/wix-editor-accessibility-setting-your-sites-language
  8. Webflow Help Center, “Set your site’s language code”: https://help.webflow.com/hc/en-us/articles/33961361019411

Get your embed code in a few minutes. The Free plan needs no credit card.

Sign up free