Przejdź do treści

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

Andrzej Suchecki · founder Growto

17 maja 2026 · 12 min czytania

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 PredictedVideoQualityViewScoreFeaturePredictedVideoQualityWatchScoreFeature 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 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:

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:

HeadCo przewidujeCharakterWaga (wyciek 2023)
favUser polubił+0.5
retweetUser retweetnął+1.0
replyUser odpowiedział++13.5
reply_engaged_by_authorAutor odpisał na reply+++~75
good_click_v2Klik + dwell > 2 sek na detail+11.0
good_profile_clickKlik profilu autora + engagement+12.0
bookmarkUser zapisał do zakładek+~13
shareUser udostępnił (link)+~10
dwellUser patrzył > X sek (threshold)+~0.1
vqvVideo quality view (≥10s wideo)+~0.005
negative_feedback_v2Mute / block / „See Fewer”- - --74
reportUser zgłosił tweet- - --369

Wagi z wycieków X 2023 (źródło: 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:

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:

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:

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 PredictedVideoQualityViewScoreFeaturePredictedVideoQualityWatchScoreFeature mają warunek:

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ę albo zobacz pakiety marketingowe.

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.

Więcej takich analiz, co 2 tygodnie.

Newsletter „Growletter": widełki, casy z liczbami, narzędzia AI dla MŚP. Zero spamu, wypis jednym klikiem.