Tempo de leitura
Uma página pode gerar visualizações e ser abandonada em três segundos. O tempo de leitura é a métrica que separa as duas coisas — e é a métrica que a maioria das ferramentas de análise calcula incorretamente, de uma forma que fica invisível até você consultar os números brutos.
O que você obtém#
Cada página da sua documentação apresenta um tempo médio de leitura, e os cartões Páginas e
Títulos podem ser classificados por ele. Uma página sem medições mostra um travessão,
nunca 0 — um zero seria interpretado como "ninguém ficou", quando a verdade é "nada foi
medido".
O tempo de leitura é contabilizado por página, não por visita: um leitor que abre três páginas atribui a cada uma seus próprios segundos, em vez de fazer as três parecerem tão movimentadas quanto a mais movimentada.
Ler este relatório não desconta nada do saldo do seu projeto, e ele está disponível em todos os planos.
Como é construído#
Um segmento, não um cronômetro. O rastreador inicia um relógio quando uma página é aberta e
faz a leitura quando o leitor sai dela — em pagehide, ao navegar no site para
outra página e em visibilitychange → hidden no iOS, onde pagehide é
pouco confiável. Cada leitura emite um evento docs.read_time carregando aquele intervalo
de segundos e reinicia o relógio. Portanto, um leitor que oculta a aba e volta
produz dois segmentos, em vez de um único intervalo contado em dobro.
Segmentos com menos de 3 segundos nunca são emitidos. Abaixo disso, o leitor apenas passou pela página; registrá-los acrescentaria ruído à média de uma página sem acrescentar uma leitura.
A entrega é feita por beacon. O tempo de leitura, as visualizações de títulos e as saídas passam por
navigator.sendBeacon para um endpoint de mesma origem, agrupados em lotes de até 100 eventos
por beacon, porque o transporte de registro comum aplica debounce de dois segundos
em fetch e não sobrevive ao fechamento de uma aba. Cada coletor é idempotente: ele
retorna apenas os eventos que ainda não foram enviados, de modo que um flush oculto no iOS seguido
por uma saída real não conte em dobro, e uma página restaurada do cache de avanço/retrocesso possa fazer o flush novamente.
Cada segmento é limitado a 300 segundos antes de qualquer soma. Este é o número sobre o qual todo o relatório se baseia. O emissor continua contando enquanto uma aba de desktop fica em segundo plano e, em uma varredura de calibração de 11.176 sessões reais em 7 espaços de trabalho: 40 segmentos individuais excederam duas horas, o percentil 99 foi de 81.342 segundos — 22 horas — e a soma dos segmentos brutos inflou o tempo total de leitura de 42.160 segundos para 1.268.422, aproximadamente trinta vezes mais.
O limite é definido uma única vez, em um módulo sem importações, e reexportado para tudo que cita uma medida de tempo — a média por página, o resumo da visita, a coluna "tempo no site" da tabela de chat, a camada de metas e as ferramentas MCP. Uma segunda definição, mais generosa, de "tempo no site", em uma coluna ao lado da primeira, é exatamente como dois números sobre o mesmo leitor começam a divergir.
A média é dividida pela quantidade de segmentos, não pela quantidade de visitas. Um leitor que mudou de aba e voltou contribui com dois segmentos para uma visita; calcular a média por visita daria crédito duplicado a essa visita.
Os bots são excluídos pelo mesmo filtro de User-Agent que o restante do painel usa, para que o tempo de leitura de uma página seja reconciliado com sua contagem de visualizações. O bloqueio de rastreadores comportamentais — uma visita sem evento emitido por JavaScript é um rastreador, independentemente do que seu User-Agent declara — exige a reconstrução completa da sessão e é aplicado na camada de visitas; consulte Como funciona a medição.
O que o tempo de leitura de uma página lhe diz#
O tempo de leitura é uma comparação, não um veredito: ele significa algo em relação ao tamanho da página e à função que ela desempenha.
| Formato | Leitura provável | Ação |
|---|---|---|
| Tempo de leitura baixo em uma página complexa | Confusa, longa demais ou mal estruturada | Reestruture antes de reescrever |
| Tempo de leitura alto em uma página curta | Os leitores estão relendo, não apreciando | Esclareça o parágrafo em que eles estão travados |
| Tempo de leitura consistente em um tutorial | Os leitores estão progredindo conforme o esperado | Nada |
| Visualizações altas, tempo de leitura próximo de zero | A página conquista o clique e perde o leitor | A abertura não corresponde à pergunta que os trouxe até ela |
Combine-o com as visualizações dos títulos: o tempo de leitura mostra por quanto tempo eles ficaram, as visualizações dos títulos mostram até onde chegaram. Um tempo de leitura longo concentrado nos dois primeiros títulos indica um leitor travado, não um leitor engajado.
Por que esta é a maneira correta#
| Regra | Por que funciona | Fonte |
|---|---|---|
Os eventos no momento da saída devem ser enviados por beacon, não por um fetch com debounce |
As solicitações de beacon “têm garantia de serem iniciadas antes que a página seja descarregada e podem continuar em execução até a conclusão” | API Beacon do W3C |
Escute em pagehide e, adicionalmente, na mudança de visibilidade |
unload “ainda não é confiável, portanto evite usá-lo a menos que seja absolutamente necessário”; pagehide “é acionado em todos os casos em que o evento unload é acionado” e também na entrada no bfcache |
web.dev: bfcache |
| Uma página que continua contando enquanto está oculta está medindo a coisa errada | A API Page Visibility existe porque os desenvolvedores “têm projetado páginas da web como se elas estivessem sempre visíveis” | Page Visibility Level 2 do W3C |
| O objetivo de boas práticas é o tempo em primeiro plano | O GA4 define o envolvimento do usuário como “a quantidade de tempo que alguém passa com sua página da web em foco” | GA4: envolvimento do usuário |
| Uma leitura por página é melhor do que uma derivada da sessão | O Universal Analytics calculava uma sessão sem hits de envolvimento na última página como “O momento do primeiro hit na última página - o primeiro hit na primeira página” — a página final, aquela que o leitor escolheu para encerrar, não contribui com nada | Universal Analytics: duração da sessão |
| Um traço é melhor do que um zero | Um 0 confiante em uma página não medida é indistinguível de um abandono medido, e apenas um deles permite alguma ação |
Mecanismo, esta página |
Essa última linha é todo o motivo pelo qual o Docsbook emite seu próprio evento de saída, em vez de inferir o tempo a partir do intervalo entre visualizações de página. A última página de uma visita — aquela em que o leitor parou, que geralmente é a que você mais quer avaliar — é precisamente a página que uma medição baseada em intervalos não consegue ver.
Limites e questões em aberto#
- O tempo de leitura é limitado, não condicionado à visibilidade. No desktop, uma aba em segundo plano continua acumulando segundos até que o limite de 300 segundos a interrompa. Portanto, o erro tem uma direção conhecida (para cima) e um limite conhecido (300 segundos por segmento), e é por isso que o valor é utilizável — mas não é a mesma medição que um tempo de envolvimento condicionado ao foco, e esta página não afirma que seja. Se os seus leitores costumam deixar a documentação aberta em uma aba em segundo plano, trate o valor como um limite superior.
- Uma página aberta por mais de cinco minutos seguidos é registrada como cinco minutos. Em um tutorial longo que o leitor realmente acompanha, isso subestima o valor. O limite troca uma subestimação limitada em leituras longas raras por uma superestimação de trinta vezes em abas ociosas.
- Em questão: “tempo médio de leitura” não é “atenção média”. O que é verificável é o mecanismo acima — segmentos, o piso, o limite, o divisor. O que não é verificável a partir desses dados é se o leitor estava olhando para a tela. Nenhum produto de análise da web pode medir isso, e nenhum deveria dar essa impressão.
- Leitores com JavaScript desativado e rastreadores não contribuem com nenhum tempo de leitura. As visualizações de página ainda são contabilizadas, portanto uma página muito rastreada pode apresentar uma alta contagem de visualizações em relação a uma amostra de tempo de leitura reduzida.
- Trinta dias representam todo o histórico. Não há uma tendência de tempo de leitura de longo prazo a ser traçada.
Como abrir o relatório de tempo de leitura#
- Abra seu site de documentação.
- Float Widget → guia Análises.
- Classifique o cartão de Páginas ou Títulos por
Reading time.
Reading time é oferecido apenas em Páginas e Títulos. Isso significa algo para uma
linha que nomeia um local na sua documentação e nada para uma linha que nomeia um
país ou um navegador, portanto é oferecido ali e em nenhum outro lugar.
Relacionados#
- Como funciona a medição — o clipe, o caminho do beacon e os filtros de bots em detalhes
- Visão geral das análises — o cartão Pages onde este ranking aparece
- Referência de eventos rastreados — visualizações de títulos, que indicam até onde os leitores chegam em uma página longa
- Metas e funis — medir o que a visita alcançou, não apenas quanto tempo durou