Gere uma tag preload para fontes, CSS, scripts e imagens
Gere um link de preload pronto para colar sem memorizar a relação entre arquivo, destino HTML e comportamento entre origens.
Executar grátis
Informe uma URL absoluta ou relativa e classifique o recurso como fonte, estilo, script ou imagem. O resultado usa o atributo as correspondente, escapa a URL com segurança e acrescenta carregamento anônimo entre origens para fontes. Tipos desconhecidos retornam um erro claro.
Escolha o recurso que merece uma solicitação antecipada
Preload é uma dica de desempenho específica, não uma ordem para buscar todos os ativos antes da hora. Use-o quando a página precisar logo de um recurso que o navegador descobriria tarde, como a fonte principal declarada no CSS, uma imagem de destaque, uma folha crítica ou um script inicial. Informe a URL exata, incluindo caminho, consulta ou impressão digital. São aceitas URLs absolutas, relativas ao protocolo, à raiz ou ao documento. O gerador preserva o valor e escapa caracteres especiais de HTML. Selecione o tipo conforme o consumo: font, style, script ou image. A saída é um elemento link completo para o cabeçalho.
Entenda os atributos as e crossorigin
O atributo as informa ao navegador o destino da resposta pré-carregada. Isso influencia prioridade, segurança e reutilização. Cada tipo aceito é mapeado diretamente ao destino padronizado. Fontes recebem crossorigin="anonymous" porque suas solicitações usam CORS, inclusive em situações comuns na mesma origem. Sem o atributo, o navegador pode baixar o arquivo novamente. Os demais tipos não recebem crossorigin automaticamente, pois o modo correto depende da solicitação posterior. O gerador também não inventa type, media, imagesrcset, integrity ou fetchpriority, já que os dois campos fornecidos não permitem defini-los com segurança.
Posicione a tag e confirme a reutilização
Coloque o link gerado cedo no cabeçalho, normalmente antes do CSS ou script que revelaria o recurso. Mantenha o href idêntico à solicitação posterior; diferenças de host, caminho, consulta, redirecionamento ou CORS podem impedir o reaproveitamento. Teste com uma nova carga nas ferramentas do navegador. O recurso deve ser solicitado uma vez e consumido logo depois. Investigue avisos de preload não utilizado, pois costumam indicar URL divergente ou arquivo desnecessário no início. Muitas dicas competem com downloads críticos. Trate cada tag como uma hipótese mensurável, e não como código permanente.
Casos de uso
Pré-carregar a fonte web principal
Crie o preload com o atributo anônimo necessário para reutilizar a fonte.
Priorizar uma imagem de destaque
Gere o preload de uma URL estável e essencial para a primeira tela.
Preparar HTML para publicação
Monte marcação determinística para CSS ou scripts com impressão digital na esteira de entrega.
Perguntas frequentes
Quais tipos são aceitos?
São aceitos font, style, script e image; qualquer outro valor gera erro de entrada.
Por que fontes incluem crossorigin?
Solicitações de fontes usam CORS; o mesmo modo permite reutilizar o preload sem novo download.
A URL pode ser relativa?
Sim. URLs absolutas, relativas ao protocolo, à raiz e ao documento são aceitas.
O gerador verifica se o recurso existe?
Não. Ele não acessa a rede; apenas valida, escapa o texto e produz marcação determinística.
Preload garante renderização mais rápida?
Não. Ele altera descoberta e prioridade; meça a página, pois dicas desnecessárias podem prejudicar.
Quanto custa a solicitação da API?
O preço base é US$ 0,002 por item gerado. O navegador pode executar localmente a mesma lógica.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/web/preload-link-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"/assets/site.woff2","type":"font"}'const res = await fetch("https://api.kit.forhosting.com/web/preload-link-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "/assets/site.woff2",
"type": "font"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/preload-link-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "/assets/site.woff2",
"type": "font"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/preload-link-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"/assets/site.woff2","type":"font"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"/assets/site.woff2","type":"font"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/preload-link-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"url": "/assets/site.woff2",
"type": "font"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.preload_link_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |