SEO and content

Publish my hosted site in Turkish and English with hreflang, per-language sitemaps and llms.txt

Adds an English version of a static site under /en/: per-language URLs, hreflang and x-default, og:locale and schema language per language, a static language switcher, per-language sitemaps and llms.txt. Checks translation pairing and quality with a script and measures every page on two devices.

When to use it

When you want to add an English version to your Turkish site hosted on Opus Growth and have each language show up in the right place in search without competing with the other.

What you get

Paired English pages under /en/, hreflang and x-default, schema and og:locale per language, a static language switcher, per-language sitemaps and llms.txt, a translation check report and scores measured on two devices for every page.

Does it change anything in my account?

Only with your approval. The assistant first shows a preview of every change and waits for your go-ahead.

Works with

SEO Intelligence, Search Console

Fill in before sending

[site address][audience, for example foreign tourists][brand name, product names, place names][Turkish or English]["tr-TR", "en"][Search Console property]
My site [site address] on my Opus Growth server is Turkish only for now. I want you to add an English version and set both languages up so that search engines and AI assistants pair them correctly. The audience for the English version: [audience, for example foreign tourists]. Names that are never translated: [brand name, product names, place names]. The language a visitor from elsewhere sees by default (x-default): [Turkish or English]. 1. Map the current state. Read site_seo_guide, list the pages with site_list_files and note the restore version with site_versions. Propose an English address for every Turkish page and show the mapping table: Turkish stays at the root (/, /hizmetler/), English goes under /en/ (/en/, /en/services/). Write the addresses in English words, lower case, as directories ending in a slash. Do not change the existing Turkish addresses; if one has to change, 301 it with site_redirects. Wait for my approval. 2. Translation. Write every page in English that reads naturally to the audience, translating meaning rather than sentence by sentence. Keep data such as phone numbers, addresses, prices and hours exactly the same and add no new claims. Titles of 50 to 60 characters, descriptions of 140 to 160, unique in each language. Both languages have the same number of sections. Every English page has `<html lang="en">` and answers the question directly in its first paragraph. 3. Configuration. Add a `locales.en` block to assets/site.config.js: prefix "/en/", hreflang "en", ogLocale "en_US", the English business description, the English menu, call to action, footer note and interface text (skip to content, menu, pages, contact). In an `i18n` block, write the root language, the x-default language, the Turkish and English address pairs, the words that are never translated (keepWords) and a term glossary. 4. Write an i18n-stamp.mjs script and put it in the site root. Its jobs: 1. Print absolute `<link rel="alternate" hreflang="tr-TR">`, `hreflang="en"` and `hreflang="x-default"` tags on every page between `<!-- i18n:start -->` and `<!-- i18n:end -->`. 2. Inside the block printed by seo-stamp.mjs, set og:locale to en_US on English pages, add the other language as og:locale:alternate in both languages, set the WebSite node's inLanguage to ["tr-TR", "en"] and replace the business node's description with the English one on English pages. 3. Produce sitemap-tr.xml and sitemap-en.xml with xhtml:link alternates for every address and the file's real modification date as lastmod, and turn sitemap.xml into a sitemapindex pointing to both. 4. Check the translation and exit with a non-zero code on errors: a page without a pair, html lang not matching the folder, a different phone number or long number in the two languages; as warnings, a different number of h2, h3, images or FAQ items in the two languages, Turkish-character words in the English text outside keepWords, and glossary terms not used. Each page's own WebPage node carries that page's language as inLanguage. seo-check.mjs only exempts the root home page from the BreadcrumbList requirement, so add a one-item BreadcrumbList to the /en/ home page. 5. Language switcher. The chrome-stamp.mjs script that prints the menu and footer as static HTML gives pages under /en/ the locales.en menu and interface text, and builds the language switcher from the page's hreflang tags, so every page links to ITS OWN counterpart in the other language, not to the home page. Every language link carries hreflang and lang attributes and a tap target of at least 44 pixels. Do not pick the language by redirecting on the browser language. 6. llms.txt. Write the Turkish /llms.txt at the root and the English version at /en/llms.txt; each gives a short, accurate summary of the site, the list of pages in its own language and the contact details, and links to the other. robots.txt stays open to AI crawlers and points only to the sitemap.xml index. 7. Run order after every edit: `node seo-stamp.mjs`, `node i18n-stamp.mjs`, `node chrome-stamp.mjs`, the Tailwind build, then `node seo-check.mjs`, `node design-check.mjs`, `npx --yes html-validate "**/*.html"`. seo-stamp rewrites its own block every time it runs, so i18n-stamp must ALWAYS run after it. If the site still runs on the Tailwind Play CDN and third-party fonts, move it to compiled CSS and self-hosted fonts first. 8. Measure. core_web_vitals on mobile and desktop for every page in both languages; seo_audit for both versions of the home page. Open the Turkish and English home pages with site_preview at 360, 390, 768 and 1440 pixels wide; English headings are often longer, so look hard for overflow. Criteria: mobile performance at least 95 and the other three scores 100; zero errors from seo-check, i18n-stamp and html-validate. 9. After publishing. Confirm the hreflang tags and the language switcher on the /en/ home page with site_read_url. If my Search Console property is [Search Console property], submit sitemap.xml with gsc_submit_sitemap and check the /en/ home page with gsc_url_inspect. Output: the Turkish and English address mapping table, a score table per page and language, the i18n-stamp check output, the remaining translation warnings and a list of sentences I should review.

Example result

An example of the output this prompt produces. Its structure comes from the tools' real output; numbers and names are fictional.

Example output (on a fictional demo site; the business is fictional, the scores were really measured on this demo)

A fictional guesthouse site, Liman Taş Ev, was set up with Turkish at the root and English under /en/, with English as x-default.

TurkishEnglish
//en/
/odalar//en/rooms/
/konum//en/location/
/iletisim//en/contact/
PageMobileDesktopMobile LCP
/99 / 100 / 100 / 100100 / 100 / 100 / 1002.0 s
/odalar/99 / 100 / 100 / 100100 / 100 / 100 / 1001.9 s
/konum/100 / 100 / 100 / 100100 / 100 / 100 / 1001.5 s
/iletisim/100 / 100 / 100 / 100100 / 100 / 100 / 1001.5 s
/en/99 / 100 / 100 / 100100 / 100 / 100 / 1002.0 s
/en/rooms/99 / 100 / 100 / 100100 / 100 / 100 / 1001.9 s
/en/location/100 / 100 / 100 / 100100 / 100 / 100 / 1001.5 s
/en/contact/100 / 100 / 100 / 100100 / 100 / 100 / 1001.5 s

i18n-stamp output: 8 pages, 2 languages, a sitemap.xml index with sitemap-tr.xml and sitemap-en.xml, 0 errors, 0 warnings. On the first run three English pages raised a Turkish character warning for "Ayvalık", "Türkiye" and "Balıkesir"; they went into keepWords, because place names keep their Turkish spelling in English too.

Gates: seo-check 0 errors and 0 warnings, html-validate 0 errors, design-check 0 errors and 1 warning (no motion, a style choice), no overflow from 360 to 1440 pixels. For your review: the English wording of the cancellation terms, because it is a binding text.

A sample site built with this prompt

Natural/organic: Zodiak + Satoshi, sand background, clay accent, rounded photo cards, room table as the signature element, static

Built for a fictional brand by following this prompt to the letter. Scores were measured with Lighthouse on every page.

Lighthouse scores (lowest page)
MobileDesktop
Performance99100
Accessibility100100
Best practices100100
SEO100100

Checks passed

  • seo check: 0 hata 0 uyarı
  • design check: 0 hata, 1 uyarı (hareket yok, doğal/organik ama statik tarz bilinçli)
  • html validate: 0 hata
  • overflow: 8 sayfa x 360/390/768/1440 taşma yok, konsol hatası yok
  • i18n stamp: 8 sayfa, 2 dil, HATA 0 UYARI 0; sitemap.xml dizini + sitemap-tr.xml + sitemap-en.xml (xhtml:link alternatifleriyle)
  • external requests: 0 dış istek (fontlar, CSS, görseller yerel)
  • tailwind before after: Bu demo baştan derlenmiş CSS ile yayınlandı; CDN karşılaştırması webd-once-sonra demosunda
Screenshots
Publish my hosted site in Turkish and English with hreflang, per-language sitemaps and llms.txt: Mobile
Mobile
Publish my hosted site in Turkish and English with hreflang, per-language sitemaps and llms.txt: Desktop
Desktop

Measured on: 2026-10-11

Related searches

These prompts work best when your AI assistant is connected to your accounts with Opus Growth.

Connect your accounts free

More prompts

SEO and contentChanges after your approval

Restructure a money page answer-first so AI answers can quote it

Pulls the questions the page already gets in Search Console and who AI answers cite, then reorganises the existing content with a direct answer up top, question headings, a comparison table and a page-specific FAQ. Invents nothing, applies after preview and approval, and records a baseline for measurement.

When to use itYour service or product page ranks in Google but is not quoted in AI answers, or its most important information is buried under a long introduction.

Search Console, SEO Intelligence, WordPress
SEO and contentRead-only

Check that AI crawlers see the right language version of your multilingual site

Checks hreflang, canonical and html lang alignment on every language version, the alternates in the sitemap and any automatic redirects based on the visitor's country or browser language. Measures which version Google picks and which language page AI answers cite, without changing anything.

When to use itYour site is published in several languages and one language version does not show up in its own market in Google or AI answers, while a page in another language appears instead.

SEO Intelligence, Search Console
SEO and contentRead-only

Build intent-based keyword clusters from a few seed keywords

A ranked list of keyword clusters with volume, difficulty and the right page type or ad group for each.

When to use itWhen you are starting keyword research for a business and only have a few seed keywords.

Google Ads, SEO Intelligence
SEO and contentChanges after your approval

Turn search terms that convert in ads into organic content clusters

Uses 90 days of converting Google Ads and Microsoft Ads search terms to find topics where you pay for conversions but have weak or no organic visibility. Returns a prioritized content plan and a preview-only list of keyword additions.

When to use itWhen you pay for conversions on search terms but are unsure which topics deserve organic content so you can rely less on ads.

Google Ads, Microsoft Ads, Search Console