Informe a URL e a palavra-chave. O percentual usa caracteres, não palavras, e não representa uma meta de posicionamento.
Informe o endereço de uma página e uma palavra ou frase. O servidor busca essa página uma vez, extrai o texto visível e mostra quantas vezes a palavra-chave aparece e qual parte do texto ela ocupa.
O texto é lido como o navegador mostra: tags, scripts e estilos são removidos e as entidades HTML são decodificadas, então frases com espaços e palavras acentuadas ou não latinas são contadas como estão escritas. Se a busca falhar, a página explica o motivo em vez de mostrar zeros.
O comprimento do texto é o número de caracteres visíveis depois de remover as tags, decodificar as entidades HTML e reduzir espaços consecutivos a um só; os espaços não são contados, então a indentação do código não infla o total. Conteúdo de script, style, noscript, template e head fica de fora.
A densidade é a parte do texto ocupada pela palavra-chave: comprimento da palavra-chave x ocorrências / comprimento do texto visível x 100, arredondado para uma casa decimal. Uma palavra de sete caracteres que aparece quatro vezes em 12.000 caracteres visíveis dá 0,2%.
A comparação ignora maiúsculas e minúsculas e conta ocorrências não sobrepostas da string exata: "SEO" e "seo" são a mesma palavra-chave, e uma frase com espaços é encontrada tanto em uma linha quanto dividida entre linhas. É correspondência de substring: "art" também aparece dentro de "start". Não há stemming, lista de sinônimos nem limites de palavra, e texto em chinês, japonês ou coreano não precisa de espaços.
Todo o texto visível é pesquisado, incluindo menu e rodapé, porque é o texto que um rastreador lê nessa URL. Só a página informada é contada; a mesma frase em outras páginas do site não é somada aqui.
A densidade de palavras-chave é uma estatística descritiva, não um fator de ranqueamento. O Google nunca publicou um percentual recomendado, nenhum limite torna uma página otimizada por si só e um número alto não é automaticamente ruim. Compare suas próprias páginas entre si em vez de perseguir uma faixa.
Apenas aquela resposta HTML é medida: imagens, atributos alt, vídeo, arquivos PDF, conteúdo atrás de login e conteúdo renderizado depois pelo JavaScript do cliente não entram. Cada verificação faz o servidor buscar a página de novo, há limite de verificações por conexão e o resultado descreve a página naquele momento.