Como funciona o algoritmo do X em 2026, lido direto do código

Quase toda dica sobre o algoritmo do X (antigo Twitter) chega de segunda mão: alguém ouviu que link derruba o alcance, que o Premium garante visualizações ou que uma denúncia apaga centenas de curtidas. O difícil é saber o que é verdade, porque o próprio X publica o código que monta o feed "Para você".
Este guia lê o código público do repositório oficial e traduz para a linguagem de quem trabalha com marketing: quanto vale cada ação, quais sinais derrubam um post, por quanto tempo ele circula e o que é mito.
Duas regras valem para o texto inteiro. Cada afirmação cita o arquivo de onde saiu. E, quando o código não prova algo, você vai ler isso com todas as letras. É por aí que vale começar.
O que o X publicou sobre o algoritmo, e de quando são esses dados?
O X mantém no GitHub o repositório xai-org/x-algorithm, com o código do sistema que escolhe e ordena os posts do feed "Para você". Este artigo se baseia na versão publicada em 4 de novembro de 2026. Para ser exato, é o commit b508926 do repositório, e os pesos estão no arquivo home-mixer/params/param.rs, que informa ter sido sincronizado com as configurações do X em 3 de novembro de 2026.
O que isso significa na prática:
- É o código publicado numa data, não uma janela ao vivo para a produção. O X faz testes A/B e pode mudar valores para grupos de usuários. O próprio repositório mostra mudanças de pesos em julho e agosto de 2026.
- Nem tudo está lá. O README avisa que parte das regras anti-spam e os prompts dos classificadores de IA não foram publicados.
- O repositório tem valores divergentes entre si. O arquivo
vm-ranker/params.rstraz valores padrão diferentes deparam.rs(por exemplo, curtida 0,5 em vez de 0,66). O README diz queparam.rsé atualizado automaticamente com os valores principais de produção, por isso este artigo usaparam.rs. Tratar os outros como valores de reserva é uma inferência nossa.
Para comparação: em 2023, o código aberto do Twitter (repositório twitter/the-algorithm-ml) dava 13,5 para resposta, 0,5 para curtida e −369 para denúncia. Os números de 2026 são outros, e a lógica também mudou.
Como o feed "Para você" escolhe os posts?
O feed é montado em quatro etapas: o sistema junta candidatos, descarta o que não pode aparecer, dá uma nota a cada post e, por fim, ajusta a ordem para o feed não ficar repetitivo. Isso acontece toda vez que você abre ou atualiza o feed.
- Candidatos. Entram posts de quem você segue e posts de fora da sua rede que o modelo acha que podem interessar.
- Filtros. Saem posts com mais de 48 horas, posts de contas que você bloqueou ou silenciou, posts com palavras que você silenciou, respostas e reposts de contas que você não segue, e ramos repetidos de uma mesma conversa (fica só o de nota mais alta). A lista completa está na tabela de filtros do README.
- Nota. Um modelo prevê a chance de você fazer cada ação com aquele post (curtir, responder, compartilhar, denunciar…) e transforma isso numa nota única.
- Ajustes finais. O sistema reduz posts seguidos do mesmo autor, aplica um desconto a posts de fora da sua rede e dá um empurrão a autores pequenos com posts recentes.
Como o X calcula a nota de cada post?
A nota é a soma de cada peso multiplicado pela probabilidade prevista de você fazer aquela ação: nota = Σ (peso × chance da ação). Não é uma contagem de curtidas e não é igual para todo mundo: a mesma publicação recebe notas diferentes para leitores diferentes.
Um exemplo hipotético, só para ilustrar a conta: se o modelo prevê 10% de chance de você curtir um post e 1% de chance de você copiar o link, a curtida contribui com 0,66 × 0,10 = 0,066 e o link copiado com 20 × 0,01 = 0,2. Uma ação rara, mas de peso alto, pode valer mais do que uma ação comum.
Isso explica por que a frase "uma denúncia anula 468 curtidas" está errada. A conta (234 dividido por 0,5) compara pesos como se fossem contagens. O comentário que acompanha os pesos em param.rs diz o contrário: os pesos multiplicam probabilidades, a chance base de uma denúncia é mais de mil vezes menor que a de uma curtida, e denúncias em massa têm efeito limitado, porque a previsão é personalizada e só contam ações feitas em posts que o X serviu na Home.
Quais ações valem mais no algoritmo do X?
Copiar o link do post é a ação de maior peso positivo (20). Depois vêm responder, citar e enviar por mensagem direta (5 cada), seguir o autor (4) e compartilhar (2). A curtida vale 0,66. Todos os valores abaixo estão em home-mixer/params/param.rs.
| Ação prevista | Peso | O que significa para você |
|---|---|---|
| Copiar o link do post | 20 | Conteúdo que as pessoas guardam ou levam para outro lugar |
| Responder | 5 (20 em alguns casos, veja a próxima seção) | Conversa real puxada pelo post |
| Citar (quote) | 5 | O post vira ponto de partida para outro |
| Enviar por mensagem direta | 5 | Alguém acha que vale mandar para uma pessoa específica |
| Seguir o autor a partir do post | 4 | O post convence alguém a acompanhar você |
| Compartilhar por outros meios | 2 | Outras formas de compartilhamento |
| Repostar | 1 | Repost simples |
| Curtir | 0,66 | A ação mais comum, com peso baixo |
| Tempo de leitura depois de clicar no post | 0,4 | Clicou e ficou lendo |
| Clicar no post | 0,3 | Abrir a conversa ou o detalhe |
| Abrir um link | 0,2 | Clique no link do post |
| Parar no post / expandir foto / clicar no post citado | 0,05 cada | Sinais leves de atenção |
| Abrir vídeo | 0,02 | Sinal leve |
| Clicar no perfil, assistir vídeo, "analisar com Grok" | 0 | Não entram na nota hoje |
Duas leituras práticas: a curtida é o sinal positivo mais fraco, e os pesos altos premiam utilidade e conversa (guardar o link, mandar para alguém, responder, citar). Peso zero não quer dizer que a ação é inútil, só que ela não soma na nota do feed nesta versão.
O que é o bônus para quem se segue mutuamente?
Quando você e o autor se seguem mutuamente, o peso da sua resposta a um post original desse autor sobe de 5 para 20. O parâmetro é BidirectionalFollowReplyWeightBoost, com valor 15, somado ao peso de resposta.
O detalhe que quase todo mundo erra: o bônus não é para "respostas entre seguidores mútuos" em geral. Segundo o documento BIDIRECTIONAL_BOOST_CHANGE.md, ele só vale quando o post candidato é original, ou seja, não é uma resposta nem um repost, e o autor é alguém que o leitor segue e que o segue de volta. O efeito é que o sistema passa a valorizar muito mais a chance de esse leitor puxar conversa com aquele post.
A cronologia também está no documento:
| Data (2026) | O que aconteceu |
|---|---|
| 10 de julho | Teste A/B com os valores 5, 10, 15 e 20 |
| 13 de julho | Lançamento amplo com 20 |
| 24 de julho | Redução para 15, depois de feedback durante a Copa do Mundo |
O mesmo documento mostra que um bônus parecido para o tempo de leitura foi testado e não foi lançado (está em 0).
Isso é uma inferência nossa: relações mútuas ativas valem mais do que uma base grande e calada. O código não mostra que "seguir de volta" em massa ajude, porque um seguidor mútuo que nunca responde continua com chance baixa de resposta.
Quais sinais negativos derrubam um post?
Denunciar (−234), silenciar o autor (−58,8), marcar "não tenho interesse" (−52,272) e bloquear o autor (−31,2) são os sinais negativos de maior peso. Há também um sinal leve para quando a pessoa passa direto sem parar no post (−0,02).
| Ação prevista | Peso |
|---|---|
| Denunciar o post | −234 |
| Silenciar o autor | −58,8 |
| "Não tenho interesse neste post" | −52,272 |
| Bloquear o autor | −31,2 |
| Passar direto, sem parar | −0,02 |
Lembre da regra da seção anterior: esses pesos multiplicam probabilidades. Um post não perde alcance porque "recebeu uma denúncia". Ele perde quando o modelo prevê que aquele leitor tem chance relevante de denunciar, silenciar ou dizer que não tem interesse.
Para a maioria das marcas, silenciar e "não tenho interesse" importam mais que a denúncia: são reações comuns a posts repetitivos ou fora do tema.
Por quanto tempo um post circula, e por que publicar em rajada rende menos?
Um post só pode aparecer no "Para você" por até 48 horas. E, dentro de cada montagem do feed, o segundo post do mesmo autor vale 62,5% da nota, o terceiro 43,75%, e assim por diante até um piso de 25%.
O limite de 48 horas está em home-mixer/params/config.rs (MAX_POST_AGE = 48 * 60 * 60) e é aplicado pelo filtro de idade. Depois disso, o post sai da disputa pelo feed de recomendações.
A redução por autor repetido funciona assim, segundo xai-value-model/scoring.rs e os valores de vm-ranker/params.rs (queda de 0,5 e piso de 0,25):
| Posição entre os posts do mesmo autor | Multiplicador da nota |
|---|---|
| 1º | 100% |
| 2º | 62,5% |
| 3º | 43,75% |
| 4º | 34,4% |
| Do 5º em diante | caindo até o piso de 25% |
Dois cuidados de leitura:
- É por montagem de feed, não "por dia" nem "por sessão". A redução vale para os posts do mesmo autor que disputam espaço numa mesma atualização do feed.
- Os valores vêm do padrão em código. Que a produção use exatamente 0,5 e 0,25 é uma inferência nossa, porque esses números não estão no arquivo sincronizado com a produção.
Outros dois ajustes completam o quadro:
- Desconto para quem não segue você: posts de fora da rede do leitor têm a nota multiplicada por 0,75 (
OonWeightFactor, emvm-ranker/params.rs). O README diz que o desconto também vale para respostas e reposts que chegam por contas seguidas. - Empurrão para autores pequenos: um post original com até 2 horas de vida, menos de 200 visualizações na Home e de um autor com até 50 mil seguidores pode ser promovido. Os limites estão em
param.rs(ColdStartImpressionThreshold,ColdStartMaxPostAgeSecs,ColdStartFollowerCap), e o arquivoauthor_cold_start.rspromove um candidato desse tipo por montagem de feed. Repare que as 200 visualizações são do post, não da conta.
E um mito que circula sobre contas novas: o filtro NewUserMinEngagementFilter não exige engajamento mínimo de autores novos. Ele olha a idade da conta de quem lê o feed (menos de 30 minutos) e, nesta versão, está desligado (EnableNewUserMinEngagementFilter = false).
Premium, links e Grok: o que é mito e o que está no código?
Nenhum dos três ganha ou perde pontos diretamente nos pesos do "Para você". Mas os três aparecem em outras partes do sistema, e é aí que mora a nuance.
| Afirmação comum | O que o código mostra | O que o código não mostra |
|---|---|---|
| "Premium dá boost no alcance" | Não há peso de Premium ou verificado na nota do feed. Mas o cálculo de reputação das contas (user-cred-v2) dá um ponto de partida só a contas Premium e verificadas | Quanto essa reputação muda o alcance |
| "Link derruba o alcance" | Não há peso negativo para link. Abrir um link soma 0,2. A informação "tem link" (has_url) é enviada ao reordenador final | O que o reordenador faz com essa informação |
| "O Grok julga se o texto é bom" | O peso de "analisar com Grok" é 0. Mas modelos de IA leem posts para spam, conteúdo de baixa qualidade e respostas | Que exista um bônus por "texto bom" na nota do feed |
O X Premium aumenta o alcance?
O código de ranking não tem nenhum peso para Premium. Só que o X calcula uma reputação de cada conta, um tipo de PageRank, no módulo user-cred-v2. No arquivo UserCredV2App.scala, o ponto de partida desse cálculo é dado só a contas Premium ou verificadas, e depois é misturado com sinais de engajamento. Essa reputação aparece em regras anti-spam: contas com reputação alta podem pular algumas checagens.
Que isso se traduza em mais alcance é uma inferência nossa: o código mostra o mecanismo, não o tamanho do efeito. As regras de spam também têm isenções para contas com selo cinza (governo), não para Premium comum.
Postar link derruba o alcance?
Pelo código público, não há penalidade direta: abrir link tem peso positivo (+0,2). Há duas nuances:
- O sinal "tem link" é enviado ao reordenador final.
has_url, definido emhome-mixer/models/content_features.rs, vai ao reordenador. O código não mostra se isso pesa a favor, contra ou nada. - Links ruins têm regras próprias. As regras anti-spam tratam links de baixa qualidade ou de fontes ruins.
A ideia de que o link "tira a pessoa do app e reduz o tempo de leitura" é uma hipótese, não algo que o código prove.
O Grok lê meus posts?
Lê, mas não para dar nota de qualidade no feed. Segundo o README, o sistema de classificadores (grox) roda quando o post é publicado e procura spam, conteúdo adulto e violência. Nos arquivos do grox:
- um classificador usa um modelo Grok para pontuar respostas de 0 a 3;
- outro, baseado no modelo Gemma, calcula uma nota de "slop" (conteúdo genérico e de baixa qualidade).
As regras de abuse-enforcement-service aplicam rótulos de visibilidade a posts e contas marcados como "llm_slop" (por 30 e 7 dias, respectivamente). Que a nota de "slop" do Gemma seja exatamente o que dispara esses rótulos é uma inferência nossa.
A conclusão segura: texto genérico em massa tem mais chance de ser marcado, e o código não mostra bônus por "texto bem escrito".
O que fazer na prática com o que o código mostra?
Escreva para gerar conversa e para ser guardado ou encaminhado, espace os posts, publique quando seu público está ativo e evite tudo o que provoca "não tenho interesse". O checklist abaixo liga cada hábito a um sinal do código. Os itens marcados como inferência são leituras nossas.
- [ ] Faça posts que valham guardar ou mandar para alguém: listas, dados, passo a passo, referências. Pesos 20 (copiar link) e 5 (mensagem direta).
- [ ] Termine com uma pergunta real, que você vai responder. Peso 5 para resposta e 5 para citação. Responder de volta mantém a conversa; que isso ajude o post é uma inferência nossa.
- [ ] Cultive relações mútuas ativas. Posts originais seus valem mais para quem segue você e é seguido de volta (resposta com peso 20).
- [ ] Prefira post original a repost quando quiser alcance com a sua rede. O bônus mútuo só vale para posts originais.
- [ ] Espace os posts. Rajadas competem entre si na mesma atualização do feed (2º post a 62,5%, 3º a 43,75%).
- [ ] Publique quando o seu público costuma estar ativo. O empurrão para autor pequeno só vale nas 2 primeiras horas, e o post sai do "Para você" em 48 horas. O código não define um "melhor horário"; o horário certo depende do seu público (inferência nossa).
- [ ] Fique no seu tema. Silenciar (−58,8) e "não tenho interesse" (−52,272) pesam muito mais que uma curtida.
- [ ] Evite texto genérico em série. Há classificadores de "slop" com rótulos de visibilidade.
- [ ] Use link quando ele ajudar o leitor. Não há penalidade direta no código público; o efeito do sinal
has_urlnão é visível. - [ ] Não compre a ideia de fórmula. As notas são previsões por leitor, e o X pode mudar os pesos a qualquer momento.
Se você publica o mesmo tema em várias redes, adapte o texto para o X em vez de copiar. O guia como publicar em várias redes sociais mostra como fazer isso.
Como o PostRite pode ajudar?
O PostRite agenda e publica posts no X com a sua própria chave de API, respeita o limite de caracteres da sua conta e permite espaçar os posts num calendário e numa fila. Ele não muda o algoritmo, mas ajuda a colocar em prática o ritmo e o formato descritos acima.
Antes de tudo, um requisito: o X exige que você use a sua própria chave de API. Segundo a documentação da integração com o X, você cria um app no portal de desenvolvedores do X com permissão de leitura e escrita e informa as quatro credenciais OAuth 1.0a no PostRite. O uso da API é cobrado pelo X na sua conta de desenvolvedor: se o plano da API ficar sem créditos, o PostRite mostra a falha como "pagamento necessário" (erro 402).

As opções do X aparecem no editor quando a conta é selecionada: quem pode responder e o primeiro comentário.
Com a conta conectada, segundo a documentação:
- Limite de caracteres certo: 280 caracteres, ou 25.000 se a conta tem assinatura do X (Basic, Premium ou Premium+). A contagem é ponderada como no X: cada link conta 23 e cada emoji conta 2. Num post para várias contas, os 25.000 só valem se todas forem assinantes.
- Mídia: até 4 imagens ou 1 vídeo de até 2 minutos e 20 segundos por post.
- Primeiro comentário: publicado automaticamente como resposta logo depois do post, até 280 caracteres. É o lugar comum para um link ou hashtags, se você preferir deixar o post principal mais limpo.
- Quem pode responder: todo mundo, só contas que você segue ou só contas mencionadas.
- Texto diferente por rede: o mesmo post pode ter uma versão para o X e outra para o LinkedIn.
- Várias contas do X, dentro do limite do plano.

A Fila mostra, em ordem, o que vai sair em seguida.
Para o ritmo de publicação, o agendamento oferece calendário (mês, semana, dia e agenda), fila e lista, no fuso horário da sua organização. Você pode reagendar arrastando o post no calendário e agendar ou cancelar vários de uma vez. É uma forma simples de espaçar os posts em vez de publicar em rajada. Equipes também contam com modelos e fluxo de aprovação.
Um limite importante, para não criar expectativa errada: hoje o PostRite não mostra métricas por post do X e não oferece respostas automáticas nem mensagens diretas no X. Para escolher horários, use o que você já sabe do seu público. Os planos e o que cada um inclui estão na página de preços.
Perguntas frequentes
O código do GitHub é o mesmo que roda no X?
Em boa parte, mas não necessariamente igual. O README diz que os valores de param.rs são sincronizados automaticamente com os de produção, e a última sincronização registrada é de 3 de novembro de 2026. Testes A/B podem mudar valores para grupos de usuários, e parte das regras anti-spam e dos prompts de IA não foi publicada.
Uma denúncia anula 468 curtidas?
Não. Os pesos multiplicam a probabilidade prevista de cada ação para cada leitor, e a chance base de uma denúncia é mais de mil vezes menor que a de uma curtida. O próprio comentário em param.rs corrige essa conta.
O X Premium aumenta o alcance?
Não há peso de Premium na nota do feed. Contas Premium e verificadas recebem um ponto de partida no cálculo de reputação usado em regras anti-spam, mas o código não mostra quanto isso muda o alcance. O benefício verificável é o limite de 25.000 caracteres.
Postar link no X derruba o alcance?
O código público não tem peso negativo para link, e abrir um link soma 0,2. O sinal "tem link" é enviado ao reordenador final, com efeito não visível, e links de spam ou de baixa qualidade caem em regras próprias.
O Grok lê meus posts?
Modelos de IA, incluindo o Grok e o Gemma, leem posts para detectar spam, conteúdo de baixa qualidade ("slop") e para pontuar respostas. O peso de "analisar com Grok" na nota do feed é 0, e o código não mostra bônus por texto bem escrito.
Por quanto tempo um post aparece no "Para você"?
Por até 48 horas. Autores com até 50 mil seguidores podem ganhar um empurrão nas 2 primeiras horas, se o post tiver menos de 200 visualizações na Home.
Conclusão
O código do X não entrega uma fórmula, mas tira muita dúvida: a curtida é o sinal mais fraco, guardar o link, mandar por mensagem e responder pesam muito mais, silenciar e "não tenho interesse" custam caro, e todo post tem 48 horas de vitrine. Ele também mostra as zonas cinzentas, como Premium, links e IA.
A melhor estratégia continua sendo publicar coisas úteis, com ritmo, para pessoas que conversam com você. E rever esses números de vez em quando, porque o código muda.
Se você quer organizar esse ritmo no X e nas outras redes num só calendário, o PostRite oferece um teste gratuito de 14 dias, sem cartão de crédito, para você conectar a sua conta do X com a sua própria chave de API e planejar a próxima semana de posts. Menos achismo. Mais método.