Привет, Хабр! Нейросети стремительно входят в нашу жизнь, и вот уже Яндекс встроил свою «Алису» прямо в поисковую выдачу. Иногда это удобно, но часто хочется видеть классический список ссылок, а не огромный блок сгенерированного текста, который отодвигает всё остальное вниз.

Я решил вернуть себе контроль над поиском и написал простое браузерное расширение, которое убирает всё лишнее. Назвал его «Bye Bye Alice AI». В этой короткой статье я покажу, как оно устроено.

Задача

Нужно было убрать два основных элемента:

пример поисковой выдачи
пример поисковой выдачи
  1. Большой блок с нейроответом (.FuturisSearchWrapper и .serp-item__futuris-snippet).

  2. Вкладку «Алиса» в навигации.

А также добавить возможность включать и отключать эту функцию.

Как это работает?

Вся магия происходит в нескольких файлах.

1. manifest.json — паспорт расширения

Это главный файл, где мы описываем наше расширение, запрашиваем нужные права (storage для сохранения настроек) и указываем, какие скрипты и где запускать.

{
  "manifest_version": 3,
  "name": "Bye Bye Alice AI",
  "version": "3.0",
  "description": "Removes Yandex AI (Alice) elements from search results and navigation.",
  "permissions": ["storage"],
  "host_permissions": ["*://*.yandex.ru/*"],
  "background": {
    "service_worker": "background.js"
  },
  "content_scripts": [
    {
      "matches": ["*://*.yandex.ru/search/*"],
      "js": ["remover.js"],
      "run_at": "document_start"
    }
  ],
  "action": {
    "default_popup": "popup.html",
    "default_icon": "icon_inactive.png"
  },
  "icons": {
    "128": "icon128.png"
  }
}

2. remover.js — скрипт-чистильщик

Этот скрипт запускается на страницах поиска Яндекса. Его задача — найти и удалить мешающие блоки.

const SELECTORS_TO_REMOVE = [
  '.FuturisSearchWrapper',
  'a.HeaderNav-Tab[href*="promo=force_neuro"]',
  'li.serp-item.serp-item__futuris-snippet'
];
let isEnabled = true;

/**
 * Находит и удаляет целевые элементы со страницы.
 */
function removeTargetElements() {
  if (!isEnabled) return;
  try {
    SELECTORS_TO_REMOVE.forEach(selector => {
      document.querySelectorAll(selector).forEach(el => el.remove());
    });
  } catch (error) {}
}

/**
 * Блокирует переход по промо-ссылкам.
 * @param {MouseEvent} event - Событие клика.
 */
function blockPromoNavigation(event) {
  if (!isEnabled) return;
  const targetLink = event.target.closest('a');
  if (targetLink && targetLink.href.includes('promo=force_neuro')) {
    event.preventDefault();
    event.stopPropagation();
  }
}

const observer = new MutationObserver(removeTargetElements);

/**
 * Инициализирует MutationObserver для отслеживания изменений в DOM.
 */
function initializeObserver() {
  if (document.body) {
    observer.observe(document.body, {
      childList: true,
      subtree: true,
    });
    removeTargetElements();
  } else {
    setTimeout(initializeObserver, 100);
  }
}

chrome.storage.sync.get('isEnabled', (data) => {
  isEnabled = data.isEnabled !== false;
  if (isEnabled) {
    initializeObserver();
  }
});

chrome.storage.onChanged.addListener((changes, namespace) => {
  if (changes.isEnabled) {
    isEnabled = changes.isEnabled.newValue;
    if (isEnabled) {
      initializeObserver();
    } else {
      observer.disconnect();
    }
  }
});

document.addEventListener('click', blockPromoNavigation, true);

3. popup.html и popup.js — окно настроек

Чтобы пользователь мог сам решать, нужна ему «Алиса» или нет, я добавил простое всплывающее окно с переключателем. Его состояние сохраняется в chrome.storage.

4. background.js — управление иконкой

Маленькая, но важная деталь: иконка расширения меняет цвет в зависимости от того, включена блокировка или нет. Цветная — активна, серая — выключена. Это делается в фоновом скрипте, который следит за изменением настроек.

Результат

Получилось легкое и простое расширение, которое делает ровно одну вещь, но делает ее хорошо. Поиск снова стал чистым и быстрым, а если вдруг понадобится нейросеть — ее можно вернуть одним кликом.

Если вам, как и мне, не хватало такой возможности, можете забрать расширение на GitHub. Проект очень простой, так что может стать отличным примером для тех, кто хочет попробовать написать свое первое расширение.

Спасибо за внимание!

P.S. : Это моя первая статья на Хабре и буду благодарен за карму или/и приглашение

Комментарии (9)


  1. morginalium
    06.11.2025 06:37

    Классно конечно, но иногда Алиса помогает.

    Было бы классно если бы ее можно было заменить на тотже дипсик или квен. По API (с промт-инжинирингом наверное надо. будет поработать) такое вполне возможно.


  1. Bardakan
    06.11.2025 06:37

    А можете исследовать, как заменить яндекс поиск в браузере Opera? Они счас придумали, что в ru локации выкачивается браузер, где яндекс идет единственным предустановленным поиском, и это никак не изменить. Пришлось использовать некий Opera Air, где такого нет


    1. 1MaxSpb Автор
      06.11.2025 06:37

      Интересная тема, спасибо за идею.


  1. ris58h
    06.11.2025 06:37

    Что помешало просто правила в uBlock добавить? В статье это не раскрыто.


    1. gudvinr
      06.11.2025 06:37

      Или stylus


    1. 1MaxSpb Автор
      06.11.2025 06:37

      Илья, спасибо за рекомендацию! Действительно, существует множество способов избавиться от Алисы, но я решил пойти своим путём и создать свой проект.

      Когда я писал статью и задумывал этот проект, я хотел попробовать создать веб-расширение самостоятельно, поскольку раньше никогда не занимался этим. Кроме того, я надеялся помочь тем пользователям, которые ищут готовое решение и не разбираются в вебе, а также поделиться своим опытом с другими.


  1. Shephard
    06.11.2025 06:37

    под фаерфокс бы можно пожалуйста? и ещё бы в Гугле убрать тупой поисковый вывод нейросети. хотя тут проще на DuckDuckGo перебраться. Гугл настолько дерьмофицировался, что DDGo, имхо, уже лучше. По мне даже Яндекс с Алисой даёт более релевантные результаты, чем Гугл.


    1. wsf
      06.11.2025 06:37

      Для гугла уже пачка расширений есть чтобы ai overview отключить


    1. 1MaxSpb Автор
      06.11.2025 06:37

      В дополнение к комментарию, могу порекомендовать да гугла расширение Bye Bye, Google AI https://chromewebstore.google.com/detail/bye-bye-google-ai-turn-of/imllolhfajlbkpheaapjocclpppchggc?pli=1