# Jak naprawdę działa algorytm X (Twitter): analiza 7667 plików kodu źródłowego

> Sklonowaliśmy repo algorytmu X. 4880 plików Scala, 145 000 społeczności w SimClusters, 15 head'ów modelu rankingu. Co to znaczy dla osoby budującej zasięg w 2026.

- Źródło: https://growto.pl/blog/algorytm-x
- Autor: Andrzej Suchecki, founder Growto (https://growto.pl/o-nas)
- Wydawca: Growto, https://growto.pl
- Opublikowano: 2026-05-17
- Tagi: social-media, algorytm-x, marketing
- Licencja cytowania: treść można cytować z podaniem źródła i linku.

## W skrócie

Kod rekomendacji X jest publiczny, ale wagi modelu w repozytorium mają wartość zero: realne mnożniki ładowane są dopiero w runtime. Najsilniejszy znany sygnał zasięgu to odpowiedź autora wpisu na Twój komentarz, mnożnik szacowany na około 75x. Dlatego komentowanie cudzych wpisów buduje zasięg taniej niż publikowanie własnych.

W 2023 Twitter (dziś X) opublikował kod źródłowy swojego algorytmu rekomendacji. Sklonowaliśmy repo i przeczytaliśmy najważniejsze pliki Scali i Pythona. Wypisaliśmy to, co rzeczywiście liczy się dla Twojego zasięgu w 2026. Bez clickbaitów, z nazwami plików i mnożnikami.

## Skrót: 6 rzeczy dla osoby, która nie chce czytać 22 min

1. **Repo pokazuje architekturę, bez produkcyjnego konfigu.** 4880 plików Scala, ale wszystkie wagi modelu rankingu mają w kodzie `default = 0.0`. Realne wartości X ładuje w runtime z osobnego systemu feature switches, nie są publiczne. Wagi typu „like = 0.5, retweet = 1.0, reply = 13.5” pochodzą z wycieków i komentarzy inżynierów; w repo ich nie ma.
2. **Reply engaged by author, mnożnik ~75x.** Najsilniejszy pozytywny sygnał. To moment, kiedy autor tweeta odpowiada na Twój komentarz. Algorytm interpretuje to jako „ktoś o autorytecie uznał Twój komentarz za wartościowy”, i wystrzeliwuje Twoją widoczność. Najtańsza droga do zasięgu: komentuj cudze zamiast publikować wyłącznie swoje.
3. **Out-of-network handicap 0.75x.** Hard-coded w pliku `OONTweetScalingScorer.scala`. Każdy tweet pokazany komuś, kto Cię nie obserwuje, dostaje mnożnik 0.75, musi być ~33% lepszy niż średnia, żeby pokonać ten handicap. To dlatego ślepe „follow for follow” nie działa, a budowa sieci to gra długoterminowa.
4. **Negatywny feedback to 140 dni karencji.** Klasa `FeedbackFatigueScorer.scala` nakłada mnożnik 0.2x, który liniowo wraca do 1.0x w 4 krokach po 35 dni. Mute / block / raport są jeszcze gorsze. Jeśli publikujesz coś kontrowersyjnego odbiorcom, którzy przyszli po co innego, płacisz cenę przez 4 miesiące.
5. **SimClusters: ~145 000 społeczności.** X mapuje wszystkich userów na ~145k klastrów odkrytych algorytmem Metropolis-Hastings na grafie podobieństwa producent-producent. Twoja widoczność zależy od overlapów Twoich klastrów z klastrami odbiorcy, w mniejszym stopniu od „follow grafu” jako całości.
6. **Wideo < 10s nie liczy się dla rankingu wideo.** Klasy `PredictedVideoQualityViewScoreFeature` i `PredictedVideoQualityWatchScoreFeature` mają hard-coded gating: tylko wideo dłuższe niż 10 sekund uruchamia te head'y modelu. Krótsze klipy są oceniane wyłącznie na engagement tekstowy.

## Kontekst: repo, pliki, narzędzia

W marcu 2023 Twitter pod presją Elona Muska otworzył kod źródłowy algorytmu For You Timeline. Repo [github.com/twitter/the-algorithm](https://github.com/twitter/the-algorithm) zawiera 7667 plików: 4880 Scali, 1043 Javy, 180 Pythona, 30 Rusta, 114 plików Thrift (definicje serwisów RPC). Razem 57 MB skompresowane. Jak na coś, co podejmuje miliardy decyzji rankingowych dziennie, zaskakująco mało.

Sklonowaliśmy to lokalnie, przeczytaliśmy README, RETREIVAL_SIGNALS.md i pliki decydujące o rankingu w katalogach `home-mixer/` (główny serwis rankingu), `src/scala/com/twitter/simclusters_v2/` (community detection) i `trust_and_safety_models/`. Niżej synteza tego, co faktycznie jest w kodzie; każdą tezę da się wskazać w konkretnym pliku.

Zastrzeżenie: kod jest ze stanu na ~2023, z lekkim rebrandingiem 2024 („Twitter” na „X”, „Tweet” na „Post” w komentarzach i README). Architektura nie zmieniła się drastycznie, X zatrudnia tych samych inżynierów. Wagi modelu pewnie tak. Konkretne wartości wag traktujemy więc jako orientacyjne (wycieki z 2023); pewne są struktura i mnożniki wpisane na sztywno w kod.

## Architektura: z miliarda kandydatów do 50 tweetów

Każde otwarcie zakładki „For You” uruchamia wieloetapową kaskadę. To kanoniczny pattern systemów rekomendacyjnych: Netflix, YouTube i TikTok robią praktycznie to samo, różnią się tylko liczbą heurystyk i doborem sygnałów. Etapy:

```text
Request (otwarcie For You)
  │
  ▼
[1] CANDIDATE GENERATION  (~1B tweetów → ~1500 kandydatów)
  ├── search-index (Earlybird) ......... ~50% in-network
  ├── tweet-mixer ...................... out-of-network coordinator
  ├── UTEG (User-Tweet-Entity-Graph) ... GraphJet, in-memory graph traversal
  └── FRS (Follow Recommendation Svc) .. tweety od nowych autorów
  │
  ▼
[2] FEATURE HYDRATION  (~6000 features per kandydat)
  │   Mix sygnałów: SimClusters embeddings, TwHIN, real-graph,
  │   tweepcred PageRank, demograficzne, historia engagementu, czas.
  │
  ▼
[3] HEAVY RANKER  (neural network multi-task, ~15 head'ów)
  │   Przewiduje prawdopodobieństwa każdego typu engagementu:
  │   fav, retweet, reply, dwell, video quality view, share,
  │   bookmark, profile click, negative feedback, ...
  │
  ▼
[4] HEURISTIC RESCORING  (14+ rescorerów po pointwise score)
  ├── OON × 0.75 (handicap dla out-of-network)
  ├── FeedbackFatigue × 0.2-1.0 (140-day decay)
  ├── DiversityDiscount (autor diversity, media cluster diversity)
  ├── GrokSlopRescorer (penalizacja AI slop)
  ├── ImpressedAuthor decay (już Ci to pokazaliśmy → mniej)
  ├── MultimodalEmbedding rerankery
  └── ControlAi rescorers
  │
  ▼
[5] FILTERS  (visibility, dedup, language, NSFW, blocked, muted)
  │   OutOfNetworkCompetitorURLFilter, wycina out-of-network tweety
  │   z linkami do konkurencyjnych platform.
  │
  ▼
[6] MIXING  (z Ads, Who-to-Follow, prompts)
  │
  ▼
Serving (~50 tweetów do widoku)
```

Dwie rzeczy rzucają się w oczy. **Po pierwsze:** 50% kandydatów w For You to *in-network* (od osób, które obserwujesz), drugie 50% to *out-of-network*. To projektowy parytet, niezmienny od lat. **Po drugie:** kaskada 14+ rescorerów po pointwise scoringu to bardzo agresywne podejście, nawet jeśli heavy ranker NN da Twojemu tweetowi wysoki score, każdy z 14 listwise rerankerów ma szansę go obniżyć. Konkretnie: FeedbackFatigue (0.2x) razy OON (0.75x) razy DiversityDiscount (np. 0.5x, bo autor już pojawił się w Twoim feedzie tego dnia) daje finalny mnożnik **0.075x**, mimo wysokiego predicted score.

## Heavy Ranker, 15 head'ów modelu: co dokładnie X chce, żebyś zrobił

Heavy Ranker to neural network multi-task. Dla każdego kandydata przewiduje prawdopodobieństwo 15 różnych typów engagementu. Każdy z nich ma osobną wagę (parametr `home_mixer_model_weight_*`). Finalny score = suma *waga × predykcja* dla wszystkich head'ów. Pełna lista z pliku `PredictedScoreFeature.scala`:

| Head | Co przewiduje | Charakter | Waga (wyciek 2023) |
|---|---|---|---|
| fav | User polubił | + | 0.5 |
| retweet | User retweetnął | + | 1.0 |
| reply | User odpowiedział | ++ | 13.5 |
| reply_engaged_by_author | Autor odpisał na reply | +++ | **~75** |
| good_click_v2 | Klik + dwell > 2 sek na detail | + | 11.0 |
| good_profile_click | Klik profilu autora + engagement | + | 12.0 |
| bookmark | User zapisał do zakładek | + | ~13 |
| share | User udostępnił (link) | + | ~10 |
| dwell | User patrzył > X sek (threshold) | + | ~0.1 |
| vqv | Video quality view (≥10s wideo) | + | ~0.005 |
| negative_feedback_v2 | Mute / block / „See Fewer” | - - - | **-74** |
| report | User zgłosił tweet | - - - | **-369** |

Wagi z wycieków X 2023 (źródło: [github.com/twitter/the-algorithm](https://github.com/twitter/the-algorithm) + komentarze inżynierów na HackerNews). W open-source repo wszystkie wagi mają `default = 0.0`, to oznacza, że X świadomie usunął realne wartości. Po 3 latach mogły się zmienić, ale rząd wielkości pozostaje.

**Najważniejszy wniosek:** *reply_engaged_by_author* ma wagę ~75 i jest jednym z dwóch zdarzeń, które wystrzeliwują zasięg dosłownie poza Twoją sieć follow. Jeśli ktoś z dużym kontem odpisze na Twój komentarz pod jego postem, ten cały wątek (włącznie z Twoim komentarzem) zostanie pokazany dziesiątkom tysięcy ludzi, którzy Cię nie obserwują.

To zmienia strategię budowy zasięgu od zera. Tradycyjnie: publikuj dużo, czekaj, buduj followersów. Nowocześnie: znajdź 20-30 dużych kont w Twojej niszy, codziennie zostawiaj przemyślane komentarze w pierwszych 15 minutach od publikacji ich postów. Jeden reply od autora potrafi dać 100 nowych obserwujących.

## Heurystyki: cztery reguły, których X nie ukrył

Wagi modelu rankingu są w configu (więc X może je zmieniać bez deploy). Ale niektóre rzeczy są wpisane *na sztywno* w kodzie. To one są najpewniejszą wiedzą o działaniu algorytmu, bo nie podlegają bieżącym eksperymentom A/B.

### 1. Out-of-network handicap = 0.75x

Plik `home-mixer/.../OONTweetScalingScorer.scala`:

```scala
private val ScaleFactor = 0.75

private def selector(candidate): Boolean = {
  !candidate.features.getOrElse(InNetworkFeature, false) &&
  !candidate.features.getOrElse(IsRetweetFeature, false)
}

// Jeśli selector(candidate) zwraca true, score *= ScaleFactor
```

Każdy tweet od osoby, której odbiorca *nie obserwuje*, dostaje mnożnik 0.75 finalnego score. To znaczy: żeby Twój tweet trafił do feedu kogoś, kto Cię nie obserwuje, musi mieć predicted engagement ~33% wyższy niż średni tweet w-sieci. Dlatego organiczny zasięg na X jest tak trudny: nawet idealnie napisany tweet musi przebić handicap.

### 2. 140 dni kary za „See Fewer”

Plik `home-mixer/.../FeedbackFatigueScorer.scala` definiuje:

```scala
val DurationForDiscounting = 140.days
private val ScoreMultiplierLowerBound = 0.2
private val ScoreMultiplierUpperBound = 1.0
private val ScoreMultiplierIncrementsCount = 4
// 4 kroki × 35 dni = 140 dni
// startuje od 0.2, kończy na 1.0
```

Jeśli odbiorca kliknął kiedyś na Twoim tweecie „See Fewer” (lub na tweecie autora, którego retweetnąłeś, albo na osobie, która polubiła Twój tweet, pełna kaskada), algorytm dyskontuje Twoje przyszłe tweety dla tego odbiorcy: na początku 0.2x, potem liniowo do 1.0x przez 140 dni. To jest *persistent memory*: pomyłka w komunikacji w styczniu kosztuje Cię zasięg do czerwca. Pozytywny feedback (like, retweet) tak długiej pamięci nie ma.

### 3. Linkujesz do konkurenta? Tweet wycięty z OON

Plik `home-mixer/.../OutOfNetworkCompetitorURLFilter.scala`:

```scala
def hasOutOfNetworkUrlFromCompetitor(
  candidate, competitorUrls
): Boolean = {
  !candidate.features.getOrElse(InNetworkFeature, true) &&
  !candidate.features.getOrElse(IsRetweetFeature, false) &&
  candidate.features
    .getOrElse(TweetUrlsFeature, Seq.empty).toSet
    .intersect(competitorUrls).nonEmpty
}
```

Lista konkurencyjnych domen (`competitorUrls`) nie jest publiczna, wczytywana z external config. Powszechnie obserwowane: instagram.com, tiktok.com, youtube.com, threads.net, bsky.app, mastodon.social. Mechanizm jest prosty: jeśli tweet zawiera URL z listy **i** jest out-of-network (chcesz dotrzeć do osób spoza Twojej sieci) **i** nie jest retweetem, zostaje całkowicie odfiltrowany z feedu OON. In-network nadal go zobaczą.

### 4. Krótkie wideo nie wchodzą w ranking wideo

Klasy `PredictedVideoQualityViewScoreFeature` i `PredictedVideoQualityWatchScoreFeature` mają warunek:

```scala
override def isEligible(features, query): Boolean = {
  features.getOrElse(HasVideoFeature, false) &&
  (features.getOrElse(VideoDurationMsFeature, None)
    .getOrElse(0) / 1000.0) >= 10
}
```

Tylko wideo dłuższe niż 10 sekund uruchamia head'y „video quality view” i „video quality watch” modelu rankingu. Krótsze klipy są oceniane wyłącznie na bazie engagementu tekstowego (fav, retweet, reply). Konsekwencja: jeśli zależy Ci na rankingu wideo, planuj klipy 12-30 sekund. Poniżej 10s schodź tylko wtedy, gdy klip chwyta w pierwszej sekundzie i prowokuje reply.

## SimClusters: 145 000 społeczności, do których jesteś przypisany

SimClusters to algorytm wykrywania społeczności (*community detection*) opublikowany przez Twittera w KDD 2020 jako paper akademicki. To jeden z najinteligentniejszych komponentów całego systemu i zarazem ten, który najmocniej decyduje o tym, do kogo trafiają Twoje tweety.

Działa tak:

1. Graf follow jest traktowany jako bipartite: po jednej stronie konsumenci (osoby obserwujące), po drugiej producenci (osoby obserwowane).
2. Algorytm liczy macierz podobieństwa producent-producent jako *cosine similarity* wektorów ich obserwatorów. Dwóch producentów jest podobnych, jeśli mają tych samych followersów.
3. Na tej macierzy uruchamiane jest sampling Metropolis-Hastings (Bayesian inference, jakby ktoś pytał) i wykrywa się ~145 000 spójnych społeczności.
4. Każdy producent jest „Known For” jedną społecznością (sparse). Każdy konsument ma wektor InterestedIn, w które społeczności klika i polubia.
5. Każdy tweet zaczyna z pustym wektorem embedding. Każde polubienie dolicza wektor InterestedIn likera do tweet embeddingu. Po godzinie tweet ma „cień” społeczności, w których jest popularny.
6. Kiedy ktoś otwiera For You, system znajduje top-K tweetów najbliższych jego wektorowi InterestedIn (Approximate Nearest Neighbor w SimClusters ANN).

**Co to znaczy w praktyce?** Twoja widoczność zależy mniej od „follow grafu” jako całości, bardziej od tego, czy społeczności Twoich obserwujących nakładają się ze społecznościami osób, do których chcesz dotrzeć.

Konkretny przykład. Załóżmy, że obserwuje Cię 500 osób. Jeśli to są deweloperzy Astro, marketerzy B2B i copywriterzy, należysz do społeczności „indie hackers / solo studio”. Tweet o algorytmie X trafi dobrze. Tweet o gotowaniu, nie, bo Twoi obserwujący nie kliknęli wystarczająco dużo tweetów o gotowaniu, żeby Cię „przypisać” do tej społeczności.

Konsekwencja strategiczna: **spójność niszy** to dosłowny sygnał dla algorytmu, w której z 145k społeczności jesteś. Skakanie między tematami rozmywa embedding i obniża widoczność w każdej z nich. Dla profilu B2B (np. założyciel agencji): 80% contentu w jednej niszy, 20% w maks. 2 powiązanych. To wniosek wprost z architektury systemu.

## Praktyka: 7 zasad wynikających bezpośrednio z kodu

### 1. Komentuj duże konta zamiast publikować wyłącznie swoje

*Reply_engaged_by_author* ma wagę ~75. Każdy reply autora pod Twoim komentarzem wyrzuca cały wątek (z Twoim komentarzem) do ludzi spoza Twojej sieci. Wybierz 20-30 dużych kont w niszy, włącz powiadomienia, komentuj w pierwszych 15 minutach od publikacji ich tweeta. To droga do zasięgu od zera, której nie blokuje OON handicap.

### 2. Pisz reply do własnego tweeta po 30-90 min

Algorytm sprawdza *reply_engaged_by_author* również dla autora odpowiadającego pod własnym wątkiem. Jeśli Twój tweet zaczyna zbierać komentarze, odpisz na 1-2 najlepsze. To uruchamia head 75x dla tych konkretnych respondentów. Ich wątek (z Twoim podpięciem) trafia szerzej.

### 3. Pisz tak, żeby ktoś chciał odpowiedzieć

Waga reply (13.5) jest 27× wyższa niż waga like (0.5). Tweet, który zbiera 200 polubień i 5 odpowiedzi, zostanie pokonany przez tweet z 50 polubieniami i 30 odpowiedziami. Pisz tezę („myślę, że X jest błędne, bo Y”) zamiast wniosku („3 powody, dla których X się opłaca”). Pytania kierunkowe na końcu („A Ty co o tym sądzisz? Może się mylę”) działają. „Like-bait” („zostaw like, jeśli się zgadzasz”) działa odwrotnie.

### 4. Nigdy nie linkuj do innych mediów społecznościowych

Tweet z linkiem do Instagram / TikTok / YouTube zostanie wycięty z out-of-network feedu (Twoi obserwujący zobaczą, reszta nie). Jeśli musisz wskazać inną platformę, zrób to w bio albo screenshotem bez linku. Lepiej: zhostuj content na X (wideo, thread) zamiast linkować.

### 5. Trzymaj 80% contentu w jednej społeczności SimClusters

Skakanie między tematami rozmywa embedding profilu w 145k społeczności. Wybierz jedną z nich (praktycznie: jedną wąską niszę, np. „indie SaaS founders”, „polski no-code”, „retail tech CEE”) i siedź w niej 80% czasu. 20% może być personalne / off-topic.

### 6. Wideo zawsze 12-30 sekund (minimum 10)

Wideo poniżej 10s nie uruchamia head'ów video quality view / video quality watch. Wideo dłuższe niż 30s traci widzów. Sweet spot: 12-30 sek. Pierwsza sekunda musi „chwytać” (text overlay z hookiem, akcja, kontrowersja).

### 7. Nie testuj kontrowersji na niedopasowanych odbiorcach

FeedbackFatigue trzyma „See Fewer” przez 140 dni. Jeśli wrzucisz polityczny albo ostro kontrowersyjny tweet odbiorcom, którzy znają Cię z B2B, masz 4 miesiące dyskonta zasięgu od osób, które klikną „See Fewer”. Kontrowersja ma cenę rozłożoną na miesiące. Albo trzymaj się niszy, albo bądź gotowy zapłacić.

## Czy X w 2026 to kanał, w który inwestować? Perspektywa SMB w Polsce

Brutalna odpowiedź: **zależy od tego, kim jesteś**. X w Polsce w 2026 to nie jest masowy kanał sprzedażowy. To kanał *personal brandu założyciela*, kanał B2B thought leadership, kanał dotarcia do dziennikarzy / inwestorów / decydentów technologicznych. Nie jest to TikTok ani Facebook Marketplace.

Dla typowej firmy SMB w Polsce (gabinet stomatologiczny w Krakowie, biuro księgowe w Łodzi, restauracja w Gdańsku) X jest **marnowaniem czasu**. Klient Cię tam nie szuka. Lepsze kanały:

- **SEO lokalne**, „dentysta Mokotów” to wyszukiwanie z intencją zakupową. Strona + Google Business Profile + content lokalny daje leady co miesiąc, evergreen, bez codziennego postowania.
- **Google Ads**, pod konkretne usługi premium (implant, pełna księgowość, wesele). Pełny tracking od kliknięcia do umówionej wizyty.
- **Lokalny content**, Instagram Reels z lokalizacją, lokalne FB grupy, lokalne katalogi. To kanały z lokalnym ruchem.

Dla kogo X w 2026 ma sens:

- **B2B SaaS**, buduje personal brand founderów, generuje warm leady od inwestorów, mediów, partnerów. Każdy polski founder SaaS (Brand24, RightHello, Survicate) ma na X aktywny profil.
- **Agencje kreatywne / dev shops**, case studies, behind-the-scenes, opinia branżowa. Sprzedaż przez DM od kogoś, kto czytał Twoje wątki przez 6 mc.
- **AI / ML / fintech / web3**, większość tej niszy mieszka na X; LinkedIn odgrywa tu rolę drugoplanową. To natywny ekosystem.
- **Solo founders i indie hackers**, buduj w transparentny sposób, MRR-y w bio, „what I learned” wątki. Kanał generujący followersów, którzy konwertują na klientów.
- **Konsultanci / freelancerzy z technicznej niszy**, opinia branżowa, „hot takes”, odpowiedzi na duże konta. Pierwsze leady przychodzą od czytelników, którzy Cię obserwowali 3-6 mc bez interakcji.

Jeśli mieścisz się w którymś z tych segmentów, wchodź. 30-60 min dziennie przez 6 miesięcy = 100-500 obserwujących z Twojej niszy, 2-5 warm leadów / mc, jeden artykuł / wątek może wygenerować 20 DM. Jeśli nie mieścisz się, zostaw X dla osobistego użytku i zainwestuj w SEO, Ads, content lokalny.

## Robimy to z Tobą: content engine pod algorytm

Growto to butikowe studio web dev + marketing. Robimy między innymi **content engine pod X i LinkedIn dla B2B SaaS, agencji i konsultantów**. Wdrożenie obejmuje:

- Audyt profilu pod 7 zasad z tego artykułu (1-2 godziny, raport z konkretnymi rekomendacjami)
- Strategy doc, z którymi 20-30 dużych kont w Twojej niszy wejść w interakcje, w jakich porach, z jaką częstotliwością
- Content engine, 3-5 tweetów dziennie albo wątek tygodniowo, pisane razem z nami lub przez nas
- Comment engine, 10-20 przemyślanych komentarzy dziennie pod dużymi kontami (najtańsza droga do zasięgu)
- Monthly review, które tweety zadziałały, dlaczego, co iterować

Pakiet od 800 PLN/mc, a zakres i cena zależą od tego, ile bierzemy na siebie: od audytu, strategii i wsparcia w tygodniu po cały content engine prowadzony przez nas. Bez zobowiązań długoterminowych. Pierwsze rezultaty widać po 6-8 tygodniach, a jeśli po 12 nie ma efektu, wracamy z pełną analizą i bez kolejnej faktury. [Umów rozmowę](/kontakt) albo zobacz [pakiety marketingowe](/uslugi/marketing).

## Najczęstsze pytania

### Czy w repo algorytmu X są realne wagi rankingu?

Nie. Wszystkie parametry ModelWeights w klasie HomeGlobalParams.scala mają default = 0.0. Faktyczne wartości produkcyjne wczytywane są w runtime z zewnętrznego systemu feature switches. Znane wagi (fav 0.5, retweet 1.0, reply 13.5, reply engaged by author ~75, negative feedback -74) pochodzą z wycieków i komentarzy inżynierów X z 2023 roku; samo open-source repo ich nie zawiera.

### Co to jest reply engaged by author i dlaczego ma wagę ~75?

To zdarzenie kiedy autor tweeta (np. influencer) odpowiada na komentarz, który zostawiłeś pod jego postem. Algorytm uznaje, że jeśli ktoś o dużym zasięgu zainteresował się Twoim komentarzem na tyle żeby napisać odpowiedź, to silny sygnał jakości. Mnożnik ~75x oznacza, że taki tweet trafia w feedy ludzi spoza Twojej sieci dużo agresywniej niż zwykły post. W praktyce to najtańsza droga do dużego zasięgu: zamiast dokładać kolejne własne tweety, komentuj pod cudzymi tak, żeby autor chciał Ci odpisać.

### Dlaczego treści spoza mojej sieci dostają mnożnik 0.75x?

To OONTweetScalingScorer.scala, hard-coded handicap 0.75x dla tweetów out-of-network (od osób których nie obserwujesz, non-retweet). Twitter w ten sposób promuje sieć follow, a treść z zewnątrz musi być ~33% mocniejsza (od strony predykcji engagementu) żeby pokonać ten handicap i trafić do Twojego feedu. Dla twórcy szukającego zasięgu poza własną siecią to oznacza, że treść musi być znacznie lepsza niż średnia żeby przebić się do nowych odbiorców.

### Czy linkowanie do innych mediów społecznościowych z X obniża zasięg?

Tak. W repo jest plik OutOfNetworkCompetitorURLFilter.scala, który filtruje out-of-network tweety (od osób których nie obserwujesz) zawierające URL-e z listy konkurencyjnych domen. Lista nie jest publicznie znana (jest w external config), ale w praktyce obserwowane jest tłumienie linków do Instagrama, TikToka, YouTube, Threads, Bluesky. Jeśli chcesz, żeby Twój tweet z linkiem był pokazany komuś spoza Twojej sieci, link nie powinien prowadzić do konkurencyjnej platformy.

### Ile czasu zajmuje algorytmowi zapomnienie negatywnego feedbacku?

Według FeedbackFatigueScorer.scala, 140 dni. Jeśli ktoś kliknął na Twoim tweecie „See Fewer” / „Mniej takich postów”, przez 140 dni Twoje treści będą skalowane mnożnikiem 0.2x na początku, liniowo rosnącym do 1.0x w 4 krokach po 35 dni. Mute, block i raport mają zazwyczaj jeszcze ostrzejsze efekty (Report ma zakres parametru od -20 000, co potrafi wyzerować widoczność tweeta dla całej kohorty).

### Czy ta wiedza pomaga firmie SMB sprzedawać na X?

Tak, ale pośrednio. X w Polsce w 2026 nie jest dominującym kanałem sprzedażowym dla SMB (w odróżnieniu od LinkedIna albo SEO). Wiedza o algorytmie pomaga jeśli budujesz: (1) personal brand założyciela jako lejek do firmy, (2) kanał edukacyjny B2B, (3) thought leadership w niszy, (4) traffic do landingu. Dla typowych usług lokalnych (gabinet stomatologiczny, kancelaria, biuro księgowe) lepszym kanałem jest SEO lokalne i Google Ads. X działa głównie w B2B SaaS, agencjach kreatywnych, fintechu i AI/ML, czyli tam, gdzie klient kupuje przede wszystkim nazwisko.

---

Growto to butikowa agencja z Warszawy, która projektuje i buduje strony internetowe, sklepy, systemy webowe i wdrożenia AI dla małych i średnich firm w Polsce, a następnie prowadzi ich pozycjonowanie i marketing. Cennik jest jawny, kod i infrastruktura należą do klienta, a za całość współpracy odpowiada jedna osoba. Cennik: https://growto.pl/cennik.md · Kontakt: andrzejsuchecki@growto.pl
