
🚫 Cloudflare email-decode.min.js: навіщо відключати обфускацію email і як прибрати скрипт за хвилину
Ви заходите в PageSpeed Insights, а там, render-blocking resource. Дивитеся: email-decode.min.js, Cloudflare. «Знову цей скрипт гальмує сайт», думаєте ви і йдете гуглити рішення.
У квітні 2026 Cloudflare нарешті виправив проблему: додав атрибут defer, і скрипт перестав блокувати рендеринг. Здавалося б, питання закрите. Але ні. email-decode.min.js залишає фантомні soft 404 у Google Search Console, а XOR-шифр, яким Cloudflare «захищає» адреси, розшифровується за секунди. Ні безпеки, ні чистих звітів.
На практиці ми не раз стикалися з цим скриптом під час аудиту сайтів: вимикаєш за хвилину, а бонусом отримуєш чисту Search Console. Розбираємо, як влаштована обфускація, чому скрипт досі заважає і як його прибрати, з альтернативою, яка реально приховує email від ботів.
💡 Швидкий огляд:
- Зрозуміти, як працює Email Address Obfuscation у Cloudflare і навіщо взагалі потрібен
email-decode.min.js. - Розібратися в трьох причинах вимкнути обфускацію після квітневого виправлення 2026 року.
- Вимкнути скрипт покроково: дашборд, API, Configuration Rules.
- Впровадити альтернативу на
IntersectionObserverі base64, без зовнішнього скрипта і soft 404.
Як Cloudflare ховає email
Коли сайт проходить через Cloudflare, сервіс за замовчуванням вмикає Email Address Obfuscation. Cloudflare сканує HTML сторінок, знаходить усе схоже на email і замінює кожну адресу на XOR-закодований hex-рядок. Для розшифрування в браузер відвідувача впроваджується email-decode.min.js.

Ідея розумна: боти не бачать адреси, люди бачать. На практиці все складніше. До квітня 2026 скрипт відверто шкодив швидкості, а сам захист виявився слабшим, ніж обіцяє Cloudflare.
Три причини вимкнути email-decode.min.js
Квітневе виправлення прибрало render-blocking. Але три проблеми залишилися. І вони серйозніші за втрачені мілісекунди.
Soft 404 у Search Console
Cloudflare замінює email-адреси на посилання виду /cdn-cgi/l/email-protection#[hex]. Для Googlebot та інших пошукових роботів ці URL повертають 404. Результат: помилки «Soft 404» у Google Search Console. Ahrefs і Screaming Frog позначають їх як биті внутрішні посилання.
Це не косметика. Десятки фантомних помилок Cloudflare маскують реальні проблеми з індексацією. Під час технічного аудиту ви витрачаєте час на фільтрацію шуму замість пошуку справжніх битих сторінок.
XOR-шифр не захищає
Cloudflare використовує однобайтовий XOR, де ключ вбудований прямо в закодований рядок. Механізм розшифрування однаковий для всіх сайтів під Cloudflare. Спамеру потрібен один декодер, і він витягне адреси з будь-якого сайту за секунди.
Дослідження Spencer Mortensen (2026) перевірило 25 методів обфускації проти 300+ спам-збирачів на honeypot-адресах. Навіть примітивний CSS display:none показав 100% блокування. Обфускація Cloudflare захищає тільки від ботів, які не вміють декодувати XOR, а такі й без неї адреси не зберуть.
Навантаження основного потоку на мобільних
1,2 КБ JavaScript з defer не критичні для десктопа. Але на бюджетному Android із завантаженим CPU кожен маленький main-thread-таск від'їдає бюджет INP. Якщо ви боретеся за останні 50 мс, цей скрипт зайвий.
Вимикаємо обфускацію: покрокова інструкція
Вимкнення займає хвилину. Оберіть шлях під версію вашого дашборда.
Новий дашборд (Security Settings)
- Увійдіть у дашборд Cloudflare.
- Перейдіть у Security → Settings.
- Знайдіть перемикач Email Address Obfuscation.
- Переведіть у положення Off.
Старий дашборд (Scrape Shield)
Якщо інтерфейс акаунта ще не оновлений:
- Увійдіть у дашборд Cloudflare.
- Відкрийте розділ Scrape Shield.
- Знайдіть Email Address Obfuscation і перемкніть на Off.

Скрипт зникає миттєво. email-decode.min.js перестає впроваджуватися на всіх сторінках зони.
Через API
Для автоматизації або масового керування, PATCH-запит до Cloudflare API:
1 curl -X PATCH "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/settings/email_obfuscation" \ 2 -H "Authorization: Bearer <API_TOKEN>" \ 3 -H "Content-Type: application/json" \ 4 --data '{"value":"off"}'
Підставте свій Zone ID і API-токен із дозволом на редагування налаштувань зони.
Точкове вимкнення через Configuration Rules
Потрібна обфускація на сторінці контактів, але не на посадкових? Використовуйте Configuration Rules:
- Перейдіть у Rules → Configuration Rules.
- Створіть правило з критеріями: хостнейм, шлях URL або обидва.
- Додайте налаштування Email Obfuscation і встановіть Off.
- Застосуйте.
Можна виключити й окремі адреси в HTML, обгорнувши їх у коментарі:
1 <!--email_off-->[email protected]<!--/email_off-->
Альтернатива без Cloudflare: IntersectionObserver і base64
Якщо приховувати email від ботів справді потрібно, є спосіб краще. Без зовнішнього скрипта, без soft 404 і без впливу на INP. Підхід: base64-кодування адреси і розшифрування через IntersectionObserver, тільки коли відвідувач доскролив до блоку з email.
Крок 1. Розмітка в HTML:
1 <a class="email-hidden" href="#" data-email="aW5mb0BleGFtcGxlLmNvbQ=="> 2 [email скрыт] 3 </a>
Атрибут data-email містить адресу в base64. Кодуйте рядок онлайн-інструментом або командою echo -n "[email protected]" | base64.
Крок 2. Спостерігач. Розмістіть скрипт у футері сторінки:
1 const emailTag = document.querySelector('.email-hidden'); 2 let observer = new IntersectionObserver((entries) => { 3 entries.map((entry) => { 4 if (entry.isIntersecting) { 5 let script = document.createElement('script'); 6 script.onload = function () { 7 emailDecode(entry.target); 8 }; 9 script.src = '/decode-email.js'; 10 document.head.appendChild(script); 11 } 12 }); 13 }); 14 observer.observe(emailTag);
Крок 3. Функція розшифрування, файл decode-email.js:
1 const emailDecode = (e) => { 2 let email = atob(e.dataset.email); 3 e.href = 'mailto:' + email; 4 e.innerHTML = email; 5 };
Результат: email декодується тільки при скролі до нього. Нуль впливу на INP, нуль помилок soft 404. А base64 не поступається XOR від Cloudflare в якості «захисту», обидва методи тривіально оборотні, але в парі з IntersectionObserver адреса навіть не потрапляє в DOM при завантаженні сторінки.
Відеоінструкція
Якщо віддаєте перевагу візуальному посібнику, наочна демонстрація вимкнення обфускації в дашборді Cloudflare:
⁉️🤔 Часті питання
Обфускація Cloudflare впливає на всі сторінки сайту?
Так, після додавання сайту в Cloudflare Email Address Obfuscation вмикається для всієї зони. Скрипт
email-decode.min.jsвпроваджується на кожну сторінку, де виявлено текст, схожий на email. Виключити окремі сторінки можна через Configuration Rules, а конкретні адреси, через HTML-коментарі<!--email_off-->.
Що станеться, якщо просто вимкнути обфускацію?
email-decode.min.jsперестане впроваджуватися миттєво. Усі email-адреси на сайті стануть видимими у вихідному коді, рівно так, як ви їх розмістили. Для більшості сайтів це нормальний режим: контактний email і так публічний, а ховати його від ботів можна простішими методами.
Чи захищає обфускація Cloudflare від усіх спам-ботів?
Ні. XOR-шифр однаковий для всіх сайтів, розшифрувати адреси може будь-хто. Дані Spencer Mortensen показують: навіть CSS
display:noneблокує 100% із 300+ протестованих спам-збирачів. Обфускація Cloudflare спрацьовує тільки проти примітивних ботів, які не намагаються декодувати XOR.
Чи можна сховати скрипт тільки від PageSpeed Insights?
Ні, PageSpeed Insights перевіряє сторінку як звичайний браузер. Якщо скрипт впроваджений, Lighthouse його побачить. З квітневим виправленням 2026 render-blocking більше немає, але залишаються SEO-ефекти (soft 404) і мікро-вплив на INP. Єдиний спосіб прибрати скрипт повністю, вимкнути Email Address Obfuscation у дашборді.
Як переконатися, що обфускація справді вимкнена?
Відкрийте вихідний код сторінки (Ctrl+U) і пошукайте
email-decode.min.js. Немає скрипта, обфускація вимкнена. Альтернативно перевірте консоль браузера: до вимкнення в DOM є<script src="/cdn-cgi/scripts/.../email-decode.min.js">, після, немає. Зміни застосовуються миттєво.
Вимикати чи залишити: вердикт
З квітневим виправленням email-decode.min.js перестав блокувати рендеринг. Але SEO-шум (soft 404 у Search Console) та ілюзія безпеки (XOR оборотний за секунди) нікуди не поділися. Вимкнення через дашборд займає хвилину. Бонус: чисті звіти і пара зекономлених мілісекунд INP на мобільних.
Якщо обфускація справді потрібна, альтернатива з IntersectionObserver і base64 дає реальний захист від спам-збирачів. Без побічних ефектів. Вибір за вами, але email-decode.min.js у 2026 році, скоріше звичка, ніж необхідність.



