{"id":129,"date":"2026-09-05T19:20:41","date_gmt":"2026-09-05T22:20:41","guid":{"rendered":"https:\/\/postping.com.br\/blog\/migrar-linktree-wordpress\/"},"modified":"2026-09-05T19:20:41","modified_gmt":"2026-09-05T22:20:41","slug":"migrar-linktree-wordpress","status":"publish","type":"post","link":"https:\/\/postping.com.br\/blog\/migrar-linktree-wordpress\/","title":{"rendered":"Migra\u00e7\u00e3o do Linktree para o WordPress sem perder um link"},"content":{"rendered":"<p>No fim deste passo a passo voc\u00ea tem a p\u00e1gina de links rodando no seu pr\u00f3prio dom\u00ednio, com todos os links que existiam no Linktree, na mesma ordem, e o endere\u00e7o antigo levando para ela sem que quem clica perceba a troca. O trabalho pesado est\u00e1 na lista, n\u00e3o na p\u00e1gina: o Linktree n\u00e3o tem bot\u00e3o de exportar links, e quem migra de mem\u00f3ria esquece dois ou tr\u00eas pelo caminho.<\/p>\n<h2>Extraia a lista completa antes de mexer em qualquer coisa<\/h2>\n<p>O Linktree exporta n\u00fameros de audi\u00eancia, e a lista de links n\u00e3o est\u00e1 entre eles. Na aba de Insights, na \u00e1rea de atividade do perfil, d\u00e1 para baixar cinco arquivos CSV: atividade (visualiza\u00e7\u00f5es, cliques e taxa de clique), cidades, pa\u00edses, dispositivos e origens de tr\u00e1fego. A exporta\u00e7\u00e3o \u00e9 recurso de plano Premium, e nenhum dos cinco arquivos traz os endere\u00e7os de destino que voc\u00ea cadastrou.<\/p>\n<p>A lista, por\u00e9m, j\u00e1 \u00e9 p\u00fablica, e est\u00e1 na sua pr\u00f3pria p\u00e1gina. O Linktree entrega a p\u00e1gina com os dados embutidos num bloco JSON chamado <code>__NEXT_DATA__<\/code>, e \u00e9 de l\u00e1 que o navegador monta os bot\u00f5es. O teste numa p\u00e1gina p\u00fablica, em setembro de 2026, deu isto: 92 KB de HTML, 21 URLs dentro do JSON e nenhuma tag <code>&lt;a href=\"https:\/\/...\"&gt;<\/code> apontando para os destinos. \u00c9 por isso que salvar a p\u00e1gina como HTML, ou passar nela um extrator de links comum, devolve quase nada.<\/p>\n<p>O caminho curto \u00e9 ler o JSON direto:<\/p>\n<p><code>curl -s https:\/\/linktr.ee\/SEU_USUARIO | grep -o '\"url\":\"https[^\"]*\"'<\/code><\/p>\n<p>Dentro desse JSON, o caminho <code>props.pageProps.links<\/code> traz um objeto por link, com o t\u00edtulo que aparece no bot\u00e3o e a URL de destino. Um pouco adiante, em <code>props.pageProps.account.links<\/code>, os mesmos itens aparecem com dois campos a mais: <code>position<\/code>, que \u00e9 a ordem na p\u00e1gina, e <code>type<\/code>, que distingue um link comum dos blocos especiais. Guarde a ordem junto com os endere\u00e7os, porque ela tamb\u00e9m faz parte do que voc\u00ea est\u00e1 migrando.<\/p>\n<p>Registre quatro coisas por link: o t\u00edtulo exatamente como aparece no bot\u00e3o, o endere\u00e7o de destino inteiro com os par\u00e2metros de campanha que j\u00e1 estiverem nele, a posi\u00e7\u00e3o na p\u00e1gina e os cliques dos \u00faltimos doze meses. As duas primeiras saem do JSON, a terceira tamb\u00e9m, e a quarta \u00e9 o assunto do passo seguinte.<\/p>\n<p>Quando o comando falha, quase sempre \u00e9 por um destes dois motivos. O primeiro: o nome da chave mudou. A p\u00e1gina \u00e9 um aplicativo em Next.js e o formato desse JSON \u00e9 assunto interno do Linktree, que pode mudar sem aviso nenhum. Nesse caso, abra a p\u00e1gina no navegador e use o bot\u00e3o direito em cada bot\u00e3o para copiar o endere\u00e7o do link, j\u00e1 que a\u00ed voc\u00ea est\u00e1 lendo a p\u00e1gina montada, n\u00e3o o arquivo cru. O segundo motivo \u00e9 mais trai\u00e7oeiro: link agendado, link pausado e link atr\u00e1s de aviso de conte\u00fado sens\u00edvel n\u00e3o aparecem no JSON p\u00fablico. Eles existem s\u00f3 no painel, e s\u00e3o justamente os que somem sem ningu\u00e9m notar, porque ningu\u00e9m sente falta de um bot\u00e3o que j\u00e1 estava invis\u00edvel.<\/p>\n<h2>Descubra quais links ainda recebem clique<\/h2>\n<p>Migrar tudo \u00e9 o objetivo; migrar tudo na mesma ordem, n\u00e3o. A ordem antiga foi decidida por um motivo que talvez n\u00e3o valha mais, e isso s\u00f3 aparece nos n\u00fameros.<\/p>\n<p>No painel do Linktree, abaixo da URL de cada link, existe um \u00edcone de gr\u00e1fico que abre os dados daquele link em particular. Num plano pago voc\u00ea escolhe um intervalo personalizado de at\u00e9 365 dias, e o recurso est\u00e1 dispon\u00edvel nos planos Starter, Pro e Premium. O CSV de atividade do perfil, esse restrito ao Premium, tem a fatia de origens de tr\u00e1fego, que responde a outra pergunta: se a sua p\u00e1gina de links recebe gente do Instagram, do TikTok ou de dentro do seu pr\u00f3prio site. Uma p\u00e1gina que recebe metade do tr\u00e1fego de dentro do pr\u00f3prio site virou menu de navega\u00e7\u00e3o, e talvez o lugar dela nem seja a bio.<\/p>\n<p>Doze meses \u00e9 o intervalo certo para essa leitura porque ele mostra o clique concentrado. Um link com trezentos cliques, todos em novembro, \u00e9 campanha encerrada. Um link com cinquenta cliques espalhados por doze meses \u00e9 link vivo, e merece subir na p\u00e1gina nova.<\/p>\n<p>Duas coisas atrapalham essa medi\u00e7\u00e3o. Um link recriado em vez de editado come\u00e7a com identificador novo e hist\u00f3rico zerado, ent\u00e3o zero clique pode significar apenas que algu\u00e9m refez o bot\u00e3o em mar\u00e7o. E, no plano gratuito, o seletor de intervalo personalizado n\u00e3o est\u00e1 l\u00e1, o que muda a medi\u00e7\u00e3o de retrospectiva para prospectiva: marque os destinos da p\u00e1gina nova com par\u00e2metros de campanha e leia o resultado no seu pr\u00f3prio analytics daqui a trinta dias.<\/p>\n<p>Seja qual for o n\u00famero, link com zero clique vai para o fim da p\u00e1gina nova, nunca para o lixo. Zero clique costuma ser sintoma de nona posi\u00e7\u00e3o, n\u00e3o de link ruim.<\/p>\n<h2>Monte a p\u00e1gina no WordPress e congele o endere\u00e7o dela<\/h2>\n<p>Crie uma p\u00e1gina, n\u00e3o um post. E decida o slug uma vez s\u00f3, porque o WordPress n\u00e3o vai te dar segunda chance nesse ponto espec\u00edfico.<\/p>\n<p>Existe um mecanismo de resgate no n\u00facleo: quando uma URL cai em 404 e a consulta ainda carrega o nome do conte\u00fado, a fun\u00e7\u00e3o <code>wp_old_slug_redirect()<\/code> procura o slug antigo daquele item e devolve um <code>301<\/code> para o endere\u00e7o atual. Ela simplesmente n\u00e3o vale para p\u00e1ginas. A primeira coisa que a fun\u00e7\u00e3o faz \u00e9 verificar se o tipo de conte\u00fado \u00e9 hier\u00e1rquico e, se for, sair sem redirecionar nada. P\u00e1gina \u00e9 hier\u00e1rquica. Num t\u00f3pico do f\u00f3rum de suporte do WordPress a resposta a essa mesma d\u00favida vem em uma linha: o n\u00facleo do WordPress s\u00f3 suporta redirecionamento para tipos de conte\u00fado n\u00e3o hier\u00e1rquicos, ou seja, para posts, n\u00e3o para p\u00e1ginas.<\/p>\n<p>Traduzindo para a sua situa\u00e7\u00e3o: se daqui a seis meses voc\u00ea trocar <code>\/links<\/code> por <code>\/bio<\/code>, todo QR code impresso, todo print salvo e toda legenda antiga que aponta para o endere\u00e7o velho passa a cair em 404, em sil\u00eancio, sem nada no painel avisando.<\/p>\n<p>H\u00e1 uma segunda armadilha no mesmo passo. Se o slug que voc\u00ea quer j\u00e1 estiver em uso, o WordPress n\u00e3o recusa a publica\u00e7\u00e3o nem mostra alerta: a fun\u00e7\u00e3o <code>wp_unique_post_slug()<\/code> devolve o mesmo nome com um sufixo num\u00e9rico, <code>-1<\/code>, <code>-2<\/code> e assim por diante. No caso das p\u00e1ginas, a checagem de conflito acontece dentro da mesma hierarquia de pai. Voc\u00ea publica esperando <code>\/links<\/code> e descobre <code>\/links-2<\/code> depois de j\u00e1 ter colado o endere\u00e7o na bio. Olhe o endere\u00e7o final na barra do navegador antes de sair copiando.<\/p>\n<p>Pelo mesmo motivo, n\u00e3o pendure a p\u00e1gina de links como filha de outra p\u00e1gina. O caminho de uma p\u00e1gina hier\u00e1rquica inclui o caminho do pai, ent\u00e3o mudar o pai muda a URL inteira, e aqui tamb\u00e9m n\u00e3o existe resgate autom\u00e1tico.<\/p>\n<p>Se a p\u00e1gina responder 404 logo depois de publicada, salve novamente os links permanentes nas configura\u00e7\u00f5es do WordPress antes de procurar defeito no tema. As regras de reescrita s\u00e3o regravadas nesse momento, e \u00e9 o conserto mais prov\u00e1vel.<\/p>\n<p>Montar a p\u00e1gina \u00e9 trabalho de uma tarde. Mant\u00ea-la \u00e9 que volta toda semana: cada artigo publicado pede um link novo l\u00e1 em cima, e \u00e9 a\u00ed que a p\u00e1gina come\u00e7a a atrasar em rela\u00e7\u00e3o ao blog. O Post Ping ataca essa parte gerando a p\u00e1gina de link na bio dentro do seu dom\u00ednio a partir dos artigos que voc\u00ea j\u00e1 publica, com a lista se refazendo a cada publica\u00e7\u00e3o, enquanto os links fixos que voc\u00ea cadastrou seguem no lugar. O funcionamento est\u00e1 descrito em <a href=\"https:\/\/postping.com.br\/recursos\">recursos do plugin<\/a>, e a discuss\u00e3o mais larga sobre por que o endere\u00e7o importa est\u00e1 em <a href=\"https:\/\/postping.com.br\/blog\/alternativa-linktree-dominio-proprio\/\">alternativa ao Linktree come\u00e7a por ter dom\u00ednio pr\u00f3prio<\/a>.<\/p>\n<h2>Aponte o Linktree antigo para o endere\u00e7o novo<\/h2>\n<p>O Linktree tem um recurso chamado Redirect que existe para exatamente isso. Ele passa por cima da sua p\u00e1gina e manda quem chega direto para uma URL escolhida, por um per\u00edodo que voc\u00ea define. Voc\u00ea cria o link, abre o menu dele, liga o modo de redirecionamento e marca a data e a hora em que ele se desliga sozinho. O tr\u00e1fego continua sendo contado nos n\u00fameros do perfil, e existe um bot\u00e3o para desativar o redirecionamento antes do prazo. O recurso est\u00e1 nos planos Starter, Pro e Premium, e as diferen\u00e7as entre eles est\u00e3o detalhadas em <a href=\"https:\/\/postping.com.br\/blog\/linktree-e-pago\/\">o Linktree \u00e9 pago<\/a>.<\/p>\n<p>Marque a data com folga. Tr\u00eas meses \u00e9 razo\u00e1vel, porque a URL antiga n\u00e3o vive s\u00f3 na sua bio: ela est\u00e1 em legenda de post antigo, em assinatura de e-mail, em cart\u00e3o impresso e no perfil de quem j\u00e1 te divulgou. Desligar o redirecionamento em duas semanas \u00e9 apagar todo esse tr\u00e1fego residual de uma vez.<\/p>\n<p>No plano gratuito o Redirect n\u00e3o existe, e a sa\u00edda \u00e9 usar a pr\u00f3pria p\u00e1gina como placa. Deixe um \u00fanico link no topo, com o t\u00edtulo dizendo para onde ele leva, e v\u00e1 removendo os outros ao longo de duas ou tr\u00eas semanas em vez de esvaziar tudo num dia. Tamb\u00e9m n\u00e3o apague a conta no primeiro dia: enquanto ela existir, aquele endere\u00e7o continua sendo seu e continua funcionando como ponte.<\/p>\n<p>S\u00f3 depois que a p\u00e1gina nova estiver publicada, testada e respondendo, troque a URL na bio do Instagram. Fazer isso antes transforma qualquer erro de configura\u00e7\u00e3o em tr\u00e1fego perdido no meio do caminho.<\/p>\n<p>O jeito mais comum de esse passo dar errado \u00e9 o redirecionamento expirar na data marcada sem ningu\u00e9m notar, porque quem administra o perfil raramente \u00e9 quem tem a senha do Linktree. Anote a data de expira\u00e7\u00e3o no mesmo lugar onde voc\u00ea anota o vencimento do dom\u00ednio, n\u00e3o num bilhete solto.<\/p>\n<h2>Verifique, link por link, que nada se perdeu<\/h2>\n<p>Primeiro, o confronto das duas listas. Salve os destinos antigos num arquivo e os da p\u00e1gina nova em outro e compare os dois: <code>diff &lt;(sort antigos.txt) &lt;(sort novos.txt)<\/code>. Qualquer endere\u00e7o que apare\u00e7a de um lado s\u00f3 \u00e9 um link perdido ou um link inventado, e os dois casos merecem explica\u00e7\u00e3o.<\/p>\n<p>Segundo, o estado de cada destino. Aproveite que a lista est\u00e1 pronta e verifique se os endere\u00e7os ainda respondem: <code>curl -o \/dev\/null -s -w \"%{http_code} %{url_effective}\\n\" -L URL<\/code>. Migra\u00e7\u00e3o \u00e9 a hora em que se descobre que dois daqueles bot\u00f5es apontavam para p\u00e1ginas mortas havia meses, porque ningu\u00e9m clica em bot\u00e3o para conferir se ele funciona.<\/p>\n<p>Terceiro, o teste no aparelho certo. Abra a p\u00e1gina nova pelo navegador de dentro do Instagram, tocando no link do perfil, e n\u00e3o no computador. \u00c9 esse navegador que a maioria das pessoas vai usar, e \u00e9 nele que fonte pequena, imagem pesada e bot\u00e3o colado no rodap\u00e9 aparecem como realmente s\u00e3o.<\/p>\n<p>Quarto, o endere\u00e7o antigo. Abra a URL do Linktree e confirme que ela chega na p\u00e1gina nova.<\/p>\n<p>Uma semana depois, volte ao seu analytics e compare os cliques da p\u00e1gina nova com o n\u00famero que voc\u00ea anotou no passo dois. Se ele estiver muito abaixo, procure fora da lista: algum perfil, em alguma rede, continua apontando para o endere\u00e7o antigo e passou despercebido na troca.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Migrar do Linktree para o WordPress esbarra numa lista de links que n\u00e3o se exporta. O caminho completo, os comandos e o que fazer quando cada passo falha.<\/p>\n","protected":false},"author":1,"featured_media":128,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-link-na-bio"],"_links":{"self":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/comments?post=129"}],"version-history":[{"count":0,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/129\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media\/128"}],"wp:attachment":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media?parent=129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/categories?post=129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/tags?post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}