Blog
eCommerce

Jak działa Query Fanout w AI? Kompletny przewodnik

W 2025 roku sposób, w jaki ludzie wyszukują informacje w internecie, zmienił się fundamentalnie. Google AI Mode, ChatGPT i inne systemy AI nie wyświetlają już prostych list linków - zamiast tego rozbijają Twoje pytanie na dziesiątki powiązanych podzapytań, szukają odpowiedzi w wielu źródłach jednocześnie i syntetyzują je w jedną kompletną odpowiedź. Jeśli prowadzisz sklep online, tworzysz treści lub pracujesz nad GEO - zrozumienie mechanizmu query fanout to nie opcja, lecz konieczność, by Twoja marka była widoczna w erze AI-powered search.

schemat przedstawiający rozbicie jednego pytania w Google AI Mode na 3 bardziej szczegółowe

Fundamenty

Czym dokładnie jest Query Fanout?

Query fanout to mechanizm, dzięki któremu sztuczna inteligencja (np. Google AI Mode, ChatGPT, chatboty e-commerce) rozumie i przetwarza zapytania użytkownika. System automatycznie rozbija jedno pytanie na wiele powiązanych podpytań i przeszukuje różne źródła, by potem zsyntetyzować wyniki w jedną całościową odpowiedź.

Słowo "fanout" oznacza rozgęszczanie, rozsyłanie - tutaj: dystrybucję zapytania do wielu kanałów wyszukiwania np. Google, Bing czy agregatory danych jak Semly.

Przykład: Wakacje nad Bałtykiem

Wpisujesz w Google AI Mode: "gdzie pojechać z rodziną nad Bałtyk, budżet 5000 zł na tydzień."

W tradycyjnym wyszukiwaniu system szukałby stron zawierających dokładnie to hasło. W query fanout system robi tak:

Rozpoznanie intencji:

  • Szukający: rodzina z dziećmi
  • Cel: wakacje nad morzem
  • Ograniczenie: budżet 5000 zł na tydzień
  • Lokalizacja: Bałtyk (polska strona morska)
  • Czas: niezdefiniowany, ale sugeruje letnie wakacje

Rozbicie na podzapytania:

  • "Najtańsze noclegi nad Bałtykiem dla rodzin"
  • "Domki letniskowe nad Bałtykiem 5000 zł na tydzień"
  • "Gdzie tanio nad morze z dziećmi w lipcu"
  • "Atrakcje dla dzieci nad morzem"
  • "Które miasto jest popularne nad Bałtykiem 2025"
  • "Jak tanio dojechać na Bałtyk z rodziną"
  • "Wakacje nad Bałtykiem bez wyżywienia - opcje budżetowe"
  • "Najlepsze plaże dla dzieci nad Bałtykiem"
  • "Gdzie się zatrzymać z dzieckiem nad morzem – forum"
  • Lipiec czy sierpień nad Bałtykiem - gdzie taniej"

Wyszukiwanie równoczesne:

Wyszukiwanie równoczesne:
Każde z tych pytań jest wysyłane jednocześnie do różnych źródeł - portali rezerwacyjnych, blogów podróżniczych, forów, stron ośrodków, YouTube’a, opinii na Google Maps.

Synteza:

Synteza:
System zbiera fragmenty ze wszystkich źródeł, porządkuje je (np. najpopularniejsze/najczęściej polecane pojawią się wyżej), i prezentuje użytkownikowi w formie: "Na Bałtyku najlepiej jest w Darłowie, oto popularne ośrodki z cenami, tu znajduje się plaża dla dzieci, a tutaj opcje dojazdu".

Dlaczego Google wprowadził Query Fanout?

Historia zmian w wyszukiwaniu

Google przez wiele lat działał w następujący sposób:

  1. Użytkownik wpisuje słowa kluczowe
  2. Algorytm szuka stron zawierających te słowa
  3. Sortuje je względem popularności i trafności
  4. Wyświetla listę linków

To działało dobrze dla prostych pytań ("Ile waży słoń?"). Ale kiedy pytania stawały się bardziej skomplikowane ("Jaki samochód wziąć do miasta, jeśli jeżdżę dużo po mieście, mam dwoje dzieci, lubię oszczędzać paliwo, ale chcę też pewności i wygody?"), tradycyjny model zaczynał zawodzić

Kiedy system rozpoznaje, że pytanie wymaga zaawansowanego rozumowania, włącza naszą wersję modelu Gemini. Rozbija pytanie na różne podtematy i wysyła wiele zapytań równolegle w Twoim imieniu. Zamiast serwować Ci listę linków, system szuka najlepszych fragmentów tekstu, tabel, obrazów z każdego z tych źródeł i składa dla Ciebie spójną odpowiedź.
Elizabeth Reid, szefowa Google Search, Google I/O 2025

Praktyczne korzyści dla użytkownika

  1. Szybka odpowiedź - bez klikania po wielu stronach
  2. Kompletność - wszystkie aspekty pytania są adresowane
  3. Porównania - system automatycznie porównuje opcje
  4. Opinie - system znajduje doświadczenia innych użytkowników
  5. Aktualizacja - odpowiedź zawiera najnowsze informacje
Sprawdź czy AI widzi Twój sklep

Wykonaj darmowy audyt

Jak technicznie działa Query Fanout?

Krok 1: Analiza intencji (Intent Recognition)

Kiedy użytkownik wpisze pytanie, system AI najpierw nie patrzy na słowa, ale na intencję stojącą za pytaniem.

Przykład dla sklepu z elektroniką:

Pytanie: "Jaka kamera do wideo dla początkującego vlogera"

Rozpoznana intencja:

  • Kategoria produktu: kamery
  • Poziom użytkownika: początkujący
  • Zastosowanie: vlogging (wideo na YouTube/social media)
  • Istniejące umiejętności: minimalne
  • Priorytet: łatwość obsługi, a nie profesjonalne możliwości

System rozumie, że ten użytkownik nie kupi kamery za 5000 zł, tylko coś w przedziale 500-2000 zł, z prostym interfejsem, dobrą stabilizacją i wbudowanym mikrofonem.

Krok 2: Dekompozycja zapytania

Na podstawie rozpoznanej intencji system przeprowadza dekompozycję - rozbija jedno pytanie na wiele logicznie powiązanych podzapytań.

Dla kamery vlogera mogą to być:

  • "Najlepsze kamery dla początkujących vlogerów 2025"
  • "Ile kosztuje dobra kamera do vloggingu"
  • "Kamera czy smartfon do vloggingu - porównanie""
  • "Jaka kamera ma najlepszą stabilizację obrazu"
  • "Recenzje - najlepsze kamery YouTube’owe"
  • "Kamera do vloggingu - co musi mieć (mikrofon, ekran)"
  • "Gdzie kupić kamerę do vloggingu w Polsce"
  • "Vlogerzy polecają - kamera na początek"

Każde z tych podpytań odpowiada na inny aspekt decyzji zakupowej.

Krok 3: Równoczesne wyszukiwanie (Parallel Retrieval)

To jest kluczowa część. Zamiast szukać po kolei (najpierw ceny, potem opinii, potem specyfikacji - a to zajęłoby czas), wszystkie podzapytania są wyszukiwane jednocześnie.

Przykład pseudokodu (Python):


import asyncio

async def query_fanout_search(main_query):
    """
    Równoczesne wyszukiwanie dla wszystkich podzapytań
    """
    
    # Rozbijamy główne pytanie
    sub_queries = decompose_query(main_query)
    # Wynik: ["kamera vlogging początkujący", "kamera do YT opinie", ...]
    
    # Tworzymy zadania dla każdego podzapytania
    tasks = []
    for sub_query in sub_queries:
        tasks.append(search_google(sub_query))
        tasks.append(search_youtube_reviews(sub_query))
        tasks.append(search_forums(sub_query))
        tasks.append(search_prices(sub_query))
    
    # Uruchamiamy wszystkie jednocześnie (asyncio)
    all_results = await asyncio.gather(*tasks)
    

Tradycyjne szukanie byłoby sekwencyjne. Query fanout je paralelizuje (wszystko jednocześnie). To redukuje czas odpowiedzi z kilku sekund do około 1-2 sekund.

Krok 4: Łączenie wyników (Aggregation & Ranking)

Teraz system musi dokonać rzeczy trudnej: połączyć wyniki z dziesiątek różnych źródeł w sposób, który ma sens. Użyty algorytm to Reciprocal Rank Fusion (RRF). Wyjaśniam na prostym przykładzie:

Załóżmy, że szukamy "najlepsze słuchawki bezprzewodowe":

Wyniki z podzapytania 1 ("słuchawki do pracy biurowej"):

  1. Sony WH-1000XM5
  2. Bose QC45
  3. Sennheiser Momentum

Wyniki z podzapytania 2 ("słuchawki – test komfortu"):

  1. Bose QC45
  2. Apple AirPods Max
  3. Sony WH-1000XM5

Wyniki z podzapytania 3 ("słuchawki – cena 2025"):

  1. JBL Live Pro 2
  2. Sony WH-1000XM5
  3. Anker Soundcore

RRF działa tak:

  • Sony WH-1000XM5: pojawia się w wynikach nr 1, 3, 2 → otrzymuje najwyższy score
  • Bose QC45: pojawia się w wynikach nr 2, 1 → średni score
  • Reszta ma niższe score

Finalna lista:

  1. Sony WH-1000XM5 (najczęściej polecane w wielu aspektach)
  2. Bose QC45
  3. JBL Live Pro 2

Krok 5: Synteza i prezentacja

Teraz system wyciąga z każdego źródła najistotniejsze fragmenty:

  • Z recenzji: "Komfort 8 godzin pracy"
  • Z testu: "ANC redukuje o 95% szum"
  • Z forum: "Super do zdalnej pracy"
  • Z cenówki: "349 zł w promocji"

Finalnie prezentuje te wyniki użytkownikowi w formie jednego spójnego tekstu z cytatami ze źródeł.

Praktyczne implikacje dla sklepów online

Czy to oznacza koniec tradycyjnego SEO?

Nie. Tradycyjne wyszukiwanie wciąż istnieje i będzie istnieć. Ale oprócz niego pojawia się nowy kanał - visibility w odpowiedziach AI.

Tradycyjne SEO (ranking dla konkretnych słów kluczowych):

Użytkownik szuka: "laptop do nauki programowania"
→ Twoja strona pojawia się na pozycji 3
→ Użytkownik klika w link
→ Trafia do Ciebie

Query Fanout (pojawienie się jako część odpowiedzi AI):

Użytkownik szuka: "laptop do nauki programowania"
→ AI Mode generuje odpowiedź ze zdaniem:
  "Popularne wybory to: [cytat ze strony A], [cytat ze strony B], 
   [cytat z Twojej strony]"
→ Użytkownik czasami klika w linki, czasami nie – ale Twoja marka 
  pojawia się w odpowiedzi

Oba kanały teraz działają równolegle.

Co się zmienia dla sklepu?

1. Struktura treści na stronie musi się zmienić

Stare podejście (zoptymalizowane pod tradycyjne SEO):

Tytuł: Laptop do programowania

Najlepszy laptop do programowania to coś, co ma...
[dwie strony gęstego tekstu]

To działa dla człowieka czytającego, ale AI Mode potrzebuje więcej struktury.

Nowe podejście (pod query fanout):

# Laptop do programowania – pełny przewodnik 2025

## Co musisz wiedzieć zanim kupisz laptop do programowania?

### 1. Procesor – Intel czy AMD?
AMD Ryzen 7 jest szybszy dla kompilacji kodu...
[konkretne testy]

### 2. RAM – ile potrzebujesz?
- Dla Python: 8-16 GB
- Dla Web Dev: 16 GB minimum
- Dla AI/ML: 32 GB

### 3. Dysk SSD – ile?
Minimum: 512 GB
Rekomendacja: 1 TB

[Każdy punkt ma jasną, samostrną odpowiedź]

## Porównanie popularne modele

| Model | Procesor | RAM | SSD | Cena | Ocena |
| --- | --- | --- | --- | --- | --- |
| Model A | Ryzen 7 | 16GB | 512GB | 3999 | 9.2 |
| Model B | i7-13 | 16GB | 1TB | 4499 | 9.5 |

[Każdy wiersz to fragment, który AI może wyciągnąć]

## FAQ – najczęściej pytania

P: Czy MacBook jest dobry do programowania?
O: Tak, ale...

P: Ile kosztuje dobry laptop do kodowania?
O: Od 3000 zł...

[Każda para P&O to potencjalne podzapytanie]

## Opinie użytkowników

"Kupiłem ten laptop, programuję w Pythonie i teraz zarabiam..." (15 opinii pozytywnych)

Widzisz różnicę? Druga struktura pozwala AI wyciągać fragmenty dla każdego podzapytania.

2. Dane strukturalne (Schema Markup) to teraz obowiązek

Schema.org to sposób, aby "powiedzieć" AI, co dokładnie oznaczają liczby i słowa na Twojej stronie.

Przykład:

<!-- BEZ Schema -->
Laptop kosztuje 3999 złotych

<!-- Z Schema (AI rozumie, że to cena) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Laptop do programowania Model X",
  "price": "3999",
  "priceCurrency": "PLN",
  "availability": "https://schema.org/InStock",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "125"
  }
}
</script>

Dzięki temu, gdy AI szuka "aptopy do programowania do 4000 złotych", Twoja strona pojawia się w wynikach.

3. Autorytet i cytowania ważne bardziej niż kiedykolwiek

Query fanout faworyzuje źródła, które są cytowane wielokrotnie w odpowiedziach AI. Jeśli Twoja strona pojawia się w odpowiedziach na wiele podzapytań - to oznacza, że jesteś autorytetem.

Jak zbudować autorytet?

  • Pisz o tym, co wiesz najlepiej
  • Dodawaj konkretne dane, testy, liczby
  • Cytuj innych i linkuj - to pokazuje, że się orientujesz
  • Buduj backlinki od renomowanych źródeł
  • Regularnie aktualizuj treść
Sprawdź czy AI widzi Twój sklep

Wykonaj darmowy audyt

Praktyczne porady

Poradnik 1: Mapowanie Query Fanout dla Twojego produktu

Załóżmy, że prowadzisz sklep z powerbankami.

Krok 1: Wybierz główne pytanie (core query)

"Najlepszy powerbank do 150 złotych"

Krok 2: Rozszerz o kontekst

Zastosowanie:

  • Do telefonu
  • Do laptopa
  • Do podróży
  • Do pracy

Cechy:

  • Pojemność (mAh)
  • Szybkość ładowania
  • Rozmiar
  • Waga

Profil użytkownika:

  • Student
  • Pracownik biurowy
  • Podróżnik
  • Gamer

Typ porównania:

  • Konkurencja
  • Poprzednia generacja
  • Alternatywy

Krok 3: Generuj konkretne podzapytania

Krok 4: Dla każdego podzapytania przygotuj sekcję na stronie

## Ile razy powerbank 20000 mAh naładuje mój telefon?

To zależy od pojemności baterii Twojego telefonu:

- iPhone 14 (3200 mAh): ~6 razy
- Samsung Galaxy S24 (4000 mAh): ~5 razy
- OnePlus 12 (5400 mAh): ~3.5 razy
- iPad Air (8600 mAh): ~2 razy

**Jak to się oblicza?**
20000 mAh (powerbank) / 4000 mAh (telefon) = 5 ładowań
(w praktyce mniej ze względu na straty energii)

## Czy powerbank 20000 mAh naładuje laptopa?

Tak, ale...
- Musi mieć wyjście USB-C Power Delivery
- Musi być co najmniej 65W
- Starsze laptopy (z USB Micro) – nie

Nasz model: 100W, USB-C PD, ładuje MacBooka Air w 2.5 godziny.

## Powerbank na wakacje – czy się zmieści?

- Wymiary: 12 x 7 x 3 cm
- Waga: 420 g
- Zmieści się w plecaku, kosmetyczce, kieszeni dużej torebki
- Idealny na wakacje (nie zajmuje miejsca)

[itd.]

Poradnik 2: Pisanie treści pod Query Fanout - szablon

Szablon nagłówka (dla każdego aspektu)

# [Produkt] – kompletny przewodnik [rok]

## Co powinieneś wiedzieć zanim kupisz [produkt]?

### 1. [Pierwszy krytyczny aspekt]
- Definicja dla początkujących
- Dlaczego to ważne
- Jak to sprawdzić w praktyce

### 2. [Drugi aspekt]
[to samo]

### 3. [Trzeci aspekt]
[to samo]

## Porównanie popularne modele

| Nazwa | Spec1 | Spec2 | Cena | Opinia |
| --- | --- | --- | --- | --- |
| Model A | | | | |

## FAQ – najczęstsze pytania

P: [Pytanie które pojawiło się w Google Trends]
O: [Konkretna odpowiedź]

## Opinie użytkowników

"Historia użytkownika, dlaczego kupił, jakie są jego doświadczenia"

Poradnik 3: Implementacja Schema.org dla produktu

<!DOCTYPE html>
<html>
<head>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Powerbank 20000 mAh SuperCharge",
  "image": ["https://...1.jpg"],
  "description": "Powerbank do 150 złotych z szybkim ładowaniem",
  "brand": {
    "@type": "Brand",
    "name": "TechBrand"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://...produkt",
    "priceCurrency": "PLN",
    "price": "129.99",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "348",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Użytkownik Jan"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Super powerbank, polecam"
    }
  ]
}
</script>
</head>
</html>

Dzięki temu AI wie dokładnie:

  • Jaka jest cena
  • Ile opinii masz
  • Czy jest dostępny
  • Co mówią o tym użytkownicy

Query Fanout w rzeczywistych scenariuszach

Scenariusz 1: Klient szuka "porównania"

Prompt użytkownika:

"Rower gravel czy rower szosowy - który wybrać?"

Podzapytania, które generuje AI:

  • "Rower gravel - co to jest, do czego"
  • "Rower szosowy - parametry, przeznaczenie"
  • "Gravel vs szosa - różnice techniczne"
  • "Gravel czy szosa do turystyki rowerowej"
  • "Gravel czy szosa - cena w Polsce"
  • "Opinie – który rower lepszy dla początkującego"
  • "Testy – gravel vs szosa przyczepność"

Co powinna zawierać Twoja strona, aby pojawić się:

  • Definicje (gravel + szosa)
  • Porównanie w tabeli
  • Opinie rzeczywistych użytkowników
  • Ceny (linki do sklepów)
  • Testy praktyczne
  • Dla kogo każdy typ

Scenariusz 2: Klient ma konkretny problem

Prompt użytkownika:

"Słuchawki bezprzewodowe się szybko rozładowują"

Podzapytania:

  • "Dlaczego słuchawki bezprzewodowe szybko się rozładowują"
  • "Słuchawki Bluetooth - jak wydłużyć czas pracy"
  • "Które słuchawki mają najdłuższy czas pracy"
  • "Zmiana baterii w słuchawkach - czy możliwe"
  • "Problemy z baterią słuchawek - forum"

Co powinna zawierać Twoja treść:

  • Przyczyny (czemu tak się dzieje)
  • Poradnik (jak przedłużyć żywotność)
  • Porównanie słuchawek z najlepszą baterią
  • Informacje o serwisie
  • Porady techniczne (kalibracja baterii)

Scenariusz 3: Klient porównuje marki

Prompt użytkownika:

"Xiaomi czy Samsung - smartfon 2025"

Podzapytania:

  • "Xiaomi vs Samsung - porównanie specyfikacji"
  • "Xiaomi czy Samsung - co polecają eksperci"
  • "Xiaomi - opinie użytkowników 2025"
  • "Samsung - opinie użytkowników 2025"
  • "Xiaomi czy Samsung - który lepszy do zdjęć"
  • "Cena Xiaomi vs Samsung"
  • "Serwis Xiaomi vs Samsung w Polsce"

Co powinna zawierać:

  • Porównanie techniczne w tabeli
  • Opinie redakcji
  • Zdjęcia z aparatów (porównanie fotografii)
  • Ceny w polskich sklepach
  • Dostępność serwisu
  • Gwarancja

Technika - kod i implementacja

Kod 1: Generowanie podzapytań z GPT-5 (python)

import openai

def generate_sub_queries(main_query, num_queries=10):
    """
    Generuje podzapytania do głównego pytania
    """
    
    prompt = f"""
    Jesteś ekspertem w SEO i AI Search Optimization.
    
    Użytkownik zadał następujące pytanie:
    "{main_query}"
    
    Wygeneruj {num_queries} powiązanych podzapytań, które użytkownik 
    mógł mieć w głowie lub które AI Mode mogłaby wygenerować.
    
    Podzapytania powinny pokrywać:
    - Definicje i wyjaśnienia
    - Porównania i alternatywy
    - Ceny i dostępność
    - Opinie i doświadczenia
    - Problem-solving
    
    Zwróć tylko listę podzapytań, jeden per linia.
    """
    
    response = openai.ChatCompletion.create(
        model="gpt-5",
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.7,
        max_tokens=1000
    )
    
    sub_queries = response.choices[0].message.content.strip().split('\n')
    return [q.strip() for q in sub_queries if q.strip()]

# Przykład użycia:
main_q = "Jaki powerbank wybrać do 150 zł"
subs = generate_sub_queries(main_q)

for i, sub in enumerate(subs, 1):
    print(f"{i}. {sub}")

# Wynik:
# 1. Ile mAh powinien mieć powerbank do telefonu
# 2. Powerbank 20000 mAh czy 30000 mAh – który lepszy
# 3. Najlepsze powerbanki do 150 zł 2025
# itd.

Kod 2: Symulacja Query Fanout - wyszukiwanie wielokanałowe (python)

import asyncio
from typing import List, Dict

class QueryFanoutSimulator:
    """
    Symuluje działanie query fanout
    """
    
    def __init__(self):
        self.databases = {
            'products': self.search_products,
            'reviews': self.search_reviews,
            'forums': self.search_forums,
            'prices': self.search_prices,
            'youtube': self.search_youtube
        }
    
    async def execute_fanout(self, main_query: str, sub_queries: List[str]) -> Dict:
        """
        Wykonuje query fanout dla głównego pytania
        """
        
        print(f"Główne pytanie: {main_query}\n")
        print(f"Wygenerowane podzapytania ({len(sub_queries)}):")
        for sq in sub_queries:
            print(f"  - {sq}")
        
        print("\n--- Równoczesne wyszukiwanie ---\n")
        
        # Dla każdego podzapytania, szukamy we wszystkich bazach jednocześnie
        tasks = []
        for sub_query in sub_queries:
            for db_name, search_func in self.databases.items():
                tasks.append(
                    self._search_with_metadata(db_name, search_func, sub_query)
                )
        
        # Wykonanie wszystkich jednocześnie
        results = await asyncio.gather(*tasks)
        
        # Agregacja wyników
        aggregated = self._aggregate_results(results)
        
        return aggregated
    
    async def _search_with_metadata(self, source: str, search_func, query: str):
        """
        Wyszukiwanie z metadanymi (jaki source, ranking)
        """
        results = await search_func(query)
        return {
            'source': source,
            'query': query,
            'results': results,
            'count': len(results)
        }
    
    async def search_products(self, query: str) -> List[Dict]:
        """Symulacja szukania produktów"""
        await asyncio.sleep(0.5)  # Symulacja opóźnienia
        return [
            {'title': f'Produkt A dla "{query}"', 'rank': 1},
            {'title': f'Produkt B dla "{query}"', 'rank': 2}
        ]
    
    async def search_reviews(self, query: str) -> List[Dict]:
        """Symulacja szukania opinii"""
        await asyncio.sleep(0.3)
        return [
            {'title': f'Recenzja: {query}', 'rank': 1, 'rating': 4.8}
        ]
    
    async def search_forums(self, query: str) -> List[Dict]:
        """Symulacja szukania na forach"""
        await asyncio.sleep(0.4)
        return [
            {'title': f'Forum - {query}', 'rank': 1, 'replies': 23}
        ]
    
    async def search_prices(self, query: str) -> List[Dict]:
        """Symulacja wyszukiwania cen"""
        await asyncio.sleep(0.2)
        return [
            {'title': f'Ceny - {query}', 'price_min': 100, 'price_max': 300}
        ]
    
    async def search_youtube(self, query: str) -> List[Dict]:
        """Symulacja szukania na YouTube"""
        await asyncio.sleep(0.6)
        return [
            {'title': f'Video: {query}', 'views': '1M', 'rating': 4.9}
        ]
    
    def _aggregate_results(self, all_results: List[Dict]) -> Dict:
        """
        Agregacja i ranking wyników (uproszczone RRF)
        """
        
        aggregated = {}
        source_count = {}
        
        for result_group in all_results:
            source = result_group['source']
            query = result_group['query']
            
            # Liczenie ile razy źródło pojawia się
            source_count[source] = source_count.get(source, 0) + 1
            
            for result in result_group['results']:
                title = result['title']
                if title not in aggregated:
                    aggregated[title] = {
                        'title': title,
                        'sources': [],
                        'score': 0
                    }
                
                aggregated[title]['sources'].append(source)
                aggregated[title]['score'] += 1
        
        # Sortowanie po score (ile źródeł potwierdza rezultat)
        ranked = sorted(
            aggregated.values(),
            key=lambda x: x['score'],
            reverse=True
        )
        
        return {
            'total_results': len(ranked),
            'top_results': ranked[:5],
            'sources_used': source_count
        }

# Użycie:
async def main():
    simulator = QueryFanoutSimulator()
    
    main_query = "Najlepszy powerbank do pracy biurowej"
    sub_queries = [
        "powerbank do laptopa",
        "powerbank – najdłuższy czas pracy",
        "powerbank do biura – opinie",
        "powerbank szybkie ładowanie"
    ]
    
    results = await simulator.execute_fanout(main_query, sub_queries)
    
    print("\n--- Wyniki zagregowane ---\n")
    print(f"Znaleziono: {results['total_results']} unikalnych wyników")
    print(f"Źródła: {results['sources_used']}\n")
    
    print("Top 5 wyników (posortowane po popularności):")
    for i, result in enumerate(results['top_results'], 1):
        print(f"{i}. {result['title']}")
        print(f"   Score: {result['score']} | Źródła: {', '.join(result['sources'])}\n")

# Uruchomienie
if __name__ == "__main__":
    asyncio.run(main())

Kod 3: Ekstrakcja fragmentów (passage extraction) (python)

from typing import List

def extract_passages_for_fanout(content: str, query: str) -> List[str]:
    """
    Wyciąga fragmenty treści, które odpowiadają na podzapytanie
    """
    
    # Rozbicie na paragrafy
    paragraphs = content.split('\n\n')
    
    relevant_passages = []
    
    for para in paragraphs:
        # Szukanie ważnych słów z zapytania
        score = calculate_relevance(para, query)
        
        if score > 0.6:  # Próg: 60% trafności
            # Ograniczenie do 2-3 zdań (fragmentu)
            sentences = para.split('. ')
            passage = '. '.join(sentences[:3]) + '.'
            relevant_passages.append({
                'text': passage,
                'score': score,
                'length': len(passage)
            })
    
    # Sortowanie po score
    relevant_passages = sorted(
        relevant_passages,
        key=lambda x: x['score'],
        reverse=True
    )
    
    return relevant_passages[:5]  # Top 5 fragmentów

def calculate_relevance(text: str, query: str) -> float:
    """
    Oblicza, jak bardzo tekst jest relevantny do zapytania (0-1)
    """
    
    query_words = query.lower().split()
    text_lower = text.lower()
    
    matches = sum(1 for word in query_words if word in text_lower)
    relevance = matches / len(query_words) if query_words else 0
    
    return min(relevance, 1.0)  # Max 100%

# Przykład:
content = """
Powerbank to urządzenie, które przechowuje energię i ładuje Twój telefon.
20000 mAh oznacza pojemność – im więcej mAh, tym więcej razy naładuje telefon.

Powerbank do pracy biurowej powinien być kompaktowy i wygodny.
Nasz powerbank waży tylko 300 gramów i mieści się w torebce.

Szybkie ładowanie to ważna cecha. Nasz model wspiera szybkie ładowanie 65W.
"""

passages = extract_passages_for_fanout(content, "powerbank do pracy biurowej")

for i, p in enumerate(passages, 1):
    print(f"{i}. (score: {p['score']:.2f})")
    print(f"   {p['text']}\n")

# Wynik:
# 1. (score: 0.67)
#    Powerbank do pracy biurowej powinien być kompaktowy i wygodny...
#
# 2. (score: 0.50)
#    Nasz powerbank waży tylko 300 gramów...

Sprawdź czy AI widzi Twój sklep

Wykonaj darmowy audyt

Błędy i pułapki

Błąd 1: Pisanie tylko dla ludzi, nie dla AI

Zła strona:

Bestsellerowy powerbank 2025! Nasze produkty to gwarancja zadowolenia.
Kup teraz, a zaoszczędzisz 50 zł. Zamawiaj za darmo od 100 zł...

Dlaczego źle? AI Mode nie wie:

  • Czy to powerbank do telefonu czy laptopa
  • Ile mAh ma
  • Ile kosztuje
  • Jakie ma opinie

Dobra strona:

## Co to jest powerbank 20000 mAh?

Powerbank to urządzenie do ładowania z pojemością 20000 mAh.

### Ile razy naładuje telefon?

- iPhone 14: 6 razy
- Samsung S24: 5 razy

### Cena

129.99 złotych (promocja z 199 zł)

### Opinie

Rating: 4.8/5 (348 opinii)

AI może z tego wyciągnąć: pojemność, zastosowanie, cenę, opinie.

Błąd 2: Niedokończone artykuły

Wiele sklepów ma artykuły typu "Artykuł w przygotowaniu" lub "Wkrótce". To jest niewidoczne dla AI Mode - artykuł jest ignorowany.

Reguła: Publikuj kompletne artykuły. Jeśli nie masz czasu, lepiej wiele krótkich artykułów niż jeden niedokończony długi.

Błąd 3: Brak danych strukturalnych

Bez Schema:
Słuchawki kosztują 299
Z Schema:
<span itemscope itemtype="https://schema.org/Offer">
  <span itemprop="price">299</span>
  <span itemprop="priceCurrency">PLN</span>
</span>

Bez Schema, AI może sądzić, że to jest rok lub numer modelu. Ze Schema - wie, że to cena.

Błąd 4: Kopiowanie konkurencji

Jeśli wszystkie sklepy piszą identycznie ("Najlepszy powerbank to…"), żaden się nie wyróżni. Query fanout faworyzuje unikatową perspektywę.

Dobra praktyka:

  • Twoja historia (jak wpadłeś na ideę)
  • Twoje testy (sam sprawdziłeś)
  • Twoje opinie (co myślisz)

To AI weźmie chętniej.

FAQ - Najczęstsze pytania

Czy Query Fanout dotyczy wszystkich branż?
Nie. Najbardziej dotyczy branż, gdzie decyzje są złożone:

  • E-commerce (wybór produktu)
  • Turystyka (planowanie podróży)
  • Porady (jak coś zrobić)
  • Edukacja (nauka czegoś)

Mniej dotyczy:

  • Zapytań faktograficznych (“Kto został prezydentem Polski w 2025?”)
  • Informacji realtime (pogoda, kursy)


Ile czasu zajmuje adaptacja sklepu pod Query Fanout?

Dla małego sklepu (50-100 produktów): 2-4 tygodnie, dla średniego (1000 produktów): 2-3 miesiące, dla dużego (10000+ produktów): 6 miesięcy+
To nie jest jednorazowa praca - to ciągły proces.


Czy dobrze rankingowany produkt tradycyjnie, będzie widoczny w AI Mode?
Zwykle tak, ale nie zawsze. AI Mode ma inne kryteria niż tradycyjne SEO. Możliwe, że będziesz wysoko w tradycyjnym wyszukiwaniu, ale nie w AI Mode (lub vice versa). Dlatego obie strategie są ważne.

Czy Query Fanout zmienia sposób, pozyskiwania ruchu z Google Ads?
Na razie nie - Google Ads wciąż działa. Ale długoterminowo, jeśli coraz więcej osób będzie korzystać z AI Mode zamiast tradycyjnego wyszukiwania, model biznesu może się zmienić. Warto inwestować w inne kanały (email, media społecznościowe, partnerstwa).


Czy ChatGPT również używa Query Fanout?
ChatGPT używa zaawansowanej wersji (zapytuje użytkownika o wyjaśnienia, sam rozbija zapytania wewnętrznie). Ale nie ma widoczności jak Google AI Mode. Inne narzędzia:

  • Perplexity AI - wykorzystuje query fanout jawnie
  • Claude - ma własną metodę
  • Chatboty sklepów - mogą mieć uproszczoną wersję


Czy moja treść musi być dosłownie na mojej stronie?
Nie. AI Mode może też cytować fragmenty z innych źródeł. Ale jeśli masz swoją stronę - to znacznie zwiększa szanse na widoczność w odpowiedziach.

Czy AMP lub mobile-first jest ważne dla Query Fanout?
Tak, ale nie tak jak dla tradycyjnego SEO. AI Mode ważne są:

  • Możliwość sprawdzenia treści
  • Struktura danych
  • Autorytet
  • Aktualność

Ale nie koniecznie prędkość strony (chociaż szybka strona zawsze pomaga).

Czy teraz powinienem zatrudnić copywritera?
Jeśli wcześniej nie miałeś - tak. Query Fanout wymaga dużej ilości, wysokiej jakości treści. Jeden copywriter powinien pisać artykuł na tydzień (przynajmniej).

Słownik pojęć

AI Mode - tryb Google Search, gdzie odpowiedzi są generowane przez AI (zamiast listy linków)

Aggregation (Agregacja) - połączenie wyników z wielu źródeł w jedną odpowiedź

Asyncio - biblioteka Pythona do równoczesnego wykonywania zadań

Autorytet (Authority) - wiedza Google, że dana strona jest godna zaufania w danym temacie

Backlink - link z innej strony do Twojej

Chatbot - program, który rozmawia z użytkownikiem

Chunk (Kawałek) - mały fragment tekstu (np. jeden paragraf)

Core Query - główne pytanie, od którego zaczynamy

Dekompozycja - rozbijanie jednego pytania na wiele mniejszych pytań

Embedding - przekształcenie tekstu na liczby (wektory), które reprezentują znaczenie

Fanout - rozpowszechnianie, rozpylanie (tu: rozpowszechnianie zapytania)

Gemini - model AI firmy Google (odpowiednik ChatGPT)

Generator (LLM) - model AI, który generuje tekst

Hallucynacja - kiedy AI zmyśla informacje, które nie są prawdziwe

Intent Recognition - rozpoznawanie, co naprawdę chce użytkownik (nie tylko co napisał)

LLM (Large Language Model) - duży model języka (ChatGPT, Gemini, Claude)

Passage Extraction - wyciąganie fragmentów tekstu, które są relevantne

Query - pytanie, zapytanie

Query Decomposition - rozbijanie pytania na podzapytania

Query Fanout - rozpowszechnianie pytania na wiele podzapytań przez AI

RAG (Retrieval-Augmented Generation) - wyszukiwanie informacji + generowanie odpowiedzi

Reciprocal Rank Fusion (RRF) - algorytm do łączenia wyników z wielu źródeł

Relevance - czy wynik jest odpowiedni do zapytania

Retrieval - wyszukiwanie, szukanie informacji

Schema.org - standard do oznaczania danych na stronach

Semantyka - znaczenie słów i tekstów

SEO - optymalizacja dla wyszukiwarek

Sub-query - podzapytanie, mniejsze pytanie

Synthesis – łączenie informacji z wielu źródeł

Vector Database - baza danych przechowująca tekst jako wektory

Vector Similarity - jak bardzo dwa teksty są do siebie podobne

Checklist - co zrobić w swoim sklepie?

  • Analiza - Sprawdzić, jak funkcjonuje Query Fanout dla Twoich głównych produktów (szukaj w Google AI Mode)
  • Mapowanie - Stworzyć listę podzapytań dla top 10 produktów
  • Audyt treści - Sprawdzić, które strony mają już fragmenty adresujące podzapytania
  • Struktura - Przeorganizować strony produktowe: dodaj FAQ, dodaj porównania w tabelach, dodaj opinie użytkowników, dodaj sekcje "Co musisz wiedzieć"
  • Schema - Wdrożyć Schema.org na wszystkie strony produktów
  • Treść - Napisać artykuły na "buying guide" dla top kategorii
  • Backlinki - Zacząć budować autorytet (artykuły na zewnętrznych serwisach)
  • Monitoring - Śledzić widoczność w AI Mode (nowe narzędzia to umożliwiają)
  • Iteracja - Co miesiąc analizować podzapytania i aktualizować treść

Podsumowanie

Query Fanout to nie przyszłość - to już teraźniejszość. Od maja 2025 roku Google AI Mode działa w produkcji, a konkurencja nadąża (ChatGPT, Claude, Perplexity).

Kluczowe punkty do zapamiętania:

  1. Query Fanout to rozbijanie pytania na podzapytania - AI szuka ich równolegle
  2. Tradycyjne SEO wciąż istnieje - ale obok niego pojawia się nowy kanał (visibility w AI Mode)
  3. Struktura treści się zmienia - zamiast jednego tekstu dla jednego hasła, piszesz kompletny przewodnik adresujący wiele aspektów
  4. Schema.org to teraz obowiązek - AI musi rozumieć, co oznaczają liczby i słowa na Twojej stronie
  5. Autorytet ważny bardziej niż kiedykolwiek - AI faworyzuje źródła, które pojawiają się wielokrotnie w odpowiedziach
  6. To jest maraton, nie sprint - wdrażaj powoli, testuj, iteruj

Query Fanout daje nowe możliwości dla Twojego sklepu. Nie musisz być programistą - zacząć możesz od przeanalizowania, jak Query Fanout działa dla Twoich produktów, mapowania podzapytań, i przygotowania lepszej treści.

Reszta przyjdzie naturalnie.

Źródła

Udostępnij:

Sprawdź, czy ChatGPT Cię widzi

Wpisz adres Twojej strony, żeby otrzymać raport widoczności w AI.