Site web

Créer un site de luxe bilingue pour un hôtel de charme ou un projet immobilier, avec grandes photos, parallaxe douce et hreflang

Construit sur votre serveur d'hébergement un site chaleureux et luxueux en turc et en anglais pour un hôtel de charme ou un projet résidentiel. Sert rapidement de grandes photos avec un recadrage mobile distinct, ajoute une parallaxe sans JavaScript qui respecte la réduction des animations, et configure correctement le schema Hotel ou RealEstateListing ainsi que le hreflang.

Quand l'utiliser

Lorsque vous avez besoin d'un site rapide et luxueux en turc et en anglais pour un hôtel de charme ou un programme résidentiel, avec hreflang, schema et Core Web Vitals correctement gérés.

Ce que vous obtenez

Un site bilingue publié sur votre serveur, dont chaque page est mesurée, avec un rapport des scores, des contrôles, des corrections et des informations encore manquantes.

Modifie-t-il quelque chose dans mon compte ?

Seulement avec votre accord. L'assistant montre d'abord un aperçu de chaque modification et attend votre feu vert.

Fonctionne avec

SEO Intelligence, Search Console

À compléter avant l'envoi

[hôtel / projet résidentiel][nom du serveur][nom de l'établissement ou du projet][lieu][hôtel de charme / projet résidentiel][détails des chambres][détails des logements][téléphone][WhatsApp][e-mail][adresse][domaine]
Construis un site en turc et en anglais pour mon [hôtel / projet résidentiel] sur mon serveur d'hébergement [nom du serveur]. Détails : 1. Nom : [nom de l'établissement ou du projet], lieu : [lieu], type : [hôtel de charme / projet résidentiel] 2. Pour un hôtel, les types de chambres (surface, lit, nombre d'invités, vue, équipements), les heures d'arrivée et de départ, la saison et le règlement intérieur : [détails des chambres] 3. Pour un projet, les types de logements (pièces, mètres carrés, étage, date de livraison) et les coordonnées du bureau de vente : [détails des logements] 4. Téléphone : [téléphone], WhatsApp : [WhatsApp], e-mail : [e-mail], adresse : [adresse] 5. Domaine : [domaine], vraies photos : [où se trouvent les photos, ou "utilise des photos libres de droits"] 6. Qui relira le texte anglais : [personne, ou "personne"] Commence par confirmer le serveur avec list_servers et lance scaffold_site avec style="universal", d'abord avec confirm=false, puis avec confirm=true après mon accord. Lis site_design_guide et site_seo_guide. Rédige dans _kaynak/ART.md une décision de design luxueuse et chaleureuse et montre-la-moi : une police d'affichage serif fine issue de Fontshare (par exemple Boska 300) avec une police de texte sobre (par exemple Synonym), des tons café foncé et lin, un seul accent cuivre, de petites étiquettes très espacées et une photographie plein écran. L'élément signature est la première image plein écran de la page d'accueil et sa parallaxe douce. Ne pose pas d'en-tête transparent sur la photo : sur les pages claires, le texte clair du menu disparait (dans la démo, cela a fait tomber l'accessibilité à 95 sur les pages des chambres et du contact). Donne à la barre un fond sombre. Structure linguistique : 1. Les pages turques sont à la racine et leurs jumelles anglaises sous /en/. Chaque page turque a une jumelle anglaise et les deux se renvoient l'une à l'autre. Garde les paires de pages dans une seule liste dans assets/site.config.js et construis le menu, le pied de page et le sélecteur de langue à partir de cette liste ; le sélecteur mène toujours à la page correspondante, jamais à l'accueil. 2. Le <head> de chaque page contient hreflang="tr", hreflang="en" et hreflang="x-default" pointant vers la page turque, tous en URL absolues ; écris les mêmes paires dans sitemap.xml sous forme d'entrées xhtml:link. 3. Les pages anglaises utilisent <html lang="en">, un title, une description et un fil d'Ariane en anglais, et WebPage inLanguage "en". seo-stamp.mjs appose og:locale tr_TR sur chaque page ; dans build.mjs, après l'estampillage, remplace-le par en_GB sur les pages anglaises et ajoute og:locale:alternate dans les deux langues. 4. Écris l'anglais comme le ferait un rédacteur natif, et non comme une traduction, et garde les noms de lieux dans leur graphie turque. Pages et schema (chacune dans les deux langues) : 1. Accueil : première image plein écran, ce qu'est le lieu en un paragraphe, quelques faits clés (nombre de chambres, arrivée, départ, saison), cartes des chambres et lien vers le guide local. Schema : WebPage, et sur le nœud de l'établissement le type Hotel avec checkinTime, checkoutTime, numberOfRooms, amenityFeature et les chambres sous containsPlace. Pour un projet résidentiel, utilise Residence ou ApartmentComplex à la place. 2. Une page des chambres et une page par type de chambre : surface, lit, nombre d'invités, équipements, à qui elle convient, et un lien vers l'autre type de chambre. Schema : HotelRoom (bed, occupancy, floorSize, amenityFeature, containedInPlace #business). Pour un projet résidentiel, un RealEstateListing par type de logement avec un Apartment à l'intérieur (numberOfRooms, floorSize). Si je n'ai pas donné de prix, n'écris aucun offers, et dis dans le texte "envoyez-nous vos dates et nous vous indiquerons le tarif correspondant". 3. Guide local : connaissance du terrain avec une date de dernière mise à jour. Schema : WebPage. 4. Contact et réservation : téléphone, formulaire WhatsApp, e-mail, adresse, "Itinéraire", conseils de trajet et conditions de réservation. Schema : ContactPage. 5. Une page 404 (courte, dans les deux langues). N'affirme aucun classement en étoiles, aucune récompense, aucune note de clients ni "le meilleur" ; n'ajoute ni starRating ni aggregateRating. Pour ouvrir rapidement de grandes photos : livre la première image avec <picture> ; sur les écrans jusqu'à 767 pixels, utilise un recadrage portrait en 600 et 900 pixels de large (recadré à l'adresse source et récupéré avec site_fetch), et sur les écrans plus larges la version paysage en 1200, 1600 et 2000 pixels. Sans le recadrage portrait, l'image paysage est agrandie pour remplir l'écran du téléphone, et elle parait alors floue ou pèse inutilement lourd. Aucune invention : n'écris ni avis, ni notes, ni récompenses, ni certificats, ni nombre de clients, ni affirmations comme "le meilleur" qui ne soient pas réels. N'ajoute pas au schema ou au texte d'horaires d'ouverture, de coordonnées, de prix ou d'e-mail que je ne t'ai pas fournis ; laisse le champ de côté et signale-le comme manquant dans le rapport. N'utilise ni tirets longs ni slogans bateau, et fais en sorte que le premier paragraphe de chaque page réponde directement à la question de cette page. Travail SEO commun : chaque page reçoit un title unique de 48 à 60 caractères, une description de 145 à 158 caractères, un seul H1 et une canonical qui se termine par une barre oblique. Ajoute pour chaque page son propre nœud WebPage et un BreadcrumbList, reliés au graphe de base par @id. Dans robots.txt, écris Allow: / pour Googlebot, Bingbot, OAI-SearchBot, ChatGPT-User, GPTBot, Claude-SearchBot, Claude-User, ClaudeBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended et CCBot, explique la décision dans un commentaire et indique ce qu'il faut modifier si je veux bloquer les robots d'entrainement. sitemap.xml contient de vraies dates lastmod. llms.txt décrit l'établissement fidèlement en deux phrases et liste le NAP et les pages importantes avec leurs liens. Mise en place technique (le chemin par défaut de la boite à outils n'est pas utilisé sur ce site, pour les raisons suivantes) : 1. Compile Tailwind et abandonne le CDN. Le kit charge Tailwind via le CDN Play, qui compile dans le navigateur, affiche un avertissement dans la console et dégrade les performances mobiles. Écris _kaynak/package.json avec site_write_file, installe avec site_run_command("cd _kaynak && npm i -D tailwindcss@3 html-validate", background=true) et attends avec site_command_status. Dans _kaynak/tailwind.config.js, règle content sur "./*.html", "./**/*.html", "!./_kaynak/**" et "./_kaynak/chrome.mjs". Déplace les règles @font-face, les lignes @tailwind ainsi que l'anneau de focus, le lien d'évitement et la protection contre le débordement depuis app.css du kit vers _kaynak/site.css. Sors le résultat vers assets/app.css, car design-check.mjs cherche les polices dans ce fichier, et ajoute ?v=<hash du contenu> au lien sur chaque page pour que le cache en périphérie ne serve jamais l'ancien fichier. 2. Héberge les polices toi-même. Lis l'URL CSS des familles Fontshare choisies (api.fontshare.com/v2/css?f[]=...) avec site_read_url, télécharge ses fichiers woff2 avec site_fetch dans assets/fonts/, et déclare-les avec @font-face et font-display: swap. Précharge chaque graisse utilisée au-dessus de la ligne de flottaison avec <link rel="preload" as="font" type="font/woff2" crossorigin>, trois fichiers au maximum. Sans cela, le remplacement de police décale la mise en page ; dans la démo, le CLS sur ordinateur était de 0,078 pour cette raison et est tombé à 0 grace au préchargement. 3. Rends le menu et le pied de page en HTML statique. Les composants <site-nav> et <site-footer> du kit fonctionnent avec JavaScript, et la plupart des robots d'IA ne voient jamais le menu, l'adresse ni le numéro de téléphone. Supprime les scripts chrome.js et motion.js de chaque page. Dans _kaynak/chrome.mjs, écris deux fonctions qui construisent le HTML de l'en-tête et du pied de page à partir de assets/site.config.js ; construis le menu mobile sans JavaScript avec <details> et <summary>, et marque la page courante avec aria-current="page". Écris à la racine du site build.mjs qui, dans l'ordre, lance node seo-stamp.mjs, ré-estampille tout ce qui se trouve entre <!-- chrome:header:start --> et <!-- chrome:header:end --> (et de même pour le pied de page) sur chaque page, compile Tailwind et met à jour le hash sur le lien CSS. Après chaque modification, lance uniquement site_run_command("node build.mjs"). 4. Parallaxe sans JavaScript. Donne à la première image data-parallax et déplace-la lentement avec une animation CSS pilotée par le défilement (animation-timeline: scroll(root)) en utilisant uniquement transform ; donne aux sections une entrée data-reveal qui utilise elle aussi uniquement transform, jamais opacity. Enveloppe les règles dans @media (prefers-reduced-motion: no-preference) et @supports (animation-timeline: scroll()) ; avec la réduction des animations, ou dans un navigateur sans prise en charge, l'image reste immobile. Ne charge ni GSAP, ni Lenis, ni Swiper. 5. Allège les images. Télécharge chaque photo avec site_fetch dans des fichiers distincts en utilisant resize="480x", "800x", "1200x", "1600x", image_format="webp" et une qualité entre 60 et 68. Donne à chaque <img> srcset, sizes, ainsi que width et height correspondant au vrai ratio ; si tu recadres, ajoute une classe de ratio comme aspect-[4/3] avec object-cover, faute de quoi la mise en page se décale au chargement de l'image. L'image du premier écran reçoit fetchpriority="high" et n'est pas en lazy ; toutes les autres reçoivent loading="lazy". Télécharge l'image de partage en JPG 1200x630 avec site_fetch. 6. Petits détails qui coutent des points : ajoute un favicon SVG avec <link rel="icon"> (sinon le navigateur demande /favicon.ico, la 404 apparait comme une erreur dans la console et les Bonnes pratiques chutent). Écris DOCTYPE en majuscules, n'utilise aucun attribut style et ne laisse aucun espace en fin de ligne. Utilise &nbsp; à la place des espaces dans le texte visible des liens téléphoniques (règle html-validate tel-non-breaking). Les liens du menu, du pied de page, du fil d'Ariane et des titres doivent faire au moins 44 pixels de haut et de large. N'intègre pas d'iframe Google Maps ; le site ne doit faire aucune requête externe, affiche donc l'adresse et un lien "Itinéraire" à la place. 7. Aucune requête ne doit sortir du site : polices, scripts, styles et images résident tous sur ton propre serveur. Il n'y a pas de gestionnaire de formulaire, donc le formulaire de contact est un formulaire method="get" pointant vers https://wa.me/[numéro WhatsApp] avec un textarea prérempli nommé "text" ; aucun JavaScript n'est nécessaire. Contrôles (dans cet ordre ; ne dis pas que c'est terminé tant qu'ils ne passent pas tous) : 1. Lance node build.mjs avec site_run_command, puis node seo-check.mjs : 0 erreur, 0 avertissement. Un avertissement de contenu dupliqué signifie que deux pages ne sont pas assez différentes ; réécris-les. 2. node design-check.mjs : 0 erreur. Si tu as choisi un style sans mouvement, signale l'avertissement "no motion" comme une décision délibérée en en donnant la raison. 3. _kaynak/node_modules/.bin/html-validate sur chaque fichier HTML : 0 erreur. Mets une ligne _kaynak/ dans un fichier .htmlvalidateignore à la racine du site pour que les dépendances ne soient pas analysées. 4. Contrôle des langues : montre dans un tableau que la jumelle hreflang de chaque page existe, renvoie 200 et pointe en retour ; seo-check ne doit donner aucun avertissement hreflang. 5. Regarde chaque page avec site_preview en view="mobile", view="desktop", et aussi en 360 et 768 de large. Corrige le défilement horizontal, les titres qui débordent, les boutons à l'étroit ou le texte illisible, puis regarde à nouveau. 6. Mesure chaque page avec core_web_vitals en

Exemple de résultat

Un exemple du résultat de ce prompt. Sa structure provient de la sortie réelle des outils ; les chiffres et les noms sont fictifs.

Exemple de résultat (un site de démonstration conçu pour une entreprise fictive, sans données clients réelles ; les scores sont les mesures Lighthouse 12 réalisées en local pour cette démo)

Style : luxe/chaleureux, photographies plein écran, parallaxe CSS scroll-timeline (compatible avec la réduction des animations), TR+EN, sans JavaScript. Pages : 12.

PageMobile P/A/BP/SEOLCP mobileDesktop P/A/BP/SEO
/99/100/100/1002.0 s100/100/100/100
/alacati/100/100/100/1001.8 s100/100/100/100
/en/98/100/100/1002.4 s100/100/100/100
/en/alacati/100/100/100/1001.8 s100/100/100/100
/en/contact/100/100/100/1001.4 s100/100/100/100
/en/rooms/100/100/100/1001.5 s100/100/100/100
/en/rooms/courtyard-room/100/100/100/1001.5 s100/100/100/100
/en/rooms/terrace-suite/100/100/100/1001.5 s100/100/100/100
/iletisim/100/100/100/1001.4 s100/100/100/100
/odalar/100/100/100/1001.5 s100/100/100/100
/odalar/avlu-oda/100/100/100/1001.5 s100/100/100/100
/odalar/teras-suit/100/100/100/1001.5 s100/100/100/100

Contrôles : seo-check 0 erreur 0 avertissement, design-check 0 erreur, html-validate 0 erreur, aucun débordement à 360/390/768/1440, aucune erreur dans la console, aucune requête vers l'extérieur du site.

Avant et après : non mesuré.

Langue : 6 pages jumelles en turc et 6 en anglais, hreflang absolu tr/en/x-default sur chaque page, paires xhtml:link dans sitemap.xml, og:locale en_GB sur les pages en anglais. La parallaxe est désactivée sous prefers-reduced-motion: reduce.

Correctifs apportés :
1. Suppression du CDN Tailwind Play et compilation sous _kaynak ; le fichier généré s'appelle assets/app.css car design-check.mjs ne cherche les polices que dans ce fichier (un autre nom déclenchait l'erreur « no distinctive typography »).
2. Préchargement de toutes les graisses de police utilisées au-dessus de la ligne de flottaison ; avec seulement deux graisses préchargées, le CLS desktop était de 0.078, avec les trois il est tombé à 0.
3. Les images dont width/height ne correspondaient pas au ratio réel provoquaient du CLS ; ajout d'une classe de ratio (aspect-[..]) avec object-cover.
4. html-validate : DOCTYPE en majuscules, &nbsp; dans le texte du lien téléphonique (tel-non-breaking), espaces en fin de ligne (build.mjs nettoie désormais la sortie des templates).
5. Les liens du pied de page, du fil d'Ariane et des titres faisaient moins de 44 pixels ; ajout de inline-flex min-h-[44px] et d'une règle CSS pour les paragraphes ne contenant qu'un seul lien.
6. Les pages signalées « body too short » par seo-check ont reçu des paragraphes contenant de vraies informations.
7. L'en-tête transparent disparaissait sur les pages claires (chambres, contact) et l'accessibilité tombait à 95 ; l'en-tête a désormais un fond sombre.
8. seo-stamp applique og:locale tr_TR à toutes les pages, build.mjs le remplace donc par en_GB sur les pages en anglais.
9. Ajout, via <picture>, d'un recadrage portrait 600/900 pixels pour la première image sur mobile.

Un site d'exemple créé avec ce prompt

Luxe/chaleureux, photos plein écran, parallaxe CSS scroll-timeline (compatible avec reduced-motion), TR+EN, sans JavaScript

Créé pour une marque fictive en suivant ce prompt à la lettre. Les scores ont été mesurés avec Lighthouse sur chaque page.

Scores Lighthouse (page la plus faible)
MobileOrdinateur
Performance98100
Accessibilité100100
Bonnes pratiques100100
SEO100100

Contrôles réussis

  • seo check: 0 hata 0 uyarı
  • design check: 0 hata, 0 uyarı
  • html validate: 0 hata
  • overflow: 360/390/768/1440 taşma yok
  • touch targets: 360/390'da 44px altı hedef yok
  • console: konsol hatası yok
  • external requests: Lighthouse ağ listesinde dış istek yok
  • tailwind before after: ölçülmedi
Captures d'écran
Créer un site de luxe bilingue pour un hôtel de charme ou un projet immobilier, avec grandes photos, parallaxe douce et hreflang: Mobile
Mobile
Créer un site de luxe bilingue pour un hôtel de charme ou un projet immobilier, avec grandes photos, parallaxe douce et hreflang: Ordinateur
Ordinateur

Mesuré le: 2026-10-11

Recherches associées

Ces prompts donnent le meilleur résultat quand votre assistant IA est connecté à vos comptes avec Opus Growth.

Connecter vos comptes gratuitement

Autres prompts

Site webModifie après votre accordDémo en direct

Créer un site d'expert éditorial avec rubrique de guides et schema auteur

Votre assistant construit le site d'un expert : une page d'accueil façon une de magazine, des guides longs et un profil d'auteur. Typographie à empattements, schema Article et Person, articles datés et sourcés : une publication que l'on lit et que les réponses d'IA peuvent citer.

Quand l'utiliserQuand vous êtes expert indépendant, consultant ou freelance et que votre site ressemble à une brochure qui ne prouve pas votre expertise et n'est pas cité par les moteurs de recherche et les réponses d'IA.

SEO Intelligence, Search Console
Site webModifie après votre accordDémo en direct

Créer un site d'entreprise familiale au look classique, aux standards modernes

Demandez à votre assistant de construire le site d'un producteur de troisième génération, dans l'esprit d'une vieille étiquette ou d'une enseigne, avec cadre et texture papier. Le look est ancien, la construction est moderne : mobile first, sans JavaScript, polices auto-hébergées, WebP, schémas Product et HowTo.

Quand l'utiliserQuand vous tenez une entreprise familiale ou une boutique et voulez un site au look d'étiquette ancienne et d'enseigne, qui reste rapide sur mobile et réussit les contrôles SEO et d'accessibilité.

SEO Intelligence, Search Console
Site webModifie après votre accordDémo en direct

Créer un site de cabinet juridique ou comptable, minimaliste suisse et rassurant

Demandez à votre assistant de construire un site de cabinet statique sur une grille stricte, avec une hiérarchie portée par une seule famille typographique. Il place les signaux de confiance qu'exige un domaine YMYL : profils des praticiens, note d'information datée et sourcée, formulations conformes aux règles de publicité professionnelle et schema Person.

Quand l'utiliserLorsque vous dirigez un cabinet d'avocats ou d'expertise comptable et qu'il vous faut un site crédible et rapide qui inspire confiance sans enfreindre les règles de publicité professionnelle.

SEO Intelligence, Search Console
Site webModifie après votre accordDémo en direct

Créer un site corporate multipage sans JavaScript et le livrer à 100

Demandez à votre assistant de construire un site statique, rapide et accessible pour une activité de type architecture, ingénierie ou conseil. Le menu et le pied de page sont en HTML statique, les polices et le CSS sont auto-hébergés, et chaque page est mesurée avant la livraison.

Quand l'utiliserQuand vous avez besoin d'un site d'entreprise multipage, rapide et accessible, pour un cabinet d'architecture, d'ingénierie ou de conseil, sans aucun JavaScript.

SEO Intelligence, Search Console