Artigos aprofundados sobre a tecnologia que molda o que vem a seguir.

A Web Está Perdendo Sua Memória: Combatendo o Link Rot

A web perde milhões de páginas por ano. Entenda como o link rot ameaça o registro histórico e o que desenvolvedores podem fazer contra a decadência digital.

Livros em estantes infinitas se dissolvendo em pixels luminosos em um salão de biblioteca escuro

Em 2014, a pesquisadora de clima Dra. Maria Chen publicou um conjunto de dados revolucionário sobre o derretimento do gelo no Ártico. Ela hospedou tudo nos servidores da universidade, linkou em três artigos revisados por pares e compartilhou em uma dúzia de listas de e-mail acadêmicas. Em 2019, a universidade migrou sua infraestrutura web. A URL quebrou. Os dados sumiram. Nenhum backup existia em qualquer arquivo público. Cinco anos de trabalho de campo, reduzidos a um erro 404.

A história da Chen não é incomum. É a norma. A web está perdendo sua memória a uma velocidade assustadora, e a maioria de nós só percebe quando precisa de algo que já não existe mais.

Link Rot e a Erosão Silenciosa da História da Web

Pesquisadores chamam isso de link rot: o processo lento e implacável em que URLs deixam de funcionar. Um estudo do Pew Research Center descobriu que cerca de 38 por cento das páginas web de 2013 ficaram inacessíveis em uma década. Isso não é erro de arredondamento. É mais de um terço do conhecimento registrado na web em um único ano, simplesmente perdido.

As causas são banais. Empresas se fundem e mudam de marca. Contas de hospedagem não são pagas. Sistemas de gerenciamento de conteúdo são trocados. Governos reestruturam seus sites após eleições. O autor de um blog morre, e ninguém renova o domínio. Nenhum desses eventos parece catastrófico isoladamente. Mas eles se acumulam. Ano após ano, a web descarta seu passado como pele morta.

E as consequências não são abstratas. Tribunais já citaram URLs em decisões judiciais e descobriram, meses depois, que elas estavam mortas. Jornalistas perderam materiais de fonte. Comunidades inteiras online, com suas conversas, piadas internas, obras criativas e conhecimento colaborativo, foram apagadas da noite para o dia quando uma plataforma decidiu mudar de rumo ou fechar. Lembra do Vine? Do Google+? Do GeoCities original? Cada encerramento apagou um pedaço da história cultural que nunca poderá ser totalmente reconstruído.

Por que o Arquivamento da Web Está Ficando Mais Difícil, Não Mais Fácil

Você poderia imaginar que estaríamos ficando melhores nisso. Armazenamento é barato. Banda é abundante. Temos ferramentas de arquivamento maduras e organizações dedicadas à preservação. Então por que o problema está piorando?

Duas forças estão convergindo. A primeira é técnica. A web moderna é muito mais difícil de arquivar do que as páginas HTML estáticas do início da internet. Single-page applications renderizam conteúdo inteiramente em JavaScript. Sites orientados a API não têm uma URL estável para capturar. Paywalls, barreiras de autenticação e fluxos de conteúdo personalizados criam páginas que parecem diferentes para cada visitante, inclusive para crawlers de arquivamento.

A segunda força é política. A explosão dos grandes modelos de linguagem provocou uma reação contra o crawling da web. Editores e donos de sites, preocupados com o uso de seu conteúdo para treinar sistemas de IA sem permissão, implantaram bloqueios agressivos. Estão atualizando arquivos robots.txt, implementando detecção de bots e bloqueando faixas inteiras de IP associadas à coleta de dados.

Eis o dano colateral: essas medidas de bloqueio raramente diferenciam um crawler comercial de IA de um crawler de arquivamento. A Wayback Machine do Internet Archive respeita o robots.txt. Quando um site bloqueia todos os bots indiscriminadamente, os crawlers de arquivamento também ficam de fora. O dono do site quer impedir o treinamento de IA. O que ele realmente consegue é garantir que nenhum registro histórico do seu conteúdo sobreviva.

Bloquear crawlers de arquivamento para impedir a coleta por IA é como queimar uma biblioteca para evitar que alguém tire xerox de um livro. A intenção é compreensível. O dano colateral para o registro histórico é enorme.

O Internet Archive: Pressionado, Mas Ainda Essencial

O Internet Archive é o que mais se aproxima de uma biblioteca pública da web. Sua Wayback Machine arquivou mais de 800 bilhões de páginas web desde 1996. Esse número é impressionante, e mesmo assim representa apenas uma fração do que já foi publicado online.

A organização enfrentou sérios obstáculos. Batalhas judiciais em torno do programa de empréstimo do Open Library consumiram recursos e atenção. O efeito inibidor mais amplo sobre o trabalho de preservação digital foi real: outras instituições acompanharam aqueles processos e ficaram mais cautelosas sobre o que estavam dispostas a arquivar.

Mas o maior desafio é simplesmente a escala. A web cresce mais rápido do que qualquer organização consegue capturar. E a migração para aplicações dinâmicas e pesadas em JavaScript significa que o crawling tradicional captura cada vez menos do que os usuários realmente veem. Um crawler que baixa o HTML bruto de um app React recebe uma div vazia e um pacote de JavaScript, e não o artigo, nem as imagens, nem os elementos interativos.

  • Aplicações renderizadas no lado do cliente exigem navegadores headless para capturar snapshots significativos
  • Conteúdo orientado a API muitas vezes não tem uma URL estável e rastreável
  • Conteúdo multimídia (vídeo, podcasts, visualizações interativas) exige abordagens de preservação especializadas
  • A taxa de crescimento do conteúdo web supera em muito a capacidade de crawling de qualquer organização
  • A incerteza jurídica torna as instituições hesitantes em arquivar de forma agressiva

Isso não é motivo para desistir dos arquivos centralizados. É motivo para parar de depender apenas deles.

Ferramentas de Arquivamento Web Self-Hosted que Todo Desenvolvedor Deveria Conhecer

A boa notícia: você não precisa ser uma instituição para arquivar a web. Um ecossistema crescente de ferramentas open source torna viável para indivíduos e pequenas equipes rodar sua própria infraestrutura de arquivamento. Algumas dessas ferramentas são surpreendentemente poderosas.

O ArchiveBox é o destaque para uso pessoal. É uma ferramenta self-hosted que recebe URLs e as salva em vários formatos: HTML, PDF, screenshot, WARC e mais. Alimente com seus favoritos do navegador, um feed RSS ou uma lista de URLs em texto puro, e ele montará um arquivo local navegável. A configuração leva minutos:

# Set up ArchiveBox with Docker
docker pull archivebox/archivebox
mkdir -p ~/web-archive && cd ~/web-archive
docker run -v $PWD:/data -it archivebox/archivebox init --setup
# Archive some URLs
docker run -v $PWD:/data -it archivebox/archivebox add \
'https://example.com/important-report' \
'https://example.org/research-dataset'
# Launch the web UI to browse your archive
docker run -v $PWD:/data -p 8000:8000 archivebox/archivebox server 0.0.0.0:8000

Para capturar sites pesados em JavaScript, o Webrecorder adota outra abordagem. Em vez de fazer crawling, ele grava sua sessão real do navegador: cada requisição de rede, cada elemento carregado dinamicamente, cada interação. O resultado é uma captura de alta fidelidade armazenada em formato WARC ou WACZ, que pode ser reproduzida no navegador com o ReplayWeb.page. É a diferença entre fotografar um prédio e criar um passeio 3D completo.

O Browsertrix, também do projeto Webrecorder, amplia essa abordagem. É um sistema de crawling cloud-native que usa instâncias reais de navegador para renderizar e capturar páginas. Universidades, bibliotecas e agências governamentais o utilizam para programas institucionais de arquivamento. Se você precisa arquivar milhares de páginas com renderização completa de JavaScript, o Browsertrix é a ferramenta certa.

Como Incluir a Preservação no Seu Fluxo de Desenvolvimento

Você não precisa rodar um sistema completo de arquivamento para fazer diferença. Pequenas decisões sobre como você constrói e publica sites têm um impacto desproporcional na possibilidade de preservar o conteúdo. Veja o que realmente importa.

Primeiro, projete para ser arquivável. Use URLs estáveis e legíveis por humanos. Não amarre a estrutura de URLs a IDs de banco de dados ou tokens de sessão. Garanta que o conteúdo crítico esteja presente na resposta HTML inicial, e não carregado inteiramente por JavaScript no cliente depois do carregamento da página. Se você está construindo uma single-page app, ofereça server-side rendering ou geração estática como fallback. Essas não são só boas práticas para arquivamento. São boas práticas para SEO, acessibilidade e performance também.

Segundo, seja cirúrgico com seu robots.txt. Se você quer bloquear crawlers de treinamento de IA, bloqueie-os pelo nome. Não jogue um cobertor sobre todo bot que visita seu site.

# robots.txt — block AI crawlers, welcome archival bots
# Explicitly allow archival crawlers
User-agent: ia_archiver
Allow: /
User-agent: archive.org_bot
Allow: /
# Block specific AI training crawlers
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
User-agent: ClaudeBot
Disallow: /
# Default: allow everything else
User-agent: *
Allow: /

Não é um sistema perfeito, já que user agents podem ser falsificados, mas é um esforço de boa-fé que mantém a porta aberta para a preservação legítima enquanto a fecha para o treinamento indesejado.

Terceiro, automatize suas submissões para arquivo. Sempre que publicar algo, envie para a Wayback Machine. Isso leva algumas linhas de código e pode ser integrado a qualquer pipeline de CI/CD ou hook de pós-publicação:

import requests
import time
def archive_url(url: str, retries: int = 3) -> str:
"""Submit a URL to the Wayback Machine's Save Page Now endpoint."""
save_url = f"https://web.archive.org/save/{url}"
for attempt in range(retries):
try:
resp = requests.get(save_url, timeout=30)
if resp.status_code == 200:
location = resp.headers.get("Content-Location", resp.url)
return f"Archived: https://web.archive.org{location}"
except requests.RequestException:
if attempt < retries - 1:
time.sleep(2 ** attempt)
return f"Failed to archive {url} after {retries} attempts"
# Wire this into your publish script
new_post = "https://yourblog.com/posts/new-article"
print(archive_url(new_post))

A lógica de retry importa. O endpoint de salvamento da Wayback Machine é muito sobrecarregado, e falhas transitórias são comuns. Um pouco de resiliência faz muita diferença.

Entendendo o WARC: o Formato de Arquivo por Trás dos Arquivos Web

Se você vai trabalhar com arquivos web, precisa entender o WARC. É o formato de arquivo padronizado pela ISO, usado pelo Internet Archive, pelo Webrecorder e pela maioria das ferramentas sérias de arquivamento. Pense em um arquivo WARC como uma gravação completa de cada requisição e resposta HTTP envolvidas no carregamento de uma página: o HTML, as folhas de estilo, os scripts, as imagens, as chamadas de API. Tudo.

Essa completude é o que torna a reprodução possível. Um arquivo WARC não guarda apenas o HTML bruto: ele guarda todo o contexto necessário para reconstruir a página como ela estava no momento da captura. Veja como ler um programaticamente:

from warcio.archiveiterator import ArchiveIterator
def inspect_warc(filepath: str):
"""List all HTTP responses captured in a WARC file."""
with open(filepath, "rb") as stream:
for record in ArchiveIterator(stream):
if record.rec_type == "response":
url = record.rec_headers.get_header("WARC-Target-URI")
status = record.http_headers.get_statuscode()
content_type = record.http_headers.get_header("Content-Type")
print(f"[{status}] {url} ({content_type})")
inspect_warc("my-archive.warc.gz")

O formato WACZ, mais novo, parte do WARC e adiciona uma camada de índice e metadados dentro de um contêiner ZIP. O benefício prático é enorme: arquivos WACZ podem ser abertos diretamente no navegador com o ReplayWeb.page, sem nenhuma infraestrutura de servidor. Você pode enviar um arquivo WACZ por e-mail e a pessoa já consegue navegar pelo site arquivado. É o tipo de acesso de baixo atrito que torna a preservação realmente útil, e não apenas tecnicamente possível.

Arquivamento Comunitário e a Rede de Segurança dos Voluntários

Parte do trabalho de preservação mais dramático acontece em modo de crise. Quando uma plataforma anuncia que vai encerrar, um grupo de voluntários chamado ArchiveTeam se mobiliza. Eles resgataram conteúdo do GeoCities, do Vine, do Google+ e de dezenas de serviços menores. A metodologia é simples: bombardear a plataforma moribunda com requisições de arquivamento antes que os servidores se apaguem, armazenar tudo em formato WARC e enviar ao Internet Archive para acesso público.

Qualquer pessoa pode contribuir. O Warrior, ferramenta do ArchiveTeam, é uma virtual appliance que você roda no próprio hardware. Ele se conecta aos servidores de coordenação, pega tarefas de arquivamento e disponibiliza sua banda e seu processamento para qualquer operação de resgate em andamento. É arquivamento distribuído na sua forma mais popular.

Mas resgates de emergência são último recurso. O objetivo real é tornar a preservação rotineira. Comunidades específicas de domínios estão cada vez mais assumindo esse papel: projetos open source arquivando suas listas de e-mail e issue trackers, grupos de patrimônio cultural preservando recursos de línguas indígenas, organizações de jornalismo mantendo arquivos de seu trabalho investigativo. As ferramentas existem. A parte mais difícil é sustentar, ano após ano, a coordenação humana e o financiamento para manter esses esforços funcionando.

Um Kit Prático de Ferramentas para Preservação Digital

Se você leu até aqui e quer agir, este é seu kit inicial. São as ferramentas mais maduras e bem mantidas para arquivamento web em todas as escalas.

  • ArchiveBox: arquivamento pessoal self-hosted. Salva páginas em HTML, PDF, WARC e screenshot. Ideal para preservar suas pesquisas e referências.
  • Browsertrix: crawling baseado em navegador em escala institucional. Usa instâncias reais de navegador para renderização completa de JavaScript.
  • Webrecorder: grava sua sessão do navegador para captura interativa de alta fidelidade. Gera arquivos WARC/WACZ.
  • ReplayWeb.page: reproduz arquivos WARC/WACZ diretamente no navegador. Sem necessidade de servidor.
  • SingleFile: extensão de navegador que salva uma página web completa como um único arquivo HTML autocontido. Simples demais.
  • warcio: biblioteca Python para ler, escrever e processar arquivos WARC programaticamente.
  • Heritrix: o crawler open source do Internet Archive. De nível industrial, com curva de aprendizado íngreme.
  • ArchiveTeam Warrior: virtual appliance para participar de projetos de arquivamento distribuído de voluntários.
  • APIs da Wayback Machine: acesso programático para submeter e recuperar páginas arquivadas.
  • Conifer: serviço gerenciado de arquivamento web para indivíduos e pequenas equipes que não querem hospedar por conta própria.

A Web Não Vai Se Preservar Sozinha

Existe um mito persistente de que a internet nunca esquece. Ela esquece, o tempo todo. A web se parece mais com um rio do que com uma biblioteca: o conteúdo flui por ela e, a menos que alguém capture deliberadamente um snapshot, ele desaparece no momento em que a fonte seca.

Desenvolvedores têm uma alavancagem incomum aqui. Nós escrevemos os arquivos robots.txt. Nós desenhamos os esquemas de URL. Nós escolhemos entre renderizar no servidor ou no cliente. Nós construímos os pipelines de deploy que poderiam, com algumas linhas extras de código, enviar cada nova página para um arquivo público. Não são atos heroicos. São pequenas decisões técnicas que, por acaso, determinam se a história da web vai sobreviver.

O conjunto de dados da Dra. Chen continua perdido. Nenhum arquivo o capturou antes de a URL quebrar. Mas todos os dias alguém publica algo que importa: uma reportagem investigativa, um conjunto de dados científicos, uma thread de fórum da comunidade que será citada por anos. A questão não é se esse conteúdo vai eventualmente desaparecer. Vai. A questão é se alguém terá salvo uma cópia antes.