Communitygithub.com

Zhuohengli03/b2b-website-skills - Compétences Développement Fro…

Transforme les maquettes et spécifications de composants en pages rapides, indexables et modifiables en backoffice (thème/blocs WordPress, responsive, performances, accessibilité, catalogue filtrant, tableaux de paramètres, animations contrôlées, commutateur multilingue) pour sites B2B à l'international.

Qu'est-ce que b2b-website-skills - Compétences Développement Fro… ?

Cette compétence décrit le rôle et le processus de développement frontend pour un site web B2B destiné à l'export, avec WordPress comme socle technique. Le développeur frontend est chargé de transformer les maquettes design, les spécifications de composants et les textes en un site performant, responsive, accessible et facilement maintenable en backoffice. La mesure de la qualité ne repose pas sur la beauté du code, mais sur trois critères : la vitesse (LCP < 2,5 s), l'indexabilité (DOM sémantique, texte réel, données structurées) et la robustesse en backoffice (modifier du contenu sans casser la mise en page). La compétence couvre des aspects techniques précis : utilisation d'un thème léger (GeneratePress, Blocksy, Kadence) et de blocs personnalisés ACF ou natifs (pas de constructeurs de page lourds comme Elementor ou WPBakery), optimisation des performances (images WebP < 200 Ko, polices auto-hébergées en woff2, lazy loading), accessibilité (contraste, navigation clavier, prefers-reduced-motion), mise en œuvre d'animations CSS/Intersection Observer (pas de virtual scrolling, pas de preloader plein écran), gestion du multilingue (WPML/Polylang), et checklist de vérification automatisée (débordement horizontal, couleurs en variables CSS, pas d'émoji comme icônes). Le processus inclut une revue isolée par un sous-agent qui ne lit ni le code ni les décisions de conception, seulement les captures d'écran et le guide de diagnostic. La compétence est conçue pour fonctionner comme un agent autonome dans un pipeline : elle reçoit les maquettes, les textes et les spécifications, produit le code source, les livrables (checklist, rapports de performance, captures d'écran) et interagit avec le PM via un fichier de décisions. Les erreurs courantes sont listées (constructeurs lourds, titres en images, polices Google Fonts, test uniquement Chrome desktop, etc.) et des situations spéciales sont traitées (assets manquants, images basse résolution, marché cible avec réseau lent).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Zhuohengli03/b2b-website-skills/tree/HEAD/skills/b2b-frontend-dev

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétences Développement Frontend Site B2B

Tu transformes les maquettes en pages qui s'ouvrent en moins de 2,5 secondes sur l'ordinateur du bureau d'achat comme sur son mobile, qui sont intégralement lues par Google et les IA de recherche, et que votre équipe peut modifier elle-même dans le backoffice. Pour juger si une implémentation frontend est bonne, on ne regarde pas la beauté du code, mais trois choses : la rapidité, l'indexabilité, et si vous cassez la mise en page en modifiant le contenu.

Le processus amont est le design (maquettes, spécifications de composants, système visuel, règles responsive), la rédaction (la structure des textes détermine la hiérarchie DOM) et la planification (liste technique : quelles animations faire et lesquelles ne pas faire intentionnellement). L'aval est le backend (formulaires, champs CMS, multilingue, déploiement), le SEO (vérification de votre DOM et performances) et les tests.

Fichiers de référence

FichierQuand le lire
references/前端自查表.mdAvant de remettre aux tests, passe-le en revue point par point

Corrige toi-même les éléments P0/P1 avant de les remettre, ne les laisse pas aux tests. Les vérifications de contenu et de sémantique d'accessibilité se trouvent dans b2b-qa-tester/references/可用性与可访问性检查项.md, les deux listes ne se chevauchent pas.

Ce que tu demandes dans ce rôle, ton intention et comment y répondre

Tu exprimes rarement directement tes besoins frontend, la plupart passent par le PM ou surgissent lors de la recette :

Ton expressionIntention sous-jacenteComment y répondreAttribution
"Le site est un peu lent"La première impression de l'acheteur, tu la ressens toi-mêmeLancer PageSpeed : convertir les images en WebP et les compresser à moins de 200 Ko, précharger l'image hero, polices auto-hébergées avec seulement 3-4 graisses, différer le chargement des images hors écran et des scripts tiers, supprimer les CSS/JS de plugins inutilisésTechnique : LCP < 2,5 s ; Métier : chaque seconde de retard fait fuir les acheteurs ; plus marqué dans les marchés cibles avec réseau lent
"Sur mobile, la mise en page est cassée"Toi ou ton patron avez ouvert le site dans WeChatVérifier page par page selon les points de rupture du design ; ajouter un défilement horizontal au tableau de paramètres avec la première colonne fixe ; faire passer le Bento en une seule colonne ; boutons en pleine largeur ; navigation repliable mais bouton de demande de devis toujours visibleExpérience : sur les marchés à forte pénétration mobile, le téléphone est le champ de bataille principal
"J'ai modifié un texte dans le backoffice et la page s'est déformée"Vous voulez maintenir vous-même, mais la mise en page est fragileUtiliser des blocs/ champs fixes dans la zone de contenu (ACF ou blocs personnalisés de l'éditeur de blocs), la variation de longueur du texte n'affecte pas la grille ; ajouter une indication du nombre de caractères pour chaque champTechnique : maintenabilité ; Métier : si on ne peut pas modifier en backoffice, il faut à chaque fois toucher au code, et le site devient vite inapprochable
"Peut-on ajouter une animation un peu plus impressionnante ?"Veut se différencier des sites templatesN'implémenter que les animations listées dans le cahier des charges techniques, utiliser CSS + Intersection Observer ou GSAP léger, respecter prefers-reduced-motion ; WebGL, particules, transitions de page ne pas faire par défautTechnique : les scripts d'animation sont des tueurs de performance ; Métier : l'acheteur veut de la rapidité, pas du clinquant
"Google ne nous trouve pas"Anxiété de référencement après le lancementCe que le frontend peut faire : balises sémantiques, un H1 par page, titres et textes dans le DOM réel (pas dans canvas / images), attributs alt sur les images, placeholder pour les données structurées, ne pas bloquer accidentellement avec robots, générer un sitemapSEO : l'indexabilité est de la responsabilité du frontend ; Métier : si on n'est pas trouvé, c'est comme si on n'existait pas
"Je veux un commutateur chinois/anglais / multilingue"Marchés multiplesUtiliser WPML / Polylang ou multisite, placer le commutateur en haut à droite de la navigation, hreflang géré par le backend / SEO ; les pages non traduites tombent en anglais plutôt qu'en 404Technique : une fois l'architecture multilingue mal choisie, le coût de migration est très élevé ; SEO : hreflang affecte le référencement multilingue
"Je veux l'effet de filtrage du site XX en référence"Rechercher des produits par paramètresTaxonomies + champs personnalisés pour les dimensions de filtrage, mise à jour sans rafraîchissement via Ajax, URL avec paramètres partageables et indexables ; guider quand les résultats sont videsExpérience : l'acheteur cherche par matière / spécification ; SEO : les pages de résultats de filtrage doivent pouvoir être indexées (attention au canonical)
"Le formulaire peut-il avoir moins de champs ?"Crainte que l'acheteur trouve ça fastidieux5-7 champs, obligatoires seulement Nom / Email / Message, le reste facultatif ; préremplir le modèle depuis la page produit ; sur mobile, taille de police 16 px pour éviter le zoom ; afficher l'état de chargement sur le bouton de soumissionExpérience : chaque champ obligatoire supplémentaire fait chuter le taux de conversion ; Métier : obtenir d'abord les coordonnées à faible effort, les détails se règlent ensuite
"Changer de thème / utiliser le template XX"A voir un autre site joliExpliquer que le thème détermine le squelette, le visuel est défini par le système de design ; changer de thème équivaut à tout refaire ; si nécessaire, évaluer les performances du thème et le support des blocs avant de déciderTechnique : le thème verrouille la structure du contenu et le plafond de performance ; Métier : coût de reprise

Processus de réalisation

1. Choix techniques (par défaut WordPress pour un site de demande de devis)

  • WordPress + thème léger (GeneratePress / Blocksy / Kadence / thème bloc personnalisé) + ACF ou blocs natifs pour les champs personnalisés ; éviter les constructeurs de page comme Elementor / WPBakery en raison de leur volume et du verrouillage (si le site existant les utilise déjà, évaluer avant de décider).
  • Blocs personnalisés ou thème enfant.
  • Solutions statiques ou basées sur un framework (Astro / Next.js) uniquement si le backoffice n'est pas nécessaire pour la maintenance ET qu'il y a une personne dans l'entreprise capable de maintenir le code sur le long terme ; sinon, WordPress est plus convivial pour le collègue qui maintiendra le site plus tard.

2. Mise en place du système visuel

Écrire les tokens de design en tant que variables CSS : couleurs, échelle de tailles de police, hauteur de ligne, espacements, coins arrondis, ombres, points de rupture. Tous les composants ne font que référencer ces variables, ce qui facilite le changement de couleurs ou de polices ultérieurement. Polices auto-hébergées en woff2, font-display: swap, préchargement des polices du premier écran, pile de polices de secours adaptée à la largeur.

3. Ordre d'implémentation des composants

Navigation (incluant mega menu et repli mobile, bouton de demande de devis toujours visible) → Boutons et contrôles de formulaire → Cartes (carte produit, carte cas client) → Tableau de paramètres (rayures zébrées, chiffres tabulaires, défilement horizontal, première colonne fixe) → Tabs / Accordéon → Compteur → Grille Bento → Zone CTA → Pied de page → Barre de demande de devis collante / flottant WhatsApp → Carrousel de logos → Apparition au défilement. D'abord les composants réutilisés sur tout le site, puis ceux spécifiques à une page.

4. Modèles de page

Page d'accueil, page catégorie (avec filtrage), page détail produit (galerie, onglets de paramètres, formulaire de demande de devis prérempli), À propos, OEM / Processus, page secteur, page certification, FAQ (structure compatible Schema), liste et article de blog, Contact, page de remerciement, 404. Chaque modèle est lié aux groupes de champs correspondants, le collègue qui maintiendra le site plus tard remplit les champs dans le backoffice plutôt que de mettre en page.

5. Vérification des performances et de l'indexabilité (obligatoire avant mise en ligne)

  • LCP < 2,5 s, CLS < 0,1, INP < 200 ms, PageSpeed mobile ≥ 80
  • Ne pas mettre de preloader plein écran. Le HTML du premier écran, les textes et le CTA doivent s'afficher immédiatement sans condition. Sur 31 sites primés aux Awwwards réellement analysés, 7 étaient inaccessibles en conditions réelles à cause de l'écran de chargement (certains avec 57 requêtes toutes en 200, console sans erreur, bloqués à 54%). Si tu dois vraiment attendre des ressources, écris Promise.race([ressource prête, 1,5s de timeout]). Voir b2b-ui-designer/references/获奖站实证.md
  • Ne pas utiliser de défilement virtuel (solutions prenant le contrôle du défilement comme Lenis). En pratique, cela fausse les données de profondeur de défilement de GA, casse les ancres de lien et le "retour à la position précédente", et interrompt les animations programmées. Les sites de demande de devis s'appuient sur les données pour analyser l'entonnoir de conversion et sur les ancres pour la navigation
  • Ajouter un champ pot de miel au formulaire de demande de devis : <input name="website"> avec position:absolute;left:-9999px;width:4px;height:4px;opacity:0 + aria-hidden="true" + tabindex="-1", si non vide à la soumission, rejeter
  • Images : WebP / AVIF, srcset, préchargement de l'image du premier écran, chargement différé des autres, chaque image ≤ 200 Ko, hero ≤ 400 Ko, l'image principale de la section produit ≤ 300 Ko et exclue de la compression automatique (une image produit de plus de 2000 px de petit côté compressée à 200 Ko deviendrait floue)
  • Polices : ≤ 4 fichiers, total ≤ 300 Ko
  • Scripts : scripts tiers différés, CSS/JS inutilisés supprimés, bibliothèques d'animation chargées à la demande
  • DOM : un H1 par page, hiérarchie des titres sans saut, texte dans le DOM, attribut alt sur les images, liens avec texte, boutons en <button>, formulaires avec label
  • Accessibilité : accessible au clavier, focus visible, contraste suffisant, prefers-reduced-motion effectif
  • robots / noindex activé sur le site de test, désactivé à la mise en ligne (à inscrire dans la checklist de mise en ligne, remettre au backend)

Auto-vérification au niveau du rendu (ci-dessus on vérifiait le code, ici on vérifie l'image rendue ; se référer à ux-ui-agent-skills / oil-ui) :

  • Pour chaque modèle, faire trois captures d'écran et les assembler en une seule : desktop 1440, mobile 390, prefers-reduced-motion: reduce, les sauvegarder dans _内部/06-站点记录/截图/, avec le nom de fichier «modèle-date». L'assemblage est destiné à la revue isolée et au QA, pas à être regardé une fois puis supprimé
  • Débordement horizontal : pour chaque capture d'écran correspondant à un point de rupture, exécuter document.documentElement.scrollWidth > window.innerWidth, si vrai, marquer en P1, corriger avant de remettre
  • Cible tactile : la spécification indique 44 px, le seuil minimum en pratique est 24×24 – tout élément cliquable dont le rendu est inférieur à 24×24 est marqué P1 (se référer à ux-ui-agent-skills, correspond au niveau le plus bas de WCAG 2.2) ; utiliser getBoundingClientRect() en pratique, ne pas se fier aux maquettes
  • Le contraste des états hover / focus doit être testé en pratique, pas seulement l'état par défaut : après que le bouton devient plus clair au survol ou que le lien change de couleur au focus, le texte et le fond doivent toujours respecter le contraste
  • Aucun hex brut en dehors de :root : toutes les couleurs ne doivent être référencées que via des variables CSS, faire un grep de #[0-9a-fA-F]{3,6} pour n'autoriser que dans :root et les redéfinitions de variables pour le mode sombre
  • Ne pas utiliser d'émoji comme icône : les icônes doivent toutes provenir de la bibliothèque d'icônes définie par la planification (Lucide / Phosphor / Tabler), les émojis ont un rendu incohérent selon les systèmes et ne peuvent pas changer de couleur
  • Partie automatisée : exécuter node scripts/check.mjs dist --shots : générer les trois captures d'écran, vérifier le débordement horizontal, scanner les hex bruts et les émojis ; l'humain ne fait que ce que la machine ne peut pas vérifier (contraste hover/focus, assemblage pour vérifier la mise en page)
  • Quota de visualisation des images : l'auto-vérification des trois captures d'écran ne regarde que ses propres captures ; pas plus de 20 images par étape, si le quota est dépassé, écrire «pas vérifié une par une, jugement basé sur les métadonnées», ce n'est pas une erreur

Revue isolée : avant G3 (dès que la page d'accueil peut être rendue dans le navigateur, ne pas attendre la fin du site), lancer un sous-agent qui ne lit pas le code source, ni les documents de décision de conception, ne lui donner que les trois captures d'écran de la page d'accueil et b2b-site-diagnosis/references/公司分型速查与自查.md, lui demander de noter la page d'accueil de 1 à 10 selon le guide et de lister les textes supprimables ; la note et la liste des textes supprimables sont écrites à la fin de _内部/06-站点记录/前端自查表.md. Ceux qui ont lu les justifications défendront la page, donc l'évaluateur doit être celui qui n'a pas lu les justifications. Si la revue isolée n'est pas faite, mentionner «pas de revue indépendante» dans la checklist, ne pas laisser vide.

6. Règles d'implémentation des animations

Deux types d'animations, principes d'implémentation différents.

Animations d'apparition classiques (uniquement pour les éléments listés dans le cahier des charges techniques) : CSS d'abord, JS ensuite, bibliothèque en dernier ; déclenché une fois à l'entrée dans la fenêtre, pas de répétition ; durée 300-600 ms.

Section produit / mise en scène (uniquement si définie dans la direction G2, au maximum une section sur tout le site) : piloté par scrub, réversible, pas de paramètre de durée (l'état est déterminé par la position de défilement) ; utiliser position: sticky en CSS pour le collage, ne pas utiliser pin de ScrollTrigger ; implémentation selon b2b-ui-designer/references/产品载体与场景段.md. Conserver cette section sur mobile mais en réduire l'intensité : supprimer filter: blur(), diviser l'angle de rotation par deux, remplacer l'image de mise en scène par une version basse résolution ; ne pas tout faire dégénérer en un empilement statique – cela signifierait que la moitié du trafic ne verrait pas le seul point de mémorisation du site.

Commun aux deux : prefers-reduced-motion: reduce désactive tout, la mise en scène s'arrête sur le premier état, le contenu N se transforme en empilement classique ; le point de collage de défilement n'est présent qu'à un seul endroit sur tout le site ; le compteur se déclenche une fois à l'entrée dans la fenêtre ; le carrousel utilise une animation CSS avec pause au survol.

Pourquoi on fait comme ça : attribution

  • Technique : performances, indexabilité, maintenabilité. C'est l'attribution principale du frontend, la plupart des décisions y aboutissent.
  • Expérience : utilisable sur mobile, formulaire à faible friction, filtrage sans rafraîchissement.
  • Métier : rapidité = acheteur ne fuit pas ; modifiable = pas besoin de toucher au code à chaque fois ; indexable = des demandes de devis.
  • Visuel : restituer fidèlement le système de design, sans «optimiser au passage» le design.

Exemple :

DécisionAttributionRaison
Ne pas utiliser de constructeur de page, utiliser des blocs personnalisésTechnique + MétierMoitié moins volumineux, modifier du texte en backoffice ne casse pas la mise en page
Première colonne du tableau de paramètres fixe, défilement horizontalExpérienceSur mobile, les paramètres ne perdent pas leur en-tête de ligne
Filtrage avec paramètres d'URLExpérience + SEOPartageable et indexable
Animations respectent reduced-motionExpérience + TechniqueAccessibilité et performances
Polices auto-hébergéesTechniqueUne requête DNS en moins, l'accès depuis la Chine n'est pas affecté par les Google Fonts
Bouton de demande de devis toujours visible dans la navigation mobileMétierPossibilité de demander un devis en un clic depuis n'importe quel écran

Format de sortie

  • Adresse du site de test et identifiants backoffice (remettre au backend pour déploiement)
  • Documentation des champs et blocs : quels champs pour chaque modèle, indication du nombre de caractères, dimensions requises pour les images (pour le manuel backoffice)
  • Rapport de performance : captures d'écran PageSpeed mobile / desktop et valeurs
  • Checklist frontend (cocher chaque point de l'étape 5 ci-dessus ; en fin de document, inclure la note de la revue isolée et la liste des textes supprimables, ou mentionner «pas de revue indépendante»)
  • Assemblage des trois captures d'écran (1440 / 390 / reduced-motion, une par modèle)
  • Liste des éléments non implémentés / dégradés : quels éléments de design ont été dégradés à quel point de rupture et pourquoi

Critères de remise et de validation

Avant de remettre aux tests : tous les modèles passés dans Chrome / Safari / Edge / Firefox et iOS / Android ; checklist entièrement validée ; modification d'un texte, remplacement d'une image, ajout d'un produit dans le backoffice ne casse pas la mise en page ; validation frontend du formulaire et état de chargement fonctionnels (l'arrivée du courriel est de la responsabilité du backend) ; animations désactivées en mode reduced-motion.

Interface pipeline (lorsqu'il fonctionne comme agent autonome)

S'adresser à l'utilisateur : le considérer comme un non-technicien. Ne dire que trois types de choses : où on en est (une ligne), les choix métier qu'il doit faire (chaque choix avec une valeur par défaut, max 5), ce qu'il doit faire ensuite (une ligne) ; pas de termes internes comme exécuteur, mode, contrat, reflux, nom de poste, numéro de porte, chemin de fichier. Ne pas s'arrêter sauf pour les choix métier ; l'utilisateur dit «continue» ou «lance» et tu passes à l'étape suivante, sans expliquer «cette fonction ne peut pas descendre en dessous».

Contrat : ne recevoir que les fichiers listés en «Entrée» ci-dessous, ne pas recevoir la conversation complète en amont ; n'écrire que les fichiers listés en «Sortie» ci-dessous, ne pas modifier la production des autres ; ne pas poser de questions en individuel, tout ce qui doit être complété est ajouté dans _内部/待用户决定.md, le PM compile et pose les questions en un seul point d'arrêt (max 5 questions à la fois) ; ne pas appeler horizontalement les agents des autres postes, si une lacune est détectée en amont, écrire un reçu «reflux» et le PM répartit. Cette étape ne se connecte pas à Internet, ne scrape pas de sites.

Entrée : 设计稿/ du design, 视觉系统.md, 组件规范.md, 响应式规则.md ; 文案稿.md de la rédaction (pour la structure DOM et le remplissage de contenu réel) ; liste technique du 方案.md de la planification ; fichiers de ressources du PM. Ne pas commencer sans que le design soit validé.

Sortie : code source du site (dans 交付/, ce qui reste à l'entreprise après le lancement), _内部/06-站点记录/README-技术部分.md (partie déploiement et exécution, écrite pour le collègue qui maintiendra le site plus tard (peut-être toi), en utilisant «tu», sans écrire les détails du processus de sélection, les chemins internes et les termes comme «pipeline / agent / QA / PM» ; le PM l'intégrera dans le README.md racine), _内部/06-站点记录/ avec 字段与区块说明.md (≤ 80 lignes), 性能报告.md (≤ 40 lignes), 前端自查表.md (version cochée, lignes illimitées), 降级说明.md (≤ 30 lignes), et 截图/ (pour chaque modèle, assemblage des trois captures 1440 / 390 / reduced-motion).

Charge de la remise (tout élément manquant est considéré comme non remis, l'aval peut directement refuser) :

  • → Backend : 字段与区块说明.md, pour chaque bloc éditable, le nom du champ CMS, le type, l'obligation, la limite de caractères.
  • → SEO : URL du site de test, 性能报告.md avec les trois valeurs LCP / CLS / INP mesurées et les conditions de test (appareil + réseau).
  • → QA : 前端自查表.md (version cochée, incluant le résultat de la revue isolée ou «pas de revue indépendante»), 降级说明.md (quelles animations dégradées en quoi et dans quelles conditions), 截图/ avec l'assemblage des trois captures.
  • → Design : emplacement précis de l'impossibilité de réalisation ou du conflit de performance + deux alternatives possibles, ne pas se contenter de dire «impossible».

Profondeur de participation : blocs personnalisés ou thème enfant, tous les modèles, catalogue filtrable, composant tableau de paramètres, commutateur multilingue, Compteur / Bento / Carrousel, un point de collage de défilement (si listé).

Critère d'achèvement : checklist validée, performances conformes, modification du contenu en backoffice sans casser la mise en page. Une fois satisfait, déclencher l'intégration backend et les tests.

Reflux : design impossible à réaliser à un point de rupture ou conflit de performance → renvoyer au design avec des alternatives ; texte trop long provoquant un débordement → renvoyer à la rédaction ; ressource de taille insuffisante → renvoyer au PM.

Gestion des situations particulières

SituationComment la détecterQue faire
Les ressources ou textes ne sont pas prêts mais on doit commencerLe planning est là, la checklist des ressources a encore des cases videsOn peut commencer, utiliser des «placeholders de structure réelle» : placer des blocs de remplacement à rapport de proportion fixe pour les images (indiquer le rapport et les dimensions), et du faux texte équivalent en longueur pour les zones de texte ; tous les éléments de placeholder ajoutent un attribut data-placeholder, le test l'utilise pour scanner ; ils doivent être supprimés avant la mise en ligne
Pas d'image produit mais mise en ligne prévueTu décides de lancer d'abord et d'ajouter les images plus tardQuand le champ est vide, le bloc est conditionnellement rendu caché, pas de carte vide, d'image cassée ou de texte alt nu ; s'il n'y a pas d'image produit, la carte produit passe au style «carte info modèle + paramètres» (la spécification de design existe) ; le hero suit une mise en page typographique ; une fois l'image ajoutée, il suffit de la télécharger, la mise en page ne change pas
Images basse résolution seulementLargeur de l'image originale < 800 pxsrcset ne génère que des dimensions n'excédant pas la largeur de l'image originale, le conteneur max-width est limité à la largeur originale, pas d'agrandissement ; pas de mise en hero ; rejeter les images avec filigrane en les renvoyant au PM
Proportions d'images irrégulièresLes images que tu transmets sont mélangées (3:4, 16:9, 1:1)Utiliser un conteneur aspect-ratio uniforme avec object-fit: cover pour le recadrage, ajuster le décalage du sujet avec object-position ; ne pas te demander de recadrer les images
Les images téléchargées dans le backoffice cassent la mise en pageLe collègue qui maintiendra le site plus tard télécharge ses propres imagesAjouter une indication de dimension et une validation de téléchargement (largeur minimale, proportion), compression automatique en WebP ≤ 200 Ko au téléchargement ; le bloc utilise un conteneur fixe qui ne se déforme pas avec l'image
La maquette est irréalisable à un point de rupture ou en conflit de performanceLa grille Bento est trop longue sur mobile, la vidéo en hero dépasse le budgetProposer d'abord une alternative selon l'intention du design (deux colonnes ou repli sur mobile, vidéo dégradée en poster), l'écrire dans le document de dégradation et le renvoyer au design pour validation ; ne pas décider de modifier le desktop par toi-même
Tu changes l'anglais après la validation du texte, ce qui provoque un débordementLe titre passe à la troisième ligne, le texte du bouton passe à la ligneRenvoyer à la rédaction plutôt que de réduire la taille de police ; prévoir une élasticité de ±20% de la longueur du texte dans le conteneur
Le site existant utilise un constructeur de page et tu demandes à le conserverElementor / WPBakery a déjà de nombreuses pagesÉvaluer le volume et le verrouillage ; si nécessaire : désactiver les widgets inutilisés, activer les options de performance, limiter les nœuds DOM par page, recompresser toutes les images ; le rapport de performance doit mentionner la limite ; les nouvelles pages utilisent toujours des blocs
Marché cible avec réseau lentAsie du Sud-Est, Afrique, Amérique latineLa vidéo en hero est dégradée en poster, hero ≤ 250 Ko, polices avec seulement deux graisses, animations réduites aux simples apparitions ; les performances sont testées avec un goulot d'étranglement 3G et enregistrées
Police multilingue manquante de caractèresThaï, Vietnamien, Arabe, RusseAjouter la variante Noto Sans correspondante dans la pile de polices ; tester le retour à la ligne et le miroir RTL pour chaque langue individuellement
Pas d'email professionnel / backend pas prêt pour tester le formulaireLa chaîne back-end n'est pas encore configuréeLe formulaire frontend se connecte d'abord à un stockage temporaire de requêtes et un journal de messagerie local, mentionner «temporaire» ; ne pas remettre un formulaire sans chaîne aux tests
Tu demandes de conserver une page de l'ancien site telle quelleL'ancienne page a du traficMigrer le contenu dans le nouveau modèle, le backend fait une 301 de l'URL ; ne pas intégrer l'HTML de l'ancien site dans le nouveau

Erreurs courantes

  • Utiliser un constructeur de page lourd, page d'accueil de 3 Mo
  • Titres en images ou canvas, Google ne peut pas les lire
  • Polices chargées depuis Google Fonts avec 7 graisses
  • Tester uniquement sur Chrome desktop
  • Modifier un texte dans le backoffice et la page se déforme
  • Filtrage purement côté frontend, URL inchangée, non partageable, non indexable
  • Animations sans prendre en compte reduced-motion, chaque écran bouge
  • Oublier de désactiver le noindex du site de test à la mise en ligne (à inscrire dans la checklist de mise en ligne)
  • Modifier «au passage» l'espacement et les couleurs du design

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Zhuohengli03/b2b-website-skills

出海B2B网站后端/运维岗:询盘链路(表单→邮件到达→备份→通知→thank-you转化)、CMS字段与批量导入、多语言与hreflang配置、域名/DNS/SSL/服务器/CDN(全部注册在公司自己名下)、安全备份、上线切换、留给公司的资产清单;没企业邮箱/没域名/域名在以前的建站公司手里时有兜底路径。涉及表单收不到邮件、询盘进垃圾箱、域名服务器、被黑/备份、产品导入、多语言配置、执行上线时使用。不做页面视觉与DOM实现(归b2b-frontend-dev)、不判定能否上线(归b2b-qa-tester)、不做关键词与内容SEO(归b2b-seo-specialist)。

Zhuohengli03/b2b-website-skills

出海B2B网站英文文案岗:按线框、研究简报和你给的事实清单写给海外采购看的每一页英文(定位句、产品页参数与交易条件、About产能证据、OEM流程、FAQ、CTA与表单文案),每个写法都有业务/体验/SEO/合规归因;事实不全、没有图、只有中文国内资料、你不会英文时也有处理规则(你只核中文事实列)。涉及网站英文怎么写、中文简介翻译、首页那句话、FAQ、按钮文案、审中式英语时使用。不定页面结构与区块(归b2b-site-diagnosis)、不做关键词调研(归b2b-market-research)、不做技术SEO与Schema(归b2b-seo-specialist)、不排版(归b2b-ui-designer)。

Zhuohengli03/b2b-website-skills

出海B2B网站上线后的增长运营岗:询盘承接与台账、内容发布执行、社媒引流、GEO提及、给你和老板看的询盘与转化月报、问题响应;询盘没人跟进、三个月零询盘、上线后仍没图时也有处理规则。涉及上线后怎么运营、有流量没询盘、询盘质量差、觉得网站没效果时使用。不做上线前的任何环节(归各建站岗位)、不做技术SEO与Schema(归b2b-seo-specialist)、不做新页面/新功能的需求整理(归b2b-project-manager)。

Zhuohengli03/b2b-website-skills

出海B2B建站市场与竞品研究员岗:拆解目标市场本土同行、国内头部同行和你提名的参考站,输出采购习惯、你们可证明的差异点、三张关键词表和给各岗位的建议;你手头资料少时怎么从公开来源补齐市场与同行信息,不知道目标市场、行业冷门、只有国内资料时也能开工。涉及竞品分析、看同行网站、这个市场买家喜欢什么、关键词怎么选、拆参考站时使用。不定站型与风格(归b2b-site-diagnosis)、不做关键词落位与Schema(归b2b-seo-specialist)、不写文案(归b2b-copywriter)。

Skills associés