Vor dem Senden ausfüllen
[site address][audience, for example foreign tourists][brand name, product names, place names][Turkish or English]["tr-TR", "en"][Search Console property]
Meine Website [site address] auf meinem Opus Growth Server ist bisher nur auf Türkisch. Ich möchte, dass du eine englische Version ergänzt und beide Sprachen so einrichtest, dass Suchmaschinen und KI-Assistenten sie korrekt einander zuordnen. Zielgruppe der englischen Version: [audience, for example foreign tourists]. Namen, die nie übersetzt werden: [brand name, product names, place names]. Die Sprache, die Besucher von anderswo standardmäßig sehen (x-default): [Turkish or English].
1. Ist-Zustand erfassen. Lies site_seo_guide, liste die Seiten mit site_list_files auf und notiere die Wiederherstellungsversion mit site_versions. Schlage für jede türkische Seite eine englische Adresse vor und zeige die Zuordnungstabelle: Türkisch bleibt im Stammverzeichnis (/, /hizmetler/), Englisch liegt unter /en/ (/en/, /en/services/). Schreibe die Adressen in englischen Wörtern, kleingeschrieben, als Verzeichnisse mit abschließendem Schrägstrich. Ändere die bestehenden türkischen Adressen nicht; falls eine geändert werden muss, leite sie per 301 mit site_redirects um. Warte auf meine Freigabe.
2. Übersetzung. Schreibe jede Seite auf Englisch so, dass sie für die Zielgruppe natürlich klingt, übersetze den Sinn, nicht Satz für Satz. Behalte Daten wie Telefonnummern, Adressen, Preise und Öffnungszeiten exakt bei und füge keine neuen Behauptungen hinzu. Titel mit 50 bis 60 Zeichen, Beschreibungen mit 140 bis 160 Zeichen, in jeder Sprache einzigartig. Beide Sprachen haben dieselbe Anzahl an Abschnitten. Jede englische Seite hat `<html lang="en">` und beantwortet die Frage direkt im ersten Absatz.
3. Konfiguration. Füge in assets/site.config.js einen Block `locales.en` hinzu: Präfix "/en/", hreflang "en", ogLocale "en_US", die englische Unternehmensbeschreibung, das englische Menü, den Call-to-Action, den Footer-Hinweis und die Oberflächentexte (skip to content, menu, pages, contact). Trage in einem `i18n`-Block die Stammsprache, die x-default-Sprache, die türkisch-englischen Adresspaare, die nie übersetzten Wörter (keepWords) und ein Fachbegriff-Glossar ein.
4. Schreibe ein Skript i18n-stamp.mjs und lege es im Stammverzeichnis der Website ab. Seine Aufgaben:
1. Auf jeder Seite zwischen `<!-- i18n:start -->` und `<!-- i18n:end -->` absolute Tags `<link rel="alternate" hreflang="tr-TR">`, `hreflang="en"` und `hreflang="x-default"` ausgeben.
2. Innerhalb des von seo-stamp.mjs ausgegebenen Blocks auf englischen Seiten og:locale auf en_US setzen, in beiden Sprachen die jeweils andere Sprache als og:locale:alternate ergänzen, inLanguage des WebSite-Knotens auf ["tr-TR", "en"] setzen und auf englischen Seiten die description des Unternehmensknotens durch die englische ersetzen.
3. sitemap-tr.xml und sitemap-en.xml mit xhtml:link-Alternates für jede Adresse und dem tatsächlichen Änderungsdatum der Datei als lastmod erzeugen und sitemap.xml in einen Sitemapindex umwandeln, der auf beide verweist.
4. Die Übersetzung prüfen und bei Fehlern mit einem Exit-Code ungleich null beenden: eine Seite ohne Gegenstück, html lang passt nicht zum Ordner, eine unterschiedliche Telefon- oder lange Nummer in den beiden Sprachen; als Warnungen eine unterschiedliche Anzahl an h2, h3, Bildern oder FAQ-Einträgen in den beiden Sprachen, Wörter mit türkischen Sonderzeichen im englischen Text außerhalb von keepWords und nicht verwendete Glossarbegriffe.
Der WebPage-Knoten jeder Seite trägt deren eigene Sprache als inLanguage. seo-check.mjs nimmt nur die Startseite im Stammverzeichnis von der BreadcrumbList-Pflicht aus, ergänze daher auf der /en/-Startseite eine BreadcrumbList mit einem Element.
5. Sprachumschalter. Das Skript chrome-stamp.mjs, das Menü und Footer als statisches HTML ausgibt, gibt Seiten unter /en/ das Menü und die Oberflächentexte aus locales.en und baut den Sprachumschalter aus den hreflang-Tags der Seite, sodass jede Seite auf IHR eigenes Gegenstück in der anderen Sprache verlinkt und nicht auf die Startseite. Jeder Sprachlink trägt die Attribute hreflang und lang und eine Tippfläche von mindestens 44 Pixeln. Wähle die Sprache nicht per Weiterleitung anhand der Browsersprache.
6. llms.txt. Schreibe die türkische /llms.txt im Stammverzeichnis und die englische Version unter /en/llms.txt; jede enthält eine kurze, genaue Zusammenfassung der Website, die Seitenliste in der eigenen Sprache und die Kontaktdaten und verlinkt auf die jeweils andere. robots.txt bleibt offen für KI-Crawler und verweist nur auf den Index sitemap.xml.
7. Ausführungsreihenfolge nach jeder Änderung: `node seo-stamp.mjs`, `node i18n-stamp.mjs`, `node chrome-stamp.mjs`, der Tailwind-Build, dann `node seo-check.mjs`, `node design-check.mjs`, `npx --yes html-validate "**/*.html"`. seo-stamp überschreibt bei jedem Lauf seinen eigenen Block, daher muss i18n-stamp IMMER danach laufen. Falls die Website noch über das Tailwind Play CDN und Schriften von Drittanbietern läuft, stelle sie zuerst auf kompiliertes CSS und selbst gehostete Schriften um.
8. Messen. core_web_vitals auf Mobil und Desktop für jede Seite in beiden Sprachen; seo_audit für beide Versionen der Startseite. Öffne die türkische und die englische Startseite mit site_preview bei 360, 390, 768 und 1440 Pixel Breite; englische Überschriften sind oft länger, achte daher genau auf Überläufe. Kriterien: mobile Performance mindestens 95 und die anderen drei Werte 100; null Fehler bei seo-check, i18n-stamp und html-validate.
9. Nach der Veröffentlichung. Bestätige die hreflang-Tags und den Sprachumschalter auf der /en/-Startseite mit site_read_url. Falls meine Search-Console-Property [Search Console property] ist, reiche sitemap.xml mit gsc_submit_sitemap ein und prüfe die /en/-Startseite mit gsc_url_inspect.
Ausgabe: die Zuordnungstabelle der türkischen und englischen Adressen, eine Tabelle der Werte pro Seite und Sprache, die Ausgabe der i18n-stamp-Prüfung, die verbleibenden Übersetzungswarnungen und eine Liste der Sätze, die ich prüfen sollte.
Beispielergebnis
Ein Beispiel für die Ausgabe dieses Prompts. Die Struktur stammt aus der echten Ausgabe der Tools, Zahlen und Namen sind fiktiv.
Beispielausgabe (auf einer fiktiven Demo-Seite; das Unternehmen ist fiktiv, die Werte wurden auf dieser Demo tatsächlich gemessen)
Für eine fiktive Pension, Liman Taş Ev, wurde die Website mit Türkisch im Root und Englisch unter /en/ aufgesetzt, wobei Englisch als x-default dient.
| Türkisch | Englisch |
|---|
| / | /en/ |
| /odalar/ | /en/rooms/ |
| /konum/ | /en/location/ |
| /iletisim/ | /en/contact/ |
| Seite | Mobil | Desktop | Mobil-LCP |
|---|
| / | 99 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 2.0 s |
| /odalar/ | 99 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 1.9 s |
| /konum/ | 100 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 1.5 s |
| /iletisim/ | 100 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 1.5 s |
| /en/ | 99 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 2.0 s |
| /en/rooms/ | 99 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 1.9 s |
| /en/location/ | 100 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 1.5 s |
| /en/contact/ | 100 / 100 / 100 / 100 | 100 / 100 / 100 / 100 | 1.5 s |
Ausgabe von i18n-stamp: 8 Seiten, 2 Sprachen, ein sitemap.xml-Index mit sitemap-tr.xml und sitemap-en.xml, 0 Fehler, 0 Warnungen. Beim ersten Durchlauf lösten drei englische Seiten eine Warnung wegen türkischer Sonderzeichen aus, und zwar bei "Ayvalık", "Türkiye" und "Balıkesir"; sie wurden in keepWords aufgenommen, denn Ortsnamen behalten auch im Englischen ihre türkische Schreibweise.
Prüfschritte (Gates): seo-check 0 Fehler und 0 Warnungen, html-validate 0 Fehler, design-check 0 Fehler und 1 Warnung (keine Bewegung, eine Stilentscheidung), kein Overflow von 360 bis 1440 Pixeln. Zur Prüfung durch Sie: der englische Wortlaut der Stornierungsbedingungen, da es sich um einen verbindlichen Text handelt.