{"id":154,"date":"2026-09-10T19:21:29","date_gmt":"2026-09-10T22:21:29","guid":{"rendered":"https:\/\/postping.com.br\/blog\/link-na-bio-automatico\/"},"modified":"2026-09-10T19:21:29","modified_gmt":"2026-09-10T22:21:29","slug":"link-na-bio-automatico","status":"publish","type":"post","link":"https:\/\/postping.com.br\/blog\/link-na-bio-automatico\/","title":{"rendered":"Link na bio autom\u00e1tico depois de 13 dias publicando todo dia"},"content":{"rendered":"<p>Vinte e um artigos entre 19 de agosto e 9 de setembro, treze deles em treze dias seguidos, e doze desses treze publicados entre 19h18 e 19h26. Os n\u00fameros saem da API do blog que voc\u00ea est\u00e1 lendo agora. O que interessa neste artigo \u00e9 o que n\u00e3o aconteceu em nenhum desses treze dias: ningu\u00e9m abriu a p\u00e1gina de link na bio para acrescentar o artigo novo, porque essa p\u00e1gina monta a pr\u00f3pria lista lendo os artigos do site.<\/p>\n<p>A p\u00e1gina existe em <code>postping.com.br\/blog\/bio\/<\/code> e, quando este texto foi escrito, listava os oito artigos mais recentes, do de ontem ao de 2 de setembro. Os n\u00fameros daqui vieram de chamadas feitas hoje a esse mesmo blog; os limites de rede social vieram da documenta\u00e7\u00e3o da Meta lida hoje.<\/p>\n<h2>Treze dias seguidos e nenhuma edi\u00e7\u00e3o de link<\/h2>\n<p>A lista completa de publica\u00e7\u00f5es do blog vem de uma chamada s\u00f3: <code>\/wp-json\/wp\/v2\/posts<\/code> com <code>per_page=100<\/code>. A resposta traz 21 registros e o cabe\u00e7alho <code>X-WP-Total: 21<\/code> confirma que n\u00e3o sobrou nada em outra p\u00e1gina. As datas se distribuem assim: um artigo em 19 de agosto, quatro em 26, tr\u00eas em 27, e a partir de 28 de agosto exatamente um por dia at\u00e9 9 de setembro.<\/p>\n<p>Uma p\u00e1gina de links hospedada em outro servi\u00e7o teria exigido treze visitas ao painel dessa ferramenta, treze colagens de endere\u00e7o e treze reordena\u00e7\u00f5es da lista, porque o artigo novo entra no topo e o de duas semanas atr\u00e1s precisa sair. Nenhuma dessas opera\u00e7\u00f5es \u00e9 dif\u00edcil. O problema \u00e9 que elas acontecem no fim do dia, depois do artigo pronto, e s\u00e3o a primeira coisa que se esquece.<\/p>\n<p>Doze dos treze artigos di\u00e1rios sa\u00edram na janela das 19h20; o de 28 de agosto saiu \u00e0s 9h17. Quem publica sabe por qu\u00ea: o hor\u00e1rio combinado n\u00e3o \u00e9 lei, e o dia em que ele muda \u00e9 justamente o dia em que a etapa manual seguinte n\u00e3o acontece. A atualiza\u00e7\u00e3o autom\u00e1tica n\u00e3o \u00e9 mais r\u00e1pida que uma pessoa atenta. Ela \u00e9 indiferente ao hor\u00e1rio.<\/p>\n<h2>A lista que a p\u00e1gina precisa ler cabe em um quilobyte<\/h2>\n<p>De cada artigo, a p\u00e1gina no ar carrega quatro coisas:<\/p>\n<ul>\n<li>o t\u00edtulo, exatamente como foi publicado<\/li>\n<li>a data, no formato curto<\/li>\n<li>o endere\u00e7o do artigo<\/li>\n<li>a marca\u00e7\u00e3o de origem colada nesse endere\u00e7o, <code>utm_source=instagram&amp;utm_medium=bio<\/code>, que separa no analytics quem chegou pela bio de quem chegou pela busca<\/li>\n<\/ul>\n<p>Pedir s\u00f3 isso muda a ordem de grandeza do que trafega. Uma chamada aos cinco artigos mais recentes deste blog, sem restringir campos, devolve 77.615 bytes: vem o conte\u00fado inteiro dos cinco artigos em HTML renderizado, mais o conte\u00fado em bruto, mais o resumo, mais dezenas de campos que uma lista de links nunca usa. A mesma chamada com <code>_fields=id,title,link,date,featured_media<\/code> devolve 1.098 bytes. \u00c9 a mesma informa\u00e7\u00e3o vis\u00edvel na tela, em setenta vezes menos dados.<\/p>\n<p>Tem uma armadilha a\u00ed. Para trazer a imagem de capa junto, o caminho \u00f3bvio \u00e9 <code>_embed<\/code>, que anexa o objeto completo da m\u00eddia. Medido neste blog agora: 92.201 bytes para os mesmos cinco artigos, mais pesado que a chamada sem filtro nenhum, porque o embed acrescenta os metadados de cada tamanho de imagem gerado pelo WordPress sem tirar nada do que j\u00e1 vinha. Quem monta a p\u00e1gina fora do WordPress e liga o embed sem pensar acaba baixando noventa quilobytes para exibir cinco miniaturas.<\/p>\n<p>O tempo de resposta \u00e9 a outra medida que conta. Tr\u00eas chamadas seguidas \u00e0 lista dos cinco artigos deste blog levaram 0,97 s, 0,57 s e 0,67 s. N\u00e3o \u00e9 lento para uma requisi\u00e7\u00e3o feita entre servidores, mas \u00e9 uma espera longa para uma p\u00e1gina que s\u00f3 desenha a tela depois que a resposta chega, e \u00e9 tempo que depende de uma rede fora do seu controle. A lista, ali\u00e1s, responde 200 sem nenhuma autentica\u00e7\u00e3o: o que a p\u00e1gina de links exibe \u00e9 exatamente o que qualquer visitante j\u00e1 pode ler do seu blog, o que dispensa guardar credencial em p\u00e1gina p\u00fablica.<\/p>\n<p>A documenta\u00e7\u00e3o da REST API diz que <code>per_page<\/code> tem padr\u00e3o 10 e teto de 100, e o blog confirma na pr\u00e1tica: <code>per_page=101<\/code> volta com status 400 e o c\u00f3digo <code>rest_invalid_param<\/code>. O par\u00e2metro <code>orderby<\/code> aceita, entre outros valores, <code>date<\/code> e <code>modified<\/code>, e a diferen\u00e7a entre esses dois decide se um artigo de agosto que voc\u00ea corrigiu hoje volta para o topo da bio.<\/p>\n<h2>O cache de sete dias \u00e9 onde a atualiza\u00e7\u00e3o autom\u00e1tica morre<\/h2>\n<p>A p\u00e1gina inicial do blog responde com <code>Cache-Control: public, max-age=300<\/code>. Cinco minutos, o que \u00e9 razo\u00e1vel para um site que publica uma vez por dia. J\u00e1 a resposta da REST API do mesmo dom\u00ednio, pedindo os cinco artigos mais recentes, responde com <code>Cache-Control: public, max-age=604800<\/code>. <strong>Sete dias<\/strong>. O feed RSS responde igual, com sete dias, e traz <code>Last-Modified<\/code> apontando para o artigo de ontem e um <code>ETag<\/code> para revalida\u00e7\u00e3o. As respostas ainda chegam com o cabe\u00e7alho <code>Age<\/code>, que denuncia a borda de CDN entre o servidor e quem pede.<\/p>\n<p>Uma p\u00e1gina de links que busca a lista por HTTP e cai numa borda dessas pode mostrar o estado do blog de sete dias atr\u00e1s, com toda a raz\u00e3o do mundo do ponto de vista do cache, e sem erro nenhum para ningu\u00e9m investigar. O sintoma \u00e9 trai\u00e7oeiro justamente porque n\u00e3o \u00e9 intermitente: a p\u00e1gina carrega inteira, sem erro nenhum, e mostra a lista errada.<\/p>\n<p>\u00c9 por isso que a p\u00e1gina de link na bio do Post Ping n\u00e3o faz chamada HTTP para lugar nenhum. Ela vive dentro do pr\u00f3prio WordPress, num endere\u00e7o do seu dom\u00ednio, e l\u00ea os artigos direto de onde eles j\u00e1 est\u00e3o. A resposta da p\u00e1gina no ar traz <code>Cache-Control: no-cache, must-revalidate, max-age=0, no-store, private<\/code>, que \u00e9 o oposto dos sete dias da resposta em JSON do mesmo site. O custo \u00e9 a p\u00e1gina n\u00e3o poder ser servida de uma borda; o ganho \u00e9 ela n\u00e3o ter como mostrar a lista da semana passada. Para uma p\u00e1gina que existe justamente para estar em dia, essa troca fecha.<\/p>\n<p>Se voc\u00ea monta a sua \u00e0 m\u00e3o, a consequ\u00eancia pr\u00e1tica \u00e9 ler os artigos dentro do pr\u00f3prio WordPress em vez de busc\u00e1-los por HTTP no seu pr\u00f3prio site. E se a p\u00e1gina tiver mesmo que ficar fora, o m\u00ednimo \u00e9 revalidar pelo <code>ETag<\/code> do feed antes de confiar na c\u00f3pia guardada.<\/p>\n<h2>O Story n\u00e3o aceita link, e a bio herda esse tr\u00e1fego<\/h2>\n<p>Se o objetivo \u00e9 levar o seguidor at\u00e9 o artigo, por que passar pela bio em vez de p\u00f4r o link no pr\u00f3prio Story?<\/p>\n<p>Porque n\u00e3o existe esse par\u00e2metro. Na documenta\u00e7\u00e3o de publica\u00e7\u00e3o de conte\u00fado da Meta, lida hoje, o container de story \u00e9 criado com <code>media_type=STORIES<\/code> mais <code>image_url<\/code> ou <code>video_url<\/code> e o token de acesso. N\u00e3o h\u00e1 campo de link, de figurinha de link ou de swipe-up na lista de par\u00e2metros. Isso n\u00e3o \u00e9 limita\u00e7\u00e3o de uma ferramenta espec\u00edfica: quem publica story por API, seja qual for o software, publica sem link clic\u00e1vel.<\/p>\n<p>A mesma p\u00e1gina imp\u00f5e outras regras que valem para qualquer esteira autom\u00e1tica: cada conta pode publicar 100 posts por per\u00edodo m\u00f3vel de 24 horas, o container criado expira se n\u00e3o for publicado em 24 horas, JPEG \u00e9 o \u00fanico formato de imagem aceito, e filtros e etiquetas de compra n\u00e3o s\u00e3o suportados. S\u00e3o os limites com que qualquer publica\u00e7\u00e3o autom\u00e1tica convive, e nenhum deles tem a ver com a bio. A mesma documenta\u00e7\u00e3o registra que o campo de texto alternativo, aberto em mar\u00e7o de 2025 para publica\u00e7\u00f5es comuns, n\u00e3o vale para reels nem para stories: o story \u00e9 o formato que menos aceita acess\u00f3rio de qualquer tipo.<\/p>\n<p>O que sobra, ent\u00e3o, \u00e9 o desenho que a pr\u00f3pria Meta deixa de p\u00e9: o card do Story pede o toque no link do perfil, e o link do perfil precisa estar sempre apontando para uma lista atual. Um endere\u00e7o fixo, cadastrado uma vez, cuja lista muda sozinha. Quando o Post Ping publica o artigo no Instagram e no Facebook, o mesmo artigo j\u00e1 est\u00e1 no topo dessa p\u00e1gina, sem uma segunda opera\u00e7\u00e3o.<\/p>\n<h2>O que quebra a lista antes de voc\u00ea perceber<\/h2>\n<p>Nenhuma das falhas dessa lista aparece como erro na tela. Todas aparecem como conte\u00fado errado. A mais comum \u00e9 o artigo agendado. Um post com data futura n\u00e3o \u00e9 publicado ainda, e n\u00e3o deve aparecer. Se a sua p\u00e1gina l\u00ea tudo sem filtrar por estado, o artigo de amanh\u00e3 aparece hoje, com link v\u00e1lido, para um texto que voc\u00ea ainda vai revisar. A leitura correta traz s\u00f3 o que est\u00e1 publicado, que \u00e9 o padr\u00e3o do endpoint quando o par\u00e2metro <code>status<\/code> n\u00e3o \u00e9 informado.<\/p>\n<p>A segunda \u00e9 a imagem que n\u00e3o existe. Nem todo artigo tem capa definida, e uma lista com quatro miniaturas e um buraco tem cara de erro. O campo <code>featured_media<\/code> vem como <code>0<\/code> quando n\u00e3o h\u00e1 imagem, e uma p\u00e1gina honesta precisa decidir o que fazer nesse caso antes de o caso aparecer: cair para uma cor da marca, mostrar s\u00f3 t\u00edtulo e data, ou pular o artigo.<\/p>\n<p>A terceira \u00e9 a ordena\u00e7\u00e3o. Se a p\u00e1gina ordena por <code>modified<\/code>, uma corre\u00e7\u00e3o de v\u00edrgula num texto de agosto joga esse texto para o topo da bio. Ordenar por <code>date<\/code> mant\u00e9m a lista fiel ao que foi publicado, que \u00e9 o que o seguidor espera ver depois de um Story.<\/p>\n<p>A quarta \u00e9 o artigo que deixa de existir. Um texto despublicado ou apagado sai da lista na mesma hora quando a p\u00e1gina l\u00ea o site em tempo real, e continua vivo em qualquer c\u00f3pia que tenha sido guardada em outro lugar. Vale a pena tratar isso como teste: tire um artigo do ar por um minuto, abra a p\u00e1gina de links e veja se ele sumiu. Se ele continuar l\u00e1, voc\u00ea tem uma c\u00f3pia intermedi\u00e1ria que ningu\u00e9m sabia que existia, e ela vai reaparecer em outro momento pior.<\/p>\n<p>A quinta n\u00e3o gera erro nenhum e \u00e9 a mais f\u00e1cil de n\u00e3o notar: a lista \u00e9 curta. Este blog tem 21 artigos e a bio mostra oito. O primeiro texto, de 19 de agosto, saiu da lista em 28 de agosto, no dia em que o oitavo artigo mais novo que ele foi publicado, e ningu\u00e9m tomou essa decis\u00e3o. \u00c9 o comportamento certo para um blog di\u00e1rio e \u00e9 o comportamento errado para um perfil cujo link mais importante \u00e9 um artigo antigo. Nesse caso, o artigo antigo vira link fixo, ao lado da lista, em vez de disputar espa\u00e7o dentro dela. A p\u00e1gina deste blog tem dois links fixos acima da lista, al\u00e9m do \u00edcone do perfil no Instagram.<\/p>\n<h2>Quando essa p\u00e1gina n\u00e3o muda nada<\/h2>\n<p>A automa\u00e7\u00e3o da lista s\u00f3 paga quando existe cad\u00eancia. Um blog que publica duas vezes por m\u00eas tem duas atualiza\u00e7\u00f5es manuais por m\u00eas, e duas atualiza\u00e7\u00f5es por m\u00eas ningu\u00e9m esquece. Se esse \u00e9 o seu caso, qualquer ferramenta gratuita de links resolve, e o argumento a favor de trazer a p\u00e1gina para o seu dom\u00ednio passa a ser outro: <a href=\"https:\/\/postping.com.br\/blog\/seo-link-na-bio-indexacao\/\">qual p\u00e1gina o Google consegue indexar<\/a> e quem controla o endere\u00e7o quando a ferramenta muda de plano.<\/p>\n<p>Vale o mesmo para quem usa a bio como vitrine de um produto s\u00f3. Uma bio com tr\u00eas links fixos que n\u00e3o mudam h\u00e1 um ano n\u00e3o tem problema de atualiza\u00e7\u00e3o para resolver. O que ela tem \u00e9 um problema de dono do endere\u00e7o, que \u00e9 assunto do artigo sobre <a href=\"https:\/\/postping.com.br\/blog\/alternativa-linktree-dominio-proprio\/\">ter o link na bio no seu pr\u00f3prio dom\u00ednio<\/a>.<\/p>\n<p>A lista autom\u00e1tica resolve um problema estreito: o do perfil cujo link precisa refletir o que foi publicado hoje, num ritmo em que a etapa manual vai ser esquecida. Se esse \u00e9 o seu caso, os detalhes da p\u00e1gina que faz isso dentro do WordPress est\u00e3o em <a href=\"https:\/\/postping.com.br\/recursos\">recursos do plugin<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Link na bio autom\u00e1tico medido de verdade: 21 artigos em 22 dias, cache de sete dias na API do WordPress e as cinco falhas que a lista tem sem dar erro.<\/p>\n","protected":false},"author":1,"featured_media":153,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-154","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\/154","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=154"}],"version-history":[{"count":0,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/154\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media\/153"}],"wp:attachment":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media?parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/categories?post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/tags?post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}