2026 年,SEO 格局比以往任何时候都更加受到特定技术和战略挑战的影响。无论是优化网站性能还是掌握抓取的复杂性,每个方面都对保持竞争优势起着至关重要的作用。HTTP(S) 优化的兴起,尤其是随着 HTTPS 的发展,以及 JavaScript 技术的进步,正在改变搜索引擎对网站的感知和索引方式。锚链接策略对于提升网站可见度至关重要,必须仔细考虑,不仅要满足技术标准,还要增强内容相关性。理解这些挑战并严格应用最佳实践,对于构建强大且可持续的自然搜索引擎优化 (SEO) 至关重要,尤其是在算法日益复杂的背景下。

HTTP(S) 优化的基础知识,助您实现完美的自然 SEO

在讨论 HTTP(S) 优化时,首要任务是确保服务器和用户之间流畅安全的通信。到 2026 年,大多数网站都将迁移到 HTTPS,以确保数据安全并满足搜索引擎的要求。然而,仅仅从 HTTP 切换到 HTTPS 是不够的。此外,还必须确保快速加载时间、最佳用户体验和清晰的技术结构,以方便索引机器人的工作。

常见错误通常源于服务器上的内容管理不善:例如,HTTP 首页无法访问或重定向配置错误。迁移到 HTTPS 的网站必须确保所有页面都能正确重定向到新版本,避免缓存旧 URL 或导致错误。遵循最佳实践,例如启用压缩、使用有效的缓存以及移除不必要的重定向,对于 HTTP(X) 优化至关重要。网站性能很大程度上取决于此,它直接影响跳出率和搜索引擎排名。
SEO 优化:利用 ChatGPT、Perplexity 和 Gemini 等人工智能技术
→ À lire aussi SEO 优化:利用 ChatGPT、Perplexity 和 Gemini 等人工智能技术 有机引用(SEO) · 19 6 月 2025

使用 Search Console 或高级分析解决方案等工具实时监控指标也至关重要,以便快速检测任何故障。网站速度慢或显示 404 错误会严重损害其在搜索引擎以及访问者眼中的信誉。关键在于进行彻底的技术审核,避免依赖自动化工具:人眼结合正确的策略才能更好地控制这一关键步骤。

探索最佳 SEO 优化策略,提升网站可见度,吸引更多优质访客。

如何掌握 JavaScript 以提升索引和搜索引擎排名。

了解我们利用 RankerFox 对团购 SEO 的分析
→ À lire aussi 了解我们利用 RankerFox 对团购 SEO 的分析 有机引用(SEO) · 01 6 月 2025

JavaScript 通常被视为提升用户体验的工具,但它在 2026 年也给 SEO 带来了挑战。虽然大多数搜索引擎都能解析 JavaScript,但仍需采取严谨的方法来防止在抓取或索引过程中遗漏重要内容。主要问题在于客户端渲染:如果搜索引擎无法正确执行 JavaScript,则可能会错过关键页面或误解内容层级结构。掌握 SEO 中 JavaScript 的最佳实践包括实施服务器端渲染 (SSR) 或预渲染,这允许搜索引擎访问内容的静态版本。确保加载后锚标签的一致性、优化脚本以防止速度变慢,以及保证在不使用 JavaScript 的情况下也能访问重要内容,这些都是提升性能的步骤。此外,使用像 UPLIX 指南这样的专业工具对于了解如何调整代码和避免常见陷阱至关重要。掌握这些技巧可以在保持流畅用户体验的同时,提升索引效果。

最近的一项研究表明,73% 的 SEO 排名靠前的网站都采用了服务器端或预渲染策略,以确保其在搜索结果中的可见性。如今,关键不再仅仅是整合内容,而是要确保所有内容都能被所有人访问和理解,包括那些不支持 JavaScript 的用户。

利用锚文本链接策略提升您的自然搜索排名 锚文本在内容层级结构和页面间关联性方面发挥着关键作用。2026 年,谷歌将进一步重视自然、可见且信息丰富的锚文本,因为这有助于搜索引擎抓取并提升其工具对网站的理解。有效的策略是避免仅使用 `` 等属性或隐藏文本,因为这些可能被视为操纵手段,甚至可能导致惩罚。应优先使用可见的描述性文本,为用户和搜索引擎提供上下文信息。</a></p> <p>例如,与其插入一个简单的“点击此处”的指向服务页面的链接,不如使用“了解我们的 <a href="https://kevin-grillot.fr/">SEO</a> 解决方案,提升您的排名”之类的自然文本。这有助于搜索引擎更好地理解每个链接的目的,从而提升网站的整体 SEO 效果。另一种策略是使用逻辑清晰的内部链接结构来构建链接,促进不同页面之间的 SEO 价值流动,同时避免过多或垃圾链接。管理这些链接还应遵循内容层级结构,确保每个页面的价值与其重要性成正比。要深入了解这些策略,请参阅我们关于锚文本标签管理和技术 SEO 的综合指南。</p> <figure class="wp-block-image size-full"><img decoding="async" width="1200" height="627" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20627'%3E%3C/svg%3E" alt="" class="wp-image-37236" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/02/seo-optimization-2.jpg"><noscript><img decoding="async" width="1200" height="627" src="https://kevin-grillot.fr/wp-content/uploads/2026/02/seo-optimization-2.jpg" alt="" class="wp-image-37236"></noscript></figure> <figure class="wp-block-table"><table> <thead> <tr> <th>趋势表明,良好的内部链接结构,结合精心选择的锚文本,对于提升网站的自然搜索排名至关重要。更重要的是,清晰可见、一致且相关的链接还能改善用户体验,并鼓励用户重复访问网站。</th> <th></th> <th>运用有效的策略优化您网站的 <a href="https://kevin-grillot.fr/">SEO</a>,提升在线曝光度,吸引更多访客。</th> </tr> </thead> <tbody> <tr> <td><strong>关键要素</strong></td> <td></td> <td>重要性</td> </tr> <tr> <td><strong>实用技巧</strong></td> <td>可见文本</td> <td>高</td> </tr> <tr> <td><strong>撰写描述性强且自然的文本</strong></td> <td></td> <td>内部链接</td> </tr> </tbody> </table></figure> <div class="kg-encart-contact" role="complementary" aria-label="Prendre contact"> <div class="kg-encart-contact-inner"> <div class="kg-encart-contact-icon" aria-hidden="true"> <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> </div> <div class="kg-encart-contact-body"> <h4 class="kg-encart-contact-title">Vous avez un projet spécifique ?</h4> <p class="kg-encart-contact-desc">Kevin Grillot accompagne entrepreneurs et PME en <strong>SEO</strong>, <strong>webmarketing</strong> et <strong>stratégie digitale</strong>. Bénéficiez d'un audit ou d'un accompagnement sur-mesure.</p> </div> <a href="https://kevin-grillot.fr/me-contacter" class="kg-encart-contact-btn"> Discutons de votre projet <svg width="14" height="14" viewBox="0 0 448 512" fill="currentColor" aria-hidden="true"><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg> </a> </div> </div><h2 class="wp-block-heading">至关重要</h2> <p>构建链接结构以反映内容层级</p> <p></p> <p>链接相关性 <a href="https://les4h.fr/le-monde-des-goossips-seo-analyses-evaluateurs-de-qualite-et-nouvelles-requetes/">必要</a> 避免垃圾链接或脱离上下文的链接</p> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/%e5%a6%82%e4%bd%95%e5%9c%a82026%e5%b9%b4%e4%bc%98%e5%8c%96%e6%82%a8%e7%9a%84xml%e7%ab%99%e7%82%b9%e5%9c%b0%e5%9b%be%e4%bb%a5%e6%8f%90%e5%8d%87seo/" class="kg-encart-article" aria-label="Lire aussi : 如何在2026年优化您的XML站点地图以提升SEO"> <img width="1200" height="627" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20627'%3E%3C/svg%3E" alt="如何在2026年优化您的XML站点地图以提升SEO" class="kg-encart-img" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/01/xml-sitemap-optimization.jpg"><noscript><img width="1200" height="627" src="https://kevin-grillot.fr/wp-content/uploads/2026/01/xml-sitemap-optimization.jpg" alt="如何在2026年优化您的XML站点地图以提升SEO" class="kg-encart-img"></noscript> <div class="kg-encart-text"> <span class="kg-encart-label">→ À lire aussi</span> <span class="kg-encart-title">如何在2026年优化您的XML站点地图以提升SEO</span> <span class="kg-encart-meta">有机引用(SEO) · 08 1 月 2026</span> </div> </a><h2 class="wp-block-heading"></h2> <p>技术 <a href="https://kevin-grillot.fr/">SEO</a> 中的常见错误:渲染不佳对索引的影响</p> <p> <strong>2026 年需要避免的陷阱之一是忽视 Google 所见内容与用户所体验内容之间的一致性。例如,页面在主要内容加载之前显示“不可用”消息可能会产生负面信号。如果 Googlebot 在抓取过程中只看到此消息,则可能会认为该页面离线或不相关,从而损害其排名。</strong> </p> <p>如果页面依赖 JavaScript 动态显示内容,则此现象更为严重。如果缓存或渲染效果不佳,Google 可能会索引网站的不完整或过时版本。建议的做法是一次性加载所有重要内容,并且不对用户或爬虫程序显示任何加载步骤。</p> <figure class="wp-block-image size-full"><img decoding="async" width="1200" height="627" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20627'%3E%3C/svg%3E" alt="" class="wp-image-37237" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/02/seo-optimization-3.jpg"><noscript><img decoding="async" width="1200" height="627" src="https://kevin-grillot.fr/wp-content/uploads/2026/02/seo-optimization-3.jpg" alt="" class="wp-image-37237"></noscript></figure> <h3 class="wp-block-heading">要验证 Google 实际看到的页面内容,有两种简单的方法:一是使用终端中的 `curl` 命令检查原始响应;二是更好的选择,使用 Search Console 中的网址检查工具进行实时测试。如果后者返回的版本与浏览器中显示的版本不同,则需要进行调整。另一个常见的错误是通过 JavaScript 显示可用性或加载消息,这会给人一种页面已准备就绪的错觉,而实际上,Google 并没有看到所有内容。</h3> <ul class="wp-block-list"><li></li><li>利用有效的锚链接策略提升曝光度的最佳实践</li><li>要超越基础指标,你需要整合智能锚文本策略。首要原则是优先使用可见、描述性强且自然的锚文本——因为这既有利于搜索引擎优化 (<a href="https://kevin-grillot.fr/">SEO</a>),也有利于用户体验。到 2026 年,谷歌将越来越重视链接内容与目标页面的一致性。</li><li></li></ul> {“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”Pourquoi lu2019optimisation HTTP(S) est-elle cruciale en 2026?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Elle garantit la rapiditu00e9, la su00e9curitu00e9 et la compatibilitu00e9 avec les moteurs de recherche, facteurs essentiels au bon classement et u00e0 une expu00e9rience utilisateur optimisu00e9e.”}},{“@type”:”Question”,”name”:”Comment bien utiliser JavaScript pour son <a href="https://kevin-grillot.fr/">SEO</a>?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Adopter des techniques comme le rendu cu00f4tu00e9 serveur ou le pru00e9-rendu pour assurer une <a href="https://kevin-grillot.fr/referencement-organique-seo/lart-et-la-science-de-lindexation-pour-un-seo-optimise-un-guide-complet/">indexation</a> correcte de tout le contenu dynamique, tout en respectant les bonnes pratiques du2019optimisation.”}},{“@type”:”Question”,”name”:”Quels sont les piu00e8ges u00e0 u00e9viter avec les liens du2019ancrage?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Privilu00e9gier toujours un texte descriptif visible, u00e9viter de masquer lu2019intention ou du2019utiliser des textes gu00e9nu00e9riques, et structurer un <a href="https://kevin-grillot.fr/referencement-organique-seo/la-notion-de-profondeur-en-seo-un-voyage-au-coeur-du-referencement/">maillage</a> cohu00e9rent pour favoriser la pertinence.”}}]} <h3>一个常见的错误是仅仅依赖 `<title>` 之类的属性,或者将链接的真正含义隐藏在通用或不可见的文本背后。目前的趋势是采用更透明的方法:将每个链接与反映内容的关键词关联起来,同时保持自然易读。例如,如果你链接到一个专门介绍本地 SEO 的页面,可以使用“使用我们的策略优化您的本地曝光度”这样的文本,而不是生硬的“点击这里”。</h3> <p></p> <h3>另一个策略是创建结构化的内部链接,避免盲目链接的堆积,从而为用户和谷歌提供一条合乎逻辑的路径。此外,使用一些工具来分析链接质量并确保其相关性也很有帮助:这可以保证每个链接都能真正促进 SEO 增长。</h3> <p></p> <h3>探索最佳 SEO 技巧,优化您的网站,提升在搜索引擎中的排名。</h3> <p></p> <!-- ENCART LEAD MAGNET CHECKLIST SEO --> <div style="margin-top:3rem;padding:2rem;border-radius:16px;background:linear-gradient(135deg,rgba(16,185,129,0.08),rgba(37,99,235,0.06));border:1px solid rgba(16,185,129,0.2);"> <div style="display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap;"> <div style="flex-shrink:0;width:48px;height:48px;border-radius:12px;background:rgba(16,185,129,0.15);display:flex;align-items:center;justify-content:center;"> <svg width="24" height="24" fill="none" viewBox="0 0 24 24" stroke="#10b981" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </div> <div style="flex:1;min-width:200px;"> <h3 style="font-family:'Outfit',sans-serif;font-weight:800;font-size:1.2rem;color:#fff;margin-bottom:0.25rem;"> 📋 Checklist SEO gratuite — 50 points à vérifier </h3> <p style="color:#9ca3af;line-height:1.6;margin-bottom:1rem;font-size:0.95rem;"> Téléchargez ma checklist SEO complète : technique, contenu, netlinking. Le même outil que j'utilise pour mes clients. </p> <a href="https://kevin-grillot.fr/checklist-seo/" style="display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;background:#10b981;color:#fff;font-weight:700;font-size:0.9rem;text-decoration:none;"> <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/></svg> Télécharger la checklist </a> </div> </div> </div> <!-- ENCART SERVICES KEVIN GRILLOT --> <div style="margin-top:2rem;padding:2rem;border-radius:16px;background:linear-gradient(135deg,rgba(37,99,235,0.08),rgba(16,185,129,0.08));border:1px solid rgba(37,99,235,0.2);"> <h3 style="font-family:'Outfit',sans-serif;font-weight:800;font-size:1.3rem;color:#fff;margin-bottom:0.5rem;"> Besoin de visibilité pour votre activité ? </h3> <p style="color:#9ca3af;line-height:1.7;margin-bottom:1.5rem;"> Je suis Kevin Grillot, consultant SEO freelance certifié. J'accompagne les TPE et PME en référencement naturel, Google Ads, Meta Ads et création de site internet. </p> <div style="display:flex;flex-wrap:wrap;gap:0.75rem;"> <a href="https://kevin-grillot.fr/seo-geo/" style="display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;background:#2563eb;color:#fff;font-weight:700;font-size:0.9rem;text-decoration:none;">SEO & GEO</a> <a href="https://kevin-grillot.fr/google-ads/" style="display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;background:#f97316;color:#fff;font-weight:700;font-size:0.9rem;text-decoration:none;">Google Ads</a> <a href="https://kevin-grillot.fr/meta-ads/" style="display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;background:#e91e8c;color:#fff;font-weight:700;font-size:0.9rem;text-decoration:none;">Meta Ads</a> <a href="https://kevin-grillot.fr/creation-site/" style="display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;background:#10b981;color:#fff;font-weight:700;font-size:0.9rem;text-decoration:none;">Création de site</a> </div> </div> <!-- TAGS --> <div class="mt-12 pt-8 border-t border-white/5 flex flex-wrap gap-2 items-center"> <span class="text-xs text-gray-600 uppercase tracking-widest font-bold mr-2">Tags :</span> <a href="https://kevin-grillot.fr/zh/tag/https%e4%bc%98%e5%8c%96-zh/" class="tag-pill">#https优化</a> <a href="https://kevin-grillot.fr/zh/tag/http%e4%bc%98%e5%8c%96-zh/" class="tag-pill">#http优化</a> <a href="https://kevin-grillot.fr/zh/tag/javascript-%e7%b2%be%e9%80%9a-zh/" class="tag-pill">#JavaScript 精通</a> <a href="https://kevin-grillot.fr/zh/tag/%e5%85%ab%e5%8d%a6%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96-zh/" class="tag-pill">#八卦搜索引擎优化</a> <a href="https://kevin-grillot.fr/zh/tag/%e9%94%9a%e5%ae%9a%e7%ad%96%e7%95%a5-zh/" class="tag-pill">#锚定策略</a> </div> <!-- Signature Auteur --> <div class="mt-16 bg-[#0a0a0a] rounded-xl p-8 flex flex-col md:flex-row items-center gap-8 shadow-2xl border border-white/5 relative overflow-hidden group"> <div class="absolute inset-0 bg-blue-600/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div> <div class="relative z-10 flex-shrink-0"> <div class="w-24 h-24 rounded-full p-1 border-2 border-blue-600 shadow-[0_0_20px_rgba(37,99,235,0.3)]"> <div class="w-full h-full rounded-full overflow-hidden bg-gray-800"> <img width="768" height="1024" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20768%201024'%3E%3C/svg%3E" alt="Kevin Grillot" class="!rounded-full w-full h-full object-cover object-top transform hover:scale-110 transition-transform duration-500" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2022/01/31-min-768x1024.jpg.avif"><noscript><img width="768" height="1024" src="https://kevin-grillot.fr/wp-content/uploads/2022/01/31-min-768x1024.jpg.avif" alt="Kevin Grillot" class="!rounded-full w-full h-full object-cover object-top transform hover:scale-110 transition-transform duration-500"></noscript> </div> </div> </div> <div class="relative z-10 text-center md:text-left"> <p class="text-blue-500 text-xs font-black uppercase tracking-[0.15em] mb-2">Écrit par</p> <h3 class="text-white text-3xl font-bold font-heading leading-tight mb-2">Kevin Grillot</h3> <p class="text-gray-400 text-sm font-medium leading-relaxed mb-4">Consultant Webmarketing & Expert SEO.</p> <a href="https://kevin-grillot.fr/blog" class="inline-flex items-center gap-2 text-xs text-blue-400 hover:text-blue-300 transition-colors font-bold uppercase tracking-widest" style="border-bottom:none;text-decoration:none"> Voir tous les articles → </a> </div> </div> <!-- Lead Magnet — Checklist SEO Local --> <section class="kg-leadmagnet-section" id="kg-leadmagnet" style="--lm-accent:#2563eb;"> <div class="kg-leadmagnet-container"> <div class="kg-leadmagnet-card"> <div class="kg-leadmagnet-glow"></div> <div class="kg-leadmagnet-content"> <div class="kg-leadmagnet-badge"><i class="fas fa-gift"></i> Ressource gratuite</div> <h2 class="kg-leadmagnet-title">Checklist SEO Local gratuite — 15 points à vérifier</h2> <p class="kg-leadmagnet-sub">Téléchargez notre checklist et vérifiez si votre site est optimisé pour Google.</p> <ul class="kg-leadmagnet-points"> <li><i class="fas fa-check-circle"></i> 15 points essentiels pour le SEO local</li> <li><i class="fas fa-check-circle"></i> Format actionnable et imprimable</li> <li><i class="fas fa-check-circle"></i> Utilisé par +200 entrepreneurs</li> </ul> <form class="kg-leadmagnet-form" id="kg-leadmagnet-form" data-ajax="https://kevin-grillot.fr/wp-admin/admin-ajax.php" data-nonce="9fab4dc34d"> <div class="kg-leadmagnet-fields"> <input type="text" name="kg_lm_prenom" placeholder="Votre prénom" required autocomplete="given-name" class="kg-leadmagnet-input"> <input type="email" name="kg_lm_email" placeholder="Votre email" required autocomplete="email" class="kg-leadmagnet-input"> <!-- Honeypot --> <div style="position:absolute;left:-9999px;" aria-hidden="true"> <input type="text" name="kg_lm_website" tabindex="-1" autocomplete="off"> </div> <button type="submit" class="kg-leadmagnet-btn"> <i class="fas fa-download"></i> Télécharger gratuitement </button> </div> <p class="kg-leadmagnet-notice"><i class="fas fa-lock"></i> Vos données restent confidentielles. Aucun spam.</p> </form> <div class="kg-leadmagnet-success" id="kg-leadmagnet-success" style="display:none;"> <div class="kg-leadmagnet-success-icon"><i class="fas fa-check-circle"></i></div> <h3>Merci ! Votre checklist est prête.</h3> <p>Cliquez ci-dessous pour la télécharger :</p> <a href="" class="kg-leadmagnet-download-link" id="kg-leadmagnet-download" target="_blank" rel="noopener"> <i class="fas fa-file-download"></i> Télécharger la Checklist SEO </a> </div> </div> </div> </div> <style> .kg-leadmagnet-section { padding: 4rem 1.5rem; position: relative; } .kg-leadmagnet-container { max-width: 720px; margin: 0 auto; } .kg-leadmagnet-card { position: relative; background: rgba(10,10,20,0.85); border: 1px solid rgba(255,255,255,0.08); border-radius: 1.25rem; padding: 3rem 2.5rem; overflow: hidden; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05); } .kg-leadmagnet-glow { position: absolute; top: -60px; right: -60px; width: 200px; height: 200px; background: var(--lm-accent); opacity: 0.08; border-radius: 50%; filter: blur(80px); pointer-events: none; } .kg-leadmagnet-content { position: relative; z-index: 1; } .kg-leadmagnet-badge { display: inline-flex; align-items: center; gap: 0.4rem; background: rgba(37,99,235,0.1); color: var(--lm-accent); font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.4rem 1rem; border-radius: 999px; margin-bottom: 1.25rem; border: 1px solid rgba(37,99,235,0.2); } .kg-leadmagnet-title { color: #fff; font-size: 1.75rem; font-weight: 800; line-height: 1.2; margin: 0 0 0.75rem; font-family: 'Outfit', sans-serif; } .kg-leadmagnet-sub { color: #9ca3af; font-size: 0.95rem; margin: 0 0 1.5rem; line-height: 1.6; } .kg-leadmagnet-points { list-style: none; padding: 0; margin: 0 0 2rem; display: flex; flex-direction: column; gap: 0.5rem; } .kg-leadmagnet-points li { color: #d1d5db; font-size: 0.85rem; display: flex; align-items: center; gap: 0.6rem; } .kg-leadmagnet-points li i { color: var(--lm-accent); font-size: 0.8rem; } .kg-leadmagnet-fields { display: flex; flex-wrap: wrap; gap: 0.75rem; position: relative; } .kg-leadmagnet-input { flex: 1 1 180px; padding: 0.85rem 1rem; border-radius: 0.6rem; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.04); color: #e5e7eb; font-size: 0.9rem; outline: none; transition: border-color 0.2s; } .kg-leadmagnet-input:focus { border-color: var(--lm-accent); } .kg-leadmagnet-input::placeholder { color: #6b7280; } .kg-leadmagnet-btn { flex: 1 1 100%; padding: 0.9rem 1.5rem; border: none; border-radius: 0.6rem; background: var(--lm-accent); color: #fff; font-size: 0.95rem; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; transition: opacity 0.2s, transform 0.2s; } .kg-leadmagnet-btn:hover { opacity: 0.9; transform: translateY(-1px); } .kg-leadmagnet-btn:disabled { opacity: 0.5; cursor: wait; } .kg-leadmagnet-notice { font-size: 0.7rem; color: #4b5563; text-align: center; margin-top: 0.75rem; } .kg-leadmagnet-success { text-align: center; } .kg-leadmagnet-success-icon { font-size: 2.5rem; color: #22c55e; margin-bottom: 1rem; } .kg-leadmagnet-success h3 { color: #fff; font-size: 1.3rem; font-weight: 700; margin: 0 0 0.5rem; } .kg-leadmagnet-success p { color: #9ca3af; font-size: 0.9rem; margin: 0 0 1.5rem; } .kg-leadmagnet-download-link { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.85rem 2rem; border-radius: 0.6rem; background: var(--lm-accent); color: #fff; font-weight: 700; font-size: 0.95rem; text-decoration: none; transition: opacity 0.2s; } .kg-leadmagnet-download-link:hover { opacity: 0.9; color: #fff; } @media(max-width:640px) { .kg-leadmagnet-card { padding: 2rem 1.5rem; } .kg-leadmagnet-title { font-size: 1.35rem; } .kg-leadmagnet-fields { flex-direction: column; } .kg-leadmagnet-input { flex: 1 1 100%; } } </style> </section> <script type="rocketlazyloadscript"> (function(){ var form = document.getElementById('kg-leadmagnet-form'); if(!form) return; form.addEventListener('submit', function(e){ e.preventDefault(); var btn = form.querySelector('.kg-leadmagnet-btn'); btn.disabled = true; btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Envoi en cours...'; var fd = new FormData(form); fd.append('action', 'kg_lead_magnet_submit'); fd.append('nonce', form.dataset.nonce); fetch(form.dataset.ajax, { method: 'POST', body: fd }) .then(function(r){ return r.json(); }) .then(function(data){ if(data.success){ form.style.display = 'none'; var successEl = document.getElementById('kg-leadmagnet-success'); successEl.style.display = 'block'; document.getElementById('kg-leadmagnet-download').href = data.data.download_url; sessionStorage.setItem('kg_lm_filled', '1'); } else { btn.disabled = false; btn.innerHTML = '<i class="fas fa-download"></i> T\u00e9l\u00e9charger gratuitement'; alert(data.data || 'Une erreur est survenue.'); } }) .catch(function(){ btn.disabled = false; btn.innerHTML = '<i class="fas fa-download"></i> T\u00e9l\u00e9charger gratuitement'; alert('Erreur r\u00e9seau. Veuillez r\u00e9essayer.'); }); }); })(); </script> </article> <!-- SIDEBAR DROITE — Derniers articles --> <aside class="hidden lg:block lg:col-span-2"> <div class="sticky top-32 flex flex-col gap-4"> <p class="text-[10px] uppercase tracking-widest font-bold text-gray-600 mb-1">Derniers articles</p> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/consultant-seo-local-guide-complet-2025-tarifs-10/" class="sidebar-post"> <img width="150" height="150" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E" class="sidebar-post-thumb wp-post-image" alt="Consultant SEO Local : Guide Complet 2025 & Tarifs" decoding="async" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-150x150.jpeg" /><noscript><img width="150" height="150" src="https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-150x150.jpeg" class="sidebar-post-thumb wp-post-image" alt="Consultant SEO Local : Guide Complet 2025 & Tarifs" decoding="async" /></noscript> <div class="flex-1 min-w-0"> <p class="text-white text-sm font-semibold leading-snug line-clamp-2 mb-1">Consultant SEO Local : Guide Complet 2025 & Tarifs</p> <p class="text-gray-600 text-xs">02 6 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/consultant-seo-freelance-comment-choisir-le-bon-expert-en-2026-10/" class="sidebar-post"> <img width="150" height="150" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E" class="sidebar-post-thumb wp-post-image" alt="Consultant SEO Freelance : Comment Choisir le Bon Expert en 2026" decoding="async" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-150x150.jpeg" /><noscript><img width="150" height="150" src="https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-150x150.jpeg" class="sidebar-post-thumb wp-post-image" alt="Consultant SEO Freelance : Comment Choisir le Bon Expert en 2026" decoding="async" /></noscript> <div class="flex-1 min-w-0"> <p class="text-white text-sm font-semibold leading-snug line-clamp-2 mb-1">Consultant SEO Freelance : Comment Choisir le Bon Expert en 2026</p> <p class="text-gray-600 text-xs">01 6 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/agence-seo-lille-comment-bien-choisir-en-2025-guide-checklist-10/" class="sidebar-post"> <div class="sidebar-post-placeholder"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#2563eb" stroke-width="1.5" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg> </div> <div class="flex-1 min-w-0"> <p class="text-white text-sm font-semibold leading-snug line-clamp-2 mb-1">Agence SEO Lille : comment bien choisir en 2025 | Guide + checklist</p> <p class="text-gray-600 text-xs">31 5 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e5%88%9b%e4%b8%9a-zh/consultant-en-marketing-digital-guide-complet-2024-parcours-carriere-10/" class="sidebar-post"> <picture class="sidebar-post-thumb wp-post-image" decoding="async"> <source type="image/avif" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-150x150.jpeg.avif"/> <img width="150" height="150" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E" alt="Consultant en Marketing Digital : Guide Complet 2024 + Parcours Carrière" decoding="async" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-150x150.jpeg"/><noscript><img width="150" height="150" src="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-150x150.jpeg" alt="Consultant en Marketing Digital : Guide Complet 2024 + Parcours Carrière" decoding="async"/></noscript> </picture> <div class="flex-1 min-w-0"> <p class="text-white text-sm font-semibold leading-snug line-clamp-2 mb-1">Consultant en Marketing Digital : Guide Complet 2024 + Parcours Carrière</p> <p class="text-gray-600 text-xs">31 5 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/agence-seo-shopify-guide-complet-pour-booster-votre-boutique-en-2025-10/" class="sidebar-post"> <picture class="sidebar-post-thumb wp-post-image" decoding="async"> <source type="image/avif" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-270637-4-150x150.jpeg.avif"/> <img width="150" height="150" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E" alt="Agence SEO Shopify : Guide complet pour booster votre boutique en 2025" decoding="async" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-270637-4-150x150.jpeg"/><noscript><img width="150" height="150" src="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-270637-4-150x150.jpeg" alt="Agence SEO Shopify : Guide complet pour booster votre boutique en 2025" decoding="async"/></noscript> </picture> <div class="flex-1 min-w-0"> <p class="text-white text-sm font-semibold leading-snug line-clamp-2 mb-1">Agence SEO Shopify : Guide complet pour booster votre boutique en 2025</p> <p class="text-gray-600 text-xs">29 5 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/blog" class="mt-2 text-center text-xs text-blue-500 hover:text-blue-400 font-bold uppercase tracking-widest transition-colors block" style="text-decoration:none;border-bottom:none"> Voir tous les articles → </a> </div> </aside> </div> </div> <!-- ========================================== ARTICLES LIÉS (même catégorie) =========================================== --> <section class="max-w-7xl mx-auto px-6 mt-24 pt-16 border-t border-white/5"> <div class="flex items-center justify-between mb-10"> <div> <p class="text-blue-500 text-xs font-black uppercase tracking-widest mb-1">Continuer sur le même sujet</p> <h2 class="text-white text-3xl font-bold font-heading" style="font-family:'Outfit',sans-serif">Articles liés</h2> </div> <a href="https://kevin-grillot.fr/zh/category/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/" class="hidden md:flex items-center gap-2 text-xs text-gray-400 hover:text-blue-400 transition-colors font-bold uppercase tracking-widest" style="text-decoration:none;border-bottom:none"> Voir la catégorie <svg width="12" height="12" viewBox="0 0 448 512" fill="currentColor" aria-hidden="true"><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg> </a> </div> <div class="grid grid-cols-1 md:grid-cols-3 gap-6"> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/2025-%e5%b9%b4%e6%8f%90%e5%8d%87-seo-%e7%9a%84%e5%8d%81%e5%a4%a7%e5%bf%85%e5%a4%87%e7%bd%91%e7%ab%99%e6%89%98%e7%ae%a1%e6%9c%8d%e5%8a%a1%e5%95%86/" class="related-card"> <div style="overflow:hidden"> <img width="768" height="401" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20768%20401'%3E%3C/svg%3E" class="related-card-img wp-post-image" alt="hébergement seo fiable et performant pour optimiser votre visibilité en ligne, améliorer le classement de votre site et garantir une vitesse de chargement optimale." decoding="async" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2025/12/seo-hosting.jpg" /><noscript><img width="768" height="401" src="https://kevin-grillot.fr/wp-content/uploads/2025/12/seo-hosting.jpg" class="related-card-img wp-post-image" alt="hébergement seo fiable et performant pour optimiser votre visibilité en ligne, améliorer le classement de votre site et garantir une vitesse de chargement optimale." decoding="async" /></noscript> </div> <div class="p-5 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">有机引用(SEO)</span> <h3 class="text-white font-bold text-lg leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">2025 年提升 SEO 的十大必备网站托管服务商</h3> <div class="flex items-center justify-between text-gray-500 text-xs mt-auto"> <span>28 12 月 2025</span> <span class="text-blue-500 font-bold">Lire →</span> </div> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/%e6%90%9c%e7%b4%a2%e6%84%8f%e5%9b%be%e5%af%b9%e4%bc%98%e5%8c%96%e7%bd%91%e7%ab%99%e5%86%85%e5%ae%b9%e6%9c%89%e5%a4%9a%e9%87%8d%e8%a6%81%ef%bc%9f/" class="related-card"> <div style="overflow:hidden"> <img width="768" height="401" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20768%20401'%3E%3C/svg%3E" class="related-card-img wp-post-image" alt="découvrez la notion de search intent et apprenez à optimiser votre contenu pour répondre précisément aux attentes des utilisateurs lors de leurs recherches en ligne." decoding="async" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/01/search-intent.jpg" /><noscript><img width="768" height="401" src="https://kevin-grillot.fr/wp-content/uploads/2026/01/search-intent.jpg" class="related-card-img wp-post-image" alt="découvrez la notion de search intent et apprenez à optimiser votre contenu pour répondre précisément aux attentes des utilisateurs lors de leurs recherches en ligne." decoding="async" /></noscript> </div> <div class="p-5 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">有机引用(SEO)</span> <h3 class="text-white font-bold text-lg leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">搜索意图对优化网站内容有多重要?</h3> <div class="flex items-center justify-between text-gray-500 text-xs mt-auto"> <span>13 1 月 2026</span> <span class="text-blue-500 font-bold">Lire →</span> </div> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/%e4%bc%98%e5%8c%96%e6%82%a8%e7%9a%84%e7%ab%99%e7%82%b9%e5%9c%b0%e5%9b%be%e5%92%8c%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd%ef%bc%8c%e4%bb%a5%e6%8f%90%e9%ab%98%e6%82%a8%e7%9a%84%e5%86%85%e5%ae%b9%e5%9c%a8-b/" class="related-card"> <div style="overflow:hidden"> <img width="768" height="401" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20768%20401'%3E%3C/svg%3E" class="related-card-img wp-post-image" alt="découvrez tout ce que vous devez savoir sur les sitemaps, leur importance pour le référencement et comment les créer pour améliorer la visibilité de votre site web dans les moteurs de recherche." decoding="async" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-768x401.jpg 768w, https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-300x157.jpg 300w, https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-1024x535.jpg 1024w, https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps.jpg 1200w" data-lazy-sizes="(max-width: 768px) 100vw, 768px" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-768x401.jpg" /><noscript><img width="768" height="401" src="https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-768x401.jpg" class="related-card-img wp-post-image" alt="découvrez tout ce que vous devez savoir sur les sitemaps, leur importance pour le référencement et comment les créer pour améliorer la visibilité de votre site web dans les moteurs de recherche." decoding="async" srcset="https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-768x401.jpg 768w, https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-300x157.jpg 300w, https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps-1024x535.jpg 1024w, https://kevin-grillot.fr/wp-content/uploads/2025/08/sitemaps.jpg 1200w" sizes="(max-width: 768px) 100vw, 768px" /></noscript> </div> <div class="p-5 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">有机引用(SEO)</span> <h3 class="text-white font-bold text-lg leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">优化您的站点地图和人工智能,以提高您的内容在 Bing 上的呈现效果</h3> <div class="flex items-center justify-between text-gray-500 text-xs mt-auto"> <span>02 8 月 2025</span> <span class="text-blue-500 font-bold">Lire →</span> </div> </div> </a> </div> </section> <!-- ========================================== DERNIERS ARTICLES (4 cartes) =========================================== --> <section class="max-w-7xl mx-auto px-6 mt-20 pt-16 border-t border-white/5"> <div class="flex items-center justify-between mb-10"> <div> <p class="text-gray-500 text-xs font-black uppercase tracking-widest mb-1">Ne manquez rien</p> <h2 class="text-white text-3xl font-bold font-heading" style="font-family:'Outfit',sans-serif">Derniers articles</h2> </div> <a href="https://kevin-grillot.fr/blog" class="hidden md:flex items-center gap-2 text-xs text-gray-400 hover:text-blue-400 transition-colors font-bold uppercase tracking-widest" style="text-decoration:none;border-bottom:none"> Tout voir <svg width="12" height="12" viewBox="0 0 448 512" fill="currentColor" aria-hidden="true"><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg> </a> </div> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-5"> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/consultant-seo-local-guide-complet-2025-tarifs-10/" class="related-card"> <div style="overflow:hidden"> <img width="300" height="200" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20200'%3E%3C/svg%3E" class="related-card-img wp-post-image" alt="Consultant SEO Local : Guide Complet 2025 & Tarifs" decoding="async" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-300x200.jpeg 300w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-1024x682.jpeg 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-768x512.jpeg 768w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-1536x1024.jpeg 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728.jpeg 1880w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-300x200.jpeg" /><noscript><img width="300" height="200" src="https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-300x200.jpeg" class="related-card-img wp-post-image" alt="Consultant SEO Local : Guide Complet 2025 & Tarifs" decoding="async" srcset="https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-300x200.jpeg 300w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-1024x682.jpeg 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-768x512.jpeg 768w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728-1536x1024.jpeg 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/06/pexels-photo-5917728.jpeg 1880w" sizes="(max-width: 300px) 100vw, 300px" /></noscript> </div> <div class="p-4 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">有机引用(SEO)</span> <h3 class="text-white font-bold text-base leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">Consultant SEO Local : Guide Complet 2025 & Tarifs</h3> <p class="text-gray-500 text-xs">02 6 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/consultant-seo-freelance-comment-choisir-le-bon-expert-en-2026-10/" class="related-card"> <div style="overflow:hidden"> <img width="300" height="199" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20199'%3E%3C/svg%3E" class="related-card-img wp-post-image" alt="Consultant SEO Freelance : Comment Choisir le Bon Expert en 2026" decoding="async" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-300x199.jpeg 300w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-1024x680.jpeg 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-768x510.jpeg 768w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-1536x1020.jpeg 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547.jpeg 1880w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-300x199.jpeg" /><noscript><img width="300" height="199" src="https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-300x199.jpeg" class="related-card-img wp-post-image" alt="Consultant SEO Freelance : Comment Choisir le Bon Expert en 2026" decoding="async" srcset="https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-300x199.jpeg 300w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-1024x680.jpeg 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-768x510.jpeg 768w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547-1536x1020.jpeg 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/06/office-freelancer-computer-business-38547.jpeg 1880w" sizes="(max-width: 300px) 100vw, 300px" /></noscript> </div> <div class="p-4 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">有机引用(SEO)</span> <h3 class="text-white font-bold text-base leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">Consultant SEO Freelance : Comment Choisir le Bon Expert en 2026</h3> <p class="text-gray-500 text-xs">01 6 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/agence-seo-lille-comment-bien-choisir-en-2025-guide-checklist-10/" class="related-card"> <div class="related-card-img-placeholder"> <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#2563eb" stroke-width="1" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg> </div> <div class="p-4 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">有机引用(SEO)</span> <h3 class="text-white font-bold text-base leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">Agence SEO Lille : comment bien choisir en 2025 | Guide + checklist</h3> <p class="text-gray-500 text-xs">31 5 月 2026</p> </div> </a> <a href="https://kevin-grillot.fr/zh/%e5%88%9b%e4%b8%9a-zh/consultant-en-marketing-digital-guide-complet-2024-parcours-carriere-10/" class="related-card"> <div style="overflow:hidden"> <picture class="related-card-img wp-post-image" decoding="async"> <source type="image/avif" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-300x200.jpeg.avif 300w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-1024x682.jpeg.avif 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-768x512.jpeg.avif 768w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-1536x1024.jpeg.avif 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398.jpeg.avif 1880w" sizes="(max-width: 300px) 100vw, 300px"/> <img width="300" height="200" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20200'%3E%3C/svg%3E" alt="Consultant en Marketing Digital : Guide Complet 2024 + Parcours Carrière" decoding="async" data-lazy-srcset="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-300x200.jpeg 300w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-1024x682.jpeg 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-768x512.jpeg 768w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-1536x1024.jpeg 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398.jpeg 1880w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-300x200.jpeg"/><noscript><img width="300" height="200" src="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-300x200.jpeg" alt="Consultant en Marketing Digital : Guide Complet 2024 + Parcours Carrière" decoding="async" srcset="https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-300x200.jpeg 300w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-1024x682.jpeg 1024w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-768x512.jpeg 768w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398-1536x1024.jpeg 1536w, https://kevin-grillot.fr/wp-content/uploads/2026/05/pexels-photo-15635398.jpeg 1880w" sizes="(max-width: 300px) 100vw, 300px"/></noscript> </picture> </div> <div class="p-4 flex flex-col flex-1"> <span class="text-blue-500 text-xs font-bold uppercase tracking-widest mb-2">创业</span> <h3 class="text-white font-bold text-base leading-snug mb-3 flex-1" style="font-family:'Outfit',sans-serif">Consultant en Marketing Digital : Guide Complet 2024 + Parcours Carrière</h3> <p class="text-gray-500 text-xs">31 5 月 2026</p> </div> </a> </div> <!-- Bouton mobile "Voir tous" --> <div class="mt-8 text-center md:hidden"> <a href="https://kevin-grillot.fr/blog" class="inline-flex items-center gap-2 px-6 py-3 border border-white/10 rounded-full text-sm text-gray-300 hover:border-blue-500 hover:text-blue-400 transition-all font-medium" style="text-decoration:none;border-bottom:none"> Voir tous les articles </a> </div> </section> <!-- ========================================== NAVIGATION PRÉCÉDENT / SUIVANT =========================================== --> <div class="max-w-7xl mx-auto px-6 mt-20 border-t border-white/10 pt-16"> <h3 class="text-center text-gray-500 text-xs uppercase tracking-widest mb-10">Continuer la lecture</h3> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <a href="https://kevin-grillot.fr/zh/%e8%bf%bd%e8%b8%aa-zh/%e4%bb%80%e4%b9%88%e6%98%afa-b%e6%b5%8b%e8%af%95%ef%bc%9f%e5%a6%82%e4%bd%95%e5%88%a9%e7%94%a8%e5%ae%83%e6%9d%a5%e6%8f%90%e5%8d%87%e6%b5%8b%e8%af%95%e7%bb%93%e6%9e%9c%ef%bc%9f/" class="nav-card p-8 rounded-2xl block group text-left" style="text-decoration:none;border-bottom:none"> <span class="text-xs text-gray-500 font-bold uppercase tracking-widest mb-3 block group-hover:text-blue-500 transition-colors">← Article précédent</span> <h4 class="text-xl font-bold text-white font-heading leading-snug group-hover:text-blue-400 transition-colors" style="font-family:'Outfit',sans-serif"> 什么是A/B测试?如何利用它来提升测试结果? </h4> </a> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96%e4%b8%8e%e7%94%9f%e6%88%90%e5%bc%8f%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd%ef%bc%9a%e4%b8%80%e5%9c%ba%e6%bf%80%e7%83%88%e7%ab%9e%e8%b5%9b%e7%9a%84/" class="nav-card p-8 rounded-2xl block group text-right" style="text-decoration:none;border-bottom:none"> <span class="text-xs text-gray-500 font-bold uppercase tracking-widest mb-3 block group-hover:text-blue-500 transition-colors">Article suivant →</span> <h4 class="text-xl font-bold text-white font-heading leading-snug group-hover:text-blue-400 transition-colors" style="font-family:'Outfit',sans-serif"> 搜索引擎优化与生成式人工智能:一场激烈竞赛的挑战与规则 </h4> </a> </div> </div> </main> <!-- ========================================== BARRE FLOTTANTE "LIRE ENSUITE" Apparaît à 70% de lecture =========================================== --> <div id="read-next-bar" aria-label="Lire l'article suivant" role="complementary"> <div class="max-w-4xl mx-auto px-4 py-3 flex items-center gap-4"> <!-- Miniature --> <img width="1200" height="627" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20627'%3E%3C/svg%3E" alt="" class="read-next-thumb" style="width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0" data-lazy-src="https://kevin-grillot.fr/wp-content/uploads/2026/02/seo-and-generative-ai.jpg"><noscript><img width="1200" height="627" src="https://kevin-grillot.fr/wp-content/uploads/2026/02/seo-and-generative-ai.jpg" alt="" class="read-next-thumb" style="width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0"></noscript> <!-- Texte --> <div class="flex-1 min-w-0"> <p class="text-gray-500 text-xs font-bold uppercase tracking-widest mb-0.5">Article suivant</p> <p class="text-white text-sm font-semibold truncate">搜索引擎优化与生成式人工智能:一场激烈竞赛的挑战与规则</p> </div> <!-- CTA --> <a href="https://kevin-grillot.fr/zh/%e6%9c%89%e6%9c%ba%e5%bc%95%e7%94%a8%ef%bc%88seo%ef%bc%89-zh/%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96%e4%b8%8e%e7%94%9f%e6%88%90%e5%bc%8f%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd%ef%bc%9a%e4%b8%80%e5%9c%ba%e6%bf%80%e7%83%88%e7%ab%9e%e8%b5%9b%e7%9a%84/" class="flex-shrink-0 bg-blue-600 hover:bg-blue-500 text-white text-xs font-bold uppercase tracking-widest px-5 py-2.5 rounded-full transition-colors" style="text-decoration:none;border-bottom:none;white-space:nowrap"> Lire → </a> <!-- Fermer --> <button id="close-next-bar" aria-label="Fermer" class="flex-shrink-0 w-8 h-8 rounded-full bg-white/5 hover:bg-white/10 flex items-center justify-center transition-colors"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> <!-- SCRIPTS --> <script type="rocketlazyloadscript"> (function() { // ---- 1. BARRE DE PROGRESSION ---- var progressBar = document.getElementById('reading-progress'); window.addEventListener('scroll', function() { var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; var scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; if (progressBar && scrollHeight > 0) { progressBar.style.width = (scrollTop / scrollHeight * 100) + '%'; } }, { passive: true }); // ---- 2. TABLE DES MATIÈRES ---- var tocSidebar = document.getElementById('toc-sidebar'); var sidebarLeft = document.getElementById('sidebar-left'); var fixedLeft = null; var fixedWidth = null; var STICKY_TOP = 110; // px — sous la nav // Enregistre les coordonnées de la sidebar pour le mode fixed function recordSidebarPos() { if (!sidebarLeft) return; var rect = sidebarLeft.getBoundingClientRect(); fixedLeft = Math.round(rect.left + window.scrollX); fixedWidth = Math.round(rect.width); } // Sticky natif + masquage automatique quand l'article est dépassé. function updateSidebarMode() { if (!tocSidebar) return; if (window.innerWidth < 1024) { tocSidebar.style.cssText = ''; return; } tocSidebar.style.position = ''; tocSidebar.style.left = ''; tocSidebar.style.width = ''; tocSidebar.style.top = ''; tocSidebar.style.maxHeight = 'calc(100vh - 130px)'; tocSidebar.style.overflowY = 'auto'; // Masquer le TOC si on a scrollé au-delà de la fin de l'article var article = document.querySelector('.article-body'); if (article) { var rect = article.getBoundingClientRect(); var passed = rect.bottom < 130; // article entièrement au-dessus du viewport tocSidebar.style.opacity = passed ? '0' : '1'; tocSidebar.style.pointerEvents = passed ? 'none' : ''; tocSidebar.style.visibility = passed ? 'hidden' : ''; tocSidebar.style.transition = 'opacity .25s'; } } window.addEventListener('resize', function() { recordSidebarPos(); updateSidebarMode(); }, { passive: true }); window.addEventListener('scroll', updateSidebarMode, { passive: true }); function buildTOC() { var headings = document.querySelectorAll('.article-body h2, .article-body h3'); if (!headings.length) { var emptyMsg = document.getElementById('toc-empty-msg'); if (emptyMsg) emptyMsg.style.display = ''; return; } var tocList = document.getElementById('toc-list'); var tocMobileList = document.getElementById('toc-mobile-list'); if (!tocList && !tocMobileList) return; var items = []; headings.forEach(function(h, idx) { // Texte propre = uniquement les nodes texte directs (pas les attrs d'images) var cleanText = ''; h.childNodes.forEach(function(n) { if (n.nodeType === Node.TEXT_NODE) cleanText += n.textContent; else if (n.nodeType === Node.ELEMENT_NODE && n.tagName !== 'IMG') cleanText += n.textContent; }); cleanText = cleanText.trim(); // Ignorer les H2/H3 sans texte (uniquement images, vides, ou HTML parasite) if (!cleanText || cleanText.length < 2) return; if (!h.id) { h.id = 'h-' + idx + '-' + cleanText.toLowerCase() .replace(/[^\w\s-]/g, '').replace(/\s+/g, '-').substring(0, 40); } items.push({ id: h.id, text: cleanText, level: h.tagName }); }); function buildList(listEl, isMobile) { if (!listEl) return; items.forEach(function(item) { var li = document.createElement('li'); if (item.level === 'H3' && isMobile) li.className = 'toc-h3-item'; var a = document.createElement('a'); a.href = '#' + item.id; a.textContent = item.text; if (item.level === 'H3' && !isMobile) a.classList.add('toc-h3'); a.addEventListener('click', function(e) { e.preventDefault(); var target = document.getElementById(item.id); if (target) { window.scrollTo({ top: target.getBoundingClientRect().top + window.pageYOffset - 100, behavior: 'smooth' }); } }); li.appendChild(a); listEl.appendChild(li); }); } buildList(tocList, false); buildList(tocMobileList, true); // Surlignage dynamique du titre courant var tocLinks = tocList ? tocList.querySelectorAll('a') : []; window.addEventListener('scroll', function() { var scrollPos = window.pageYOffset + 130; var current = ''; items.forEach(function(item) { var el = document.getElementById(item.id); if (el && el.offsetTop <= scrollPos) current = item.id; }); tocLinks.forEach(function(link) { link.classList.toggle('toc-active', link.getAttribute('href') === '#' + current); }); }, { passive: true }); } // ---- 3. TOC MOBILE TOGGLE ---- var tocToggle = document.getElementById('toc-toggle'); var tocContent = document.getElementById('toc-mobile-content'); var tocChevron = document.getElementById('toc-chevron'); if (tocToggle && tocContent) { tocToggle.addEventListener('click', function() { var isOpen = tocContent.classList.toggle('open'); tocChevron.style.transform = isOpen ? 'rotate(180deg)' : 'rotate(0)'; }); } // ---- 4. BARRE FLOTTANTE "LIRE ENSUITE" ---- var bar = document.getElementById('read-next-bar'); var closeBtn = document.getElementById('close-next-bar'); var barShown = false; var barDismissed = false; if (bar) { window.addEventListener('scroll', function() { if (barDismissed) return; var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; var scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; var pct = scrollHeight > 0 ? (scrollTop / scrollHeight * 100) : 0; if (pct > 70 && !barShown) { bar.classList.add('bar-visible'); barShown = true; } else if (pct <= 60 && barShown) { bar.classList.remove('bar-visible'); barShown = false; } }, { passive: true }); if (closeBtn) { closeBtn.addEventListener('click', function() { bar.classList.remove('bar-visible'); bar.classList.add('bar-dismissed'); barDismissed = true; }); } } // ---- INIT ---- if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { recordSidebarPos(); buildTOC(); }); } else { recordSidebarPos(); buildTOC(); } // Recalcul après images chargées (layout peut changer) window.addEventListener('load', function() { recordSidebarPos(); updateSidebarMode(); }); })(); </script> <!-- DÉBUT DU FOOTER PERSONNALISÉ --> <style> /* Styles spécifiques au footer (isolés pour ne pas casser le reste) */ .custom-footer { font-family: 'Inter', sans-serif; background-color: #000000; color: white; position: relative; overflow: hidden; width: 100%; margin-top: auto; /* Pousse le footer en bas si la page est courte */ } .font-heading { font-family: 'Outfit', sans-serif; } /* Couleurs */ .text-brand-blue { color: #0055ff; } .bg-brand-blue { background-color: #0055ff; } /* Liens Footer */ .footer-link { position: relative; color: #9ca3af; /* gray-400 */ text-decoration: none; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; } .footer-link:hover { color: #ffffff; transform: translateX(5px); } .footer-link::before { content: ''; width: 0; height: 1px; background-color: #0055ff; transition: width 0.3s ease; } .footer-link:hover::before { width: 10px; } /* Cartes - voir hover amélioré ci-dessous */ /* Icones */ .icon-circle { width: 3rem; height: 3rem; border-radius: 50%; background-color: rgba(0, 85, 255, 0.1); display: flex; align-items: center; justify-content: center; color: #0055ff; font-size: 1.25rem; transition: all 0.3s ease; margin-bottom: 1rem; } .footer-card:hover .icon-circle { background-color: #0055ff; color: white; box-shadow: 0 0 20px rgba(0, 85, 255, 0.4); } /* Compétences */ .footer-skill { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 10px; font-size: 0.85rem; font-weight: 700; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); color: var(--sk-color, #9ca3af); text-decoration: none; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .footer-skill:hover { background: color-mix(in srgb, var(--sk-color) 12%, transparent); border-color: color-mix(in srgb, var(--sk-color) 40%, transparent); color: var(--sk-color); transform: translateX(6px); box-shadow: 0 0 20px color-mix(in srgb, var(--sk-color) 15%, transparent); } .footer-skill i { width: 1.2em; text-align: center; } /* Hover animation cartes footer */ .footer-card { padding: 1.5rem; border-radius: 1rem; border: 1px solid rgba(255, 255, 255, 0.03); background: linear-gradient(145deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0) 100%); transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .footer-card:hover { border-color: rgba(0, 85, 255, 0.25); background: linear-gradient(145deg, rgba(255,255,255,0.04) 0%, rgba(0,85,255,0.03) 100%); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0, 85, 255, 0.08), 0 0 0 1px rgba(0, 85, 255, 0.1); } /* Bouton */ .btn-glow { background: linear-gradient(90deg, #0055ff, #0044cc); color: white; padding: 12px 24px; border-radius: 8px; font-weight: bold; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.05em; transition: all 0.3s ease; box-shadow: 0 0 15px rgba(0, 85, 255, 0.2); display: inline-flex; align-items: center; gap: 8px; } .btn-glow:hover { box-shadow: 0 0 25px rgba(0, 85, 255, 0.5); transform: translateY(-2px); color: white; } </style> <footer class="custom-footer pt-24 pb-8 border-t border-white/5"> <!-- Lumières d'ambiance (Background) --> <div class="absolute top-0 right-0 w-[500px] h-[500px] bg-blue-600/5 rounded-full blur-[120px] -z-10 pointer-events-none"></div> <div class="absolute bottom-0 left-0 w-[400px] h-[400px] bg-blue-900/5 rounded-full blur-[100px] -z-10 pointer-events-none"></div> <div class="max-w-[1400px] mx-auto px-6"> <!-- En-tête du Footer (CTA) --> <div class="mb-16 md:flex justify-between items-end border-b border-white/5 pb-10"> <div> <h2 class="font-heading text-3xl md:text-5xl font-black uppercase tracking-tight mb-2 text-white"> Prêt à <span class="text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-white">décoller ?</span> </h2> <p class="text-gray-400 max-w-md">Transformons votre présence digitale en véritable levier de croissance.</p> </div> <div class="mt-6 md:mt-0"> <a href="https://kevin-grillot.fr/me-contacter/" class="btn-glow"> Démarrer un projet <i class="fas fa-arrow-right"></i> </a> </div> </div> <!-- Grid Principale (5 Colonnes) --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-6 lg:gap-8 mb-20"> <!-- 1. CONTACT --> <div class="footer-card"> <div class="icon-circle"><i class="fas fa-envelope"></i></div> <h3 class="font-heading font-bold text-lg uppercase tracking-wider mb-6 text-white">Contact</h3> <div class="space-y-4"> <a href="mailto:grillotkevin@gmail.com" class="flex items-center gap-3 group text-gray-400 hover:text-white transition-colors"> <span class="w-8 h-8 rounded bg-white/5 flex items-center justify-center text-blue-500 group-hover:bg-brand-blue group-hover:text-white transition-all"><i class="fas fa-at text-xs"></i></span> <span class="text-sm font-medium">grillotkevin@gmail.com</span> </a> <a href="tel:0667570018" class="flex items-center gap-3 group text-gray-400 hover:text-white transition-colors"> <span class="w-8 h-8 rounded bg-white/5 flex items-center justify-center text-blue-500 group-hover:bg-brand-blue group-hover:text-white transition-all"><i class="fas fa-phone text-xs"></i></span> <span class="text-sm font-medium">06 67 57 00 18</span> </a> <a href="https://wa.me/33667570018?text=Bonjour%20Kevin%2C%20je%20souhaite%20un%20devis%20pour%20mon%20projet." target="_blank" rel="noopener" class="flex items-center gap-3 group text-gray-400 hover:text-white transition-colors"> <span class="w-8 h-8 rounded bg-white/5 flex items-center justify-center text-green-500 group-hover:bg-green-600 group-hover:text-white transition-all"><i class="fab fa-whatsapp text-xs"></i></span> <span class="text-sm font-medium">WhatsApp direct</span> </a> </div> </div> <!-- 2. NAVIGATION --> <div class="footer-card"> <div class="icon-circle"><i class="fas fa-compass"></i></div> <h3 class="font-heading font-bold text-lg uppercase tracking-wider mb-6 text-white">Navigation</h3> <nav class="flex flex-col space-y-2 text-sm font-medium"> <a href="https://kevin-grillot.fr/mes-experiences/" class="footer-link">Mes Expériences</a> <a href="https://kevin-grillot.fr/mes-formations/" class="footer-link">Mes Formations</a> <a href="https://kevin-grillot.fr/mes-etudes/" class="footer-link">Mes Études</a> <a href="https://kevin-grillot.fr/a-propos/" class="footer-link">À Propos</a> <a href="https://kevin-grillot.fr/blog/" class="footer-link">Le Blog</a> <a href="https://kevin-grillot.fr/creation-site-internet/" class="footer-link">Création Site Web</a> </nav> </div> <!-- 3. RÉSEAUX --> <div class="footer-card"> <div class="icon-circle"><i class="fas fa-share-alt"></i></div> <h3 class="font-heading font-bold text-lg uppercase tracking-wider mb-6 text-white">Réseaux</h3> <p class="text-gray-400 text-sm mb-6">Suivez mon actualité et mes conseils quotidiens.</p> <div class="flex gap-4"> <a href="https://www.linkedin.com/in/kevin-grillot-036652159/" target="_blank" class="w-12 h-12 rounded-lg bg-white/5 flex items-center justify-center text-white hover:bg-[#0077b5] hover:scale-110 transition-all duration-300 shadow-lg"> <i class="fab fa-linkedin-in text-xl"></i> </a> <a href="https://www.instagram.com/kevingr04/" target="_blank" class="w-12 h-12 rounded-lg bg-white/5 flex items-center justify-center text-white hover:bg-gradient-to-tr hover:from-yellow-400 hover:via-red-500 hover:to-purple-500 hover:scale-110 transition-all duration-300 shadow-lg"> <i class="fab fa-instagram text-xl"></i> </a> </div> </div> <!-- 3b. COMPÉTENCES --> <div class="footer-card"> <div class="icon-circle"><i class="fas fa-rocket"></i></div> <h3 class="font-heading font-bold text-lg uppercase tracking-wider mb-6 text-white">Compétences</h3> <div class="space-y-3"> <a href="https://kevin-grillot.fr/seo-geo/" class="footer-skill" style="--sk-color:#2563eb;"> <i class="fas fa-search"></i> SEO & GEO </a> <a href="https://kevin-grillot.fr/google-ads/" class="footer-skill" style="--sk-color:#f97316;"> <i class="fab fa-google"></i> Google Ads </a> <a href="https://kevin-grillot.fr/meta-ads/" class="footer-skill" style="--sk-color:#e91e8c;"> <i class="fab fa-meta"></i> Meta Ads </a> <a href="https://kevin-grillot.fr/creation-site/" class="footer-skill" style="--sk-color:#10b981;"> <i class="fas fa-code"></i> Création de site </a> </div> </div> <!-- 4. EXPERTISE (Liste Enrichie) --> <div class="footer-card"> <div class="icon-circle"><i class="fas fa-certificate"></i></div> <h3 class="font-heading font-bold text-lg uppercase tracking-wider mb-6 text-white">Expertise</h3> <div class="space-y-3 mb-6"> <!-- SEMrush --> <div class="flex items-center gap-3 p-2 rounded bg-white/5 border border-white/5 hover:border-orange-500/30 transition-colors"> <i class="fas fa-fire text-orange-500 text-lg"></i> <span class="font-bold text-sm text-gray-200">SEMrush</span> </div> <!-- Google Looker Studio --> <div class="flex items-center gap-3 p-2 rounded bg-white/5 border border-white/5 hover:border-blue-400/30 transition-colors"> <i class="fas fa-chart-area text-blue-400 text-lg"></i> <span class="font-bold text-sm text-gray-200">Looker Studio</span> </div> <!-- Meta Ads --> <div class="flex items-center gap-3 p-2 rounded bg-white/5 border border-white/5 hover:border-blue-600/30 transition-colors"> <i class="fab fa-meta text-blue-600 text-lg"></i> <span class="font-bold text-sm text-gray-200">Meta Ads</span> </div> <!-- Google Ads --> <div class="flex items-center gap-3 p-2 rounded bg-white/5 border border-white/5 hover:border-blue-500/30 transition-colors"> <i class="fab fa-google text-blue-500 text-lg"></i> <span class="font-bold text-sm text-gray-200">Google Ads</span> </div> </div> <a href="https://kevin-grillot.fr/mes-cerfications" class="text-xs font-bold text-blue-500 hover:text-white uppercase tracking-widest transition-colors flex items-center gap-2 group justify-center"> Toutes les certifs <i class="fas fa-long-arrow-alt-right transform group-hover:translate-x-1 transition-transform"></i> </a> </div> </div> <!-- Réalisations / Cas clients --> <div class="border-t border-white/5 pt-8 pb-6"> <p class="text-xs text-gray-500 uppercase tracking-widest mb-3 text-center md:text-left">Réalisations sélectionnées</p> <div class="flex flex-wrap justify-center md:justify-start gap-x-6 gap-y-2 text-xs text-gray-500"> <a href="https://cleaning-angels.com/" target="_blank" rel="noopener" class="hover:text-blue-500 transition-colors">Cleaning Angels — Nettoyage Lyon & Suisse</a> <span class="text-white/10">|</span> <a href="https://concierge-angels.com/" target="_blank" rel="noopener" class="hover:text-blue-500 transition-colors">Concierge Angels — Conciergerie Airbnb</a> <span class="text-white/10">|</span> <a href="https://giterural-ardeche.com/" target="_blank" rel="noopener" class="hover:text-blue-500 transition-colors">Gîte Rural Ardèche</a> </div> </div> <!-- Copyright & Mentions --> <div class="border-t border-white/5 pt-8 flex flex-col md:flex-row justify-between items-center text-xs text-gray-600 font-medium"> <p> © <span id="current-year"></span> <span class="text-white font-bold">KEVIN GRILLOT</span>. Tous droits réservés. </p> <div class="mt-4 md:mt-0 flex flex-wrap justify-center gap-6"> <span class="hidden md:inline text-white/10">|</span> <a href="https://kevin-grillot.fr/mentions-legales" class="hover:text-blue-500 transition-colors">Mentions Légales</a> <a href="https://kevin-grillot.fr/cv-foot/" class="hover:text-blue-500 transition-colors">CV Foot</a> <span class="text-gray-700">Dev with 💙 by Me</span> </div> </div> </div> </footer> <script type="rocketlazyloadscript"> // Mise à jour auto de l'année document.getElementById('current-year').textContent = new Date().getFullYear(); </script> <!-- FIN DU FOOTER PERSONNALISÉ --> <!-- BOUTON WHATSAPP FLOTTANT --> <style> .whatsapp-float { position: fixed; bottom: 28px; right: 28px; z-index: 9999; display: flex; align-items: center; gap: 10px; background: #25D366; color: white; padding: 12px 20px 12px 16px; border-radius: 50px; font-weight: 700; font-size: 14px; text-decoration: none; box-shadow: 0 4px 20px rgba(37, 211, 102, 0.45); transition: all 0.3s ease; font-family: 'Inter', sans-serif; } .whatsapp-float:hover { background: #1ebe5d; transform: translateY(-3px); box-shadow: 0 8px 30px rgba(37, 211, 102, 0.55); color: white; } .whatsapp-float i { font-size: 22px; } @media (max-width: 640px) { .whatsapp-float span { display: none; } .whatsapp-float { padding: 14px; border-radius: 50%; } } </style> <a href="https://wa.me/33667570018?text=Bonjour%20Kevin%2C%20je%20souhaite%20un%20devis%20pour%20mon%20projet." class="whatsapp-float" target="_blank" rel="noopener" title="Contacter Kevin Grillot sur WhatsApp"> <i class="fab fa-whatsapp"></i> <span>Devis rapide</span> </a> <!-- FIN BOUTON WHATSAPP FLOTTANT --> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/kevin-grillot\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="rocket-browser-checker-js-after"> "use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); </script> <script id="rocket-preload-links-js-extra"> var RocketPreloadLinksConfig = {"excludeUris":"\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index\\.php\/)?wp\\-json(\/.*|$)|\/logkevgriin\/|\/wp-admin\/|\/logout\/|\/logkevgriin\/|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/kevin-grillot.fr","onHoverDelay":"100","rateThrottle":"3"}; </script> <script id="rocket-preload-links-js-after"> (function() { "use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); }()); </script> <script type="rocketlazyloadscript"> (function() { var expirationDate = new Date(); expirationDate.setTime( expirationDate.getTime() + 31536000 * 1000 ); document.cookie = "pll_language=zh; expires=" + expirationDate.toUTCString() + "; path=/; secure; SameSite=Lax"; }()); </script> <!-- Exit-Intent Popup --> <div id="kg-exit-popup" class="kg-exit-overlay" style="display:none;"> <div class="kg-exit-backdrop"></div> <div class="kg-exit-card"> <button class="kg-exit-close" id="kg-exit-close" aria-label="Fermer">×</button> <div class="kg-exit-glow"></div> <div class="kg-exit-content" id="kg-exit-content"> <div class="kg-exit-badge"><i class="fas fa-gift"></i> Avant de partir</div> <h2 class="kg-exit-title">Attendez ! Votre audit SEO gratuit</h2> <p class="kg-exit-sub">Avant de partir, téléchargez notre checklist SEO locale — 15 points essentiels pour votre visibilité.</p> <form class="kg-exit-form" id="kg-exit-form" data-ajax="https://kevin-grillot.fr/wp-admin/admin-ajax.php" data-nonce="9fab4dc34d"> <input type="text" name="kg_lm_prenom" placeholder="Votre prénom" required autocomplete="given-name" class="kg-exit-input"> <input type="email" name="kg_lm_email" placeholder="Votre email" required autocomplete="email" class="kg-exit-input"> <div style="position:absolute;left:-9999px;" aria-hidden="true"> <input type="text" name="kg_lm_website" tabindex="-1" autocomplete="off"> </div> <button type="submit" class="kg-exit-btn"> <i class="fas fa-download"></i> Télécharger gratuitement </button> <p class="kg-exit-notice"><i class="fas fa-lock"></i> Aucun spam. Données confidentielles.</p> </form> <div class="kg-exit-success" id="kg-exit-success" style="display:none;"> <div style="font-size:2.5rem;color:#22c55e;margin-bottom:1rem;"><i class="fas fa-check-circle"></i></div> <h3 style="color:#fff;font-size:1.2rem;font-weight:700;margin:0 0 0.5rem;">Merci ! Votre checklist est prête.</h3> <a href="" class="kg-exit-download" id="kg-exit-download" target="_blank" rel="noopener"> <i class="fas fa-file-download"></i> Télécharger la Checklist </a> </div> </div> </div> </div> <style> .kg-exit-overlay { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; } .kg-exit-overlay.visible { opacity: 1; } .kg-exit-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.75); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .kg-exit-card { position: relative; z-index: 1; max-width: 520px; width: 90%; background: rgba(12,12,24,0.95); border: 1px solid rgba(255,255,255,0.08); border-radius: 1.25rem; padding: 2.5rem 2rem; overflow: hidden; box-shadow: 0 24px 64px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.05); transform: translateY(20px) scale(0.95); transition: transform 0.3s ease; } .kg-exit-overlay.visible .kg-exit-card { transform: translateY(0) scale(1); } .kg-exit-close { position: absolute; top: 1rem; right: 1rem; z-index: 2; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: #9ca3af; font-size: 1.5rem; width: 36px; height: 36px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, color 0.2s; line-height: 1; } .kg-exit-close:hover { background: rgba(255,255,255,0.1); color: #fff; } .kg-exit-glow { position: absolute; top: -50px; left: 50%; transform: translateX(-50%); width: 200px; height: 200px; background: #2563eb; opacity: 0.1; border-radius: 50%; filter: blur(80px); pointer-events: none; } .kg-exit-content { position: relative; z-index: 1; text-align: center; } .kg-exit-badge { display: inline-flex; align-items: center; gap: 0.4rem; background: rgba(37,99,235,0.1); color: #2563eb; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.4rem 1rem; border-radius: 999px; margin-bottom: 1rem; border: 1px solid rgba(37,99,235,0.2); } .kg-exit-title { color: #fff; font-size: 1.5rem; font-weight: 800; line-height: 1.2; margin: 0 0 0.75rem; font-family: 'Outfit', sans-serif; } .kg-exit-sub { color: #9ca3af; font-size: 0.9rem; margin: 0 0 1.5rem; line-height: 1.5; } .kg-exit-form { display: flex; flex-direction: column; gap: 0.75rem; position: relative; } .kg-exit-input { padding: 0.85rem 1rem; border-radius: 0.6rem; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.04); color: #e5e7eb; font-size: 0.9rem; outline: none; transition: border-color 0.2s; width: 100%; box-sizing: border-box; } .kg-exit-input:focus { border-color: #2563eb; } .kg-exit-input::placeholder { color: #6b7280; } .kg-exit-btn { padding: 0.9rem 1.5rem; border: none; border-radius: 0.6rem; background: #2563eb; color: #fff; font-size: 0.95rem; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; transition: opacity 0.2s, transform 0.2s; width: 100%; } .kg-exit-btn:hover { opacity: 0.9; transform: translateY(-1px); } .kg-exit-btn:disabled { opacity: 0.5; cursor: wait; } .kg-exit-notice { font-size: 0.7rem; color: #4b5563; text-align: center; margin: 0; } .kg-exit-download { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.85rem 2rem; border-radius: 0.6rem; margin-top: 1rem; background: #2563eb; color: #fff; font-weight: 700; font-size: 0.95rem; text-decoration: none; transition: opacity 0.2s; } .kg-exit-download:hover { opacity: 0.9; color: #fff; } @media(max-width:480px) { .kg-exit-card { padding: 2rem 1.25rem; } .kg-exit-title { font-size: 1.25rem; } } </style> <script type="rocketlazyloadscript"> (function(){ var popup = document.getElementById('kg-exit-popup'); if(!popup) return; var shown = false; function showPopup(){ if(shown) return; if(sessionStorage.getItem('kg_exit_shown')) return; if(sessionStorage.getItem('kg_lm_filled')) return; if(window.location.pathname.indexOf('me-contacter') !== -1) return; shown = true; sessionStorage.setItem('kg_exit_shown', '1'); popup.style.display = 'flex'; requestAnimationFrame(function(){ requestAnimationFrame(function(){ popup.classList.add('visible'); }); }); } function hidePopup(){ popup.classList.remove('visible'); setTimeout(function(){ popup.style.display = 'none'; }, 300); } // Desktop only: mouseleave if(window.innerWidth > 768){ document.addEventListener('mouseleave', function(e){ if(e.clientY < 5) showPopup(); }); } document.getElementById('kg-exit-close').addEventListener('click', hidePopup); popup.querySelector('.kg-exit-backdrop').addEventListener('click', hidePopup); document.addEventListener('keydown', function(e){ if(e.key === 'Escape' && popup.classList.contains('visible')) hidePopup(); }); // Form submit var form = document.getElementById('kg-exit-form'); form.addEventListener('submit', function(e){ e.preventDefault(); var btn = form.querySelector('.kg-exit-btn'); btn.disabled = true; btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Envoi...'; var fd = new FormData(form); fd.append('action', 'kg_lead_magnet_submit'); fd.append('nonce', form.dataset.nonce); fetch(form.dataset.ajax, { method: 'POST', body: fd }) .then(function(r){ return r.json(); }) .then(function(data){ if(data.success){ form.style.display = 'none'; var s = document.getElementById('kg-exit-success'); s.style.display = 'block'; document.getElementById('kg-exit-download').href = data.data.download_url; sessionStorage.setItem('kg_lm_filled', '1'); } else { btn.disabled = false; btn.innerHTML = '<i class="fas fa-download"></i> T\u00e9l\u00e9charger gratuitement'; alert(data.data || 'Erreur.'); } }) .catch(function(){ btn.disabled = false; btn.innerHTML = '<i class="fas fa-download"></i> T\u00e9l\u00e9charger gratuitement'; alert('Erreur reseau.'); }); }); })(); </script> <script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://kevin-grillot.fr/wp-content/plugins/wp-rocket/assets/js/lazyload/17.5/lazyload.min.js"></script><script>function lazyLoadThumb(e){var t='<img data-lazy-src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"><noscript><img src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"></noscript>',a='<button class="play" aria-label="play Youtube video"></button>';return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.parentNode.dataset.query.length?'':'&'+this.parentNode.dataset.query;e.setAttribute("src",t.replace("ID",this.parentNode.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow", "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.parentNode.replaceChild(e,this.parentNode)}document.addEventListener("DOMContentLoaded",function(){var e,t,p,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)e=document.createElement("div"),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query", a[t].dataset.query),e.setAttribute("data-src", a[t].dataset.src),e.innerHTML=lazyLoadThumb(a[t].dataset.id),a[t].appendChild(e),p=e.querySelector('.play'),p.onclick=lazyLoadYoutubeIframe});</script> </body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->