Ir para o conteúdo

O que é Rankbeam? ​

Rankbeam é infraestrutura de SEO open-core para Laravel: um Core gratuito sob MIT para metadados, URLs canônicas, cartões sociais, JSON-LD interligado, sitemaps e controles de rastreadores, com monitoramento e fluxos Pro comerciais opcionais. Ele resolve o SEO a partir dos seus modelos e da configuração, renderiza os mesmos dados tipados em Blade, no head do Inertia ou em uma API JSON e, com Pro, continua monitorando o site após a implantação.

A família de pacotes ​

Os três pacotes compartilham a mesma matriz de suporte:

PacoteLicençaFunção
rankbeam/laravel-seoMIT, gratuitoCore: resolução de metadados, grafo JSON-LD interligado, sitemaps XML, controles de rastreadores, seo:audit gratuito e importadores
rankbeam/laravel-seo-filamentMIT, gratuitoCampos de formulário e prévias ao vivo para Filament 4/5, com gravação em seo_meta do Core
rankbeam/laravel-seo-proComercialOperação: varreduras em fila com pontuação de 0 a 100, redirecionamentos, monitor de 404 sem IPs, rastreador de links quebrados, análises do Search Console e assistência de IA com sua chave

A separação é explícita: a saída da página renderizada pertence ao Core MIT e permanece gratuita. A camada comercial cuida da auditoria e do monitoramento em produção. Pro é um pacote próprio e não é distribuído dentro do Core gratuito.

Para quem ele serve ​

O Rankbeam faz mais sentido quando o SEO é armazenado, ligado a modelos, multilíngue, usado sem painel e auditado: uma aplicação Laravel em produção com conteúdo dinâmico. Para poucas páginas estáticas que precisam apenas de título e descrição, um pequeno gerador de tags pode bastar. A seção sobre quando manter uma combinação de pacotes descreve esse limite.

Versões compatíveis ​

Uma matriz para toda a família:

  • PHP 8.2–8.4 (Laravel 11); 8.2–8.5 (Laravel 12); 8.3–8.5 (Laravel 13)
  • Laravel 11, 12 e 13; Laravel 13 exige PHP 8.3 ou superior.
  • Filament 4 e 5, opcional.

O que o Rankbeam não substitui ​

O Rankbeam coordena a saída de SEO da sua aplicação Laravel. Ele não é um serviço hospedado de acompanhamento de posições, pesquisa de palavras-chave ou analytics, nem promete posicionamento, indexação ou citações de IA. Para gerar sitemaps XML, usa spatie/laravel-sitemap. Conteúdo, rotas e analytics continuam na sua aplicação.

Comece pela instalação do Core gratuito ou veja abaixo a experiência de uma troca em produção. Pro e a oferta de lançamento estão em rankbeam.dev.

Por que não combinar três pacotes com código próprio? ​

Muitas aplicações Laravel têm uma combinação de componentes de SEO: um pacote armazena metadados por modelo, outro fornece campos Filament, um terceiro examina páginas e o código da aplicação faz todos concordarem. Cada componente pode funcionar bem. O custo está na integração que a equipe precisa manter.

O caso abaixo descreve uma troca real dessa combinação pela família Rankbeam. Os números pertencem à instalação de referência; não são uma previsão de resultado para qualquer aplicação.

A aplicação de referência ​

Um site Laravel real, em produção, com identidade omitida:

  • Site de conteúdo hospitalar e institucional, com cerca de três meses em produção.
  • Migrado do WordPress, com aproximadamente 900 páginas no sitemap.
  • Cerca de 20 mil visitas por dia.
  • Laravel 12, administração Filament 4, frontend Blade e MySQL.

A estrutura de SEO anterior:

CamadaPacote
Metadados por modelo na tabela seoralphjsmit/laravel-seo
Campos SEO no Filamentralphjsmit/laravel-filament-seo
Varredura de páginasbackstage/laravel-seo-scanner
Integração entre componentesCerca de 30 classes próprias

Na troca relatada, os três pacotes foram removidos, o Rankbeam Core + Pro + Filament foi instalado e a suíte SEO da aplicação passou sem regressões detectadas por esses testes. As próximas seções mostram qual código de integração foi removido.

O que a troca removeu ​

A substituição eliminou 12 classes próprias, cujas funções passaram aos pacotes:

Classe removidaFunção anteriorFornecida agora por
Services/SeoService.phpPonto de entrada SEO da aplicaçãoResolvedor Core e facade SEO
Services/SeoWarningEvaluator.phpLimites de título, descrição e dimensões de imagemSEOWarningEvaluator do Core, compartilhado entre auditoria, prévia e varredura
Services/Seo/SeoAssetInspector.phpInspeção de dimensões de imagens locaisLocalImageInspector do Core
Jobs/ScanAllPagesSeo.phpEnfileiramento de varredura do siteVarredura Pro em fila
Jobs/ScanPageSeo.phpVarredura por páginaPageScanner do Pro
Jobs/ScanPublicPageSeo.phpVarredura por página públicaFluxo de varredura Pro
Models/SeoScanBatch.phpRegistro das execuçõesseo_scan_runs do Pro
Filament/Pages/SeoDashboard.phpPainel administrativo de SEOPlugin SeoDashboard do Pro
Filament/Widgets/SeoScanProgressWidget.phpProgresso das varredurasWidgets de varredura Pro
Filament/Widgets/SeoTrendChartWidget.phpTendência das varredurasWidgets de varredura Pro
Facades/Seo.phpFacade sobre o pacote de armazenamentoFacade SEO do Core
Console/Commands/RecoverLegacySeoMetadata.phpRecuperação pontual de metadadosImportadores do Core, seo:import-from

O código que permaneceu

A troca inicial manteve o rastreador de links quebrados da aplicação: cerca de 17 classes entre tarefa, verificador, gerador de URLs iniciais, resolvedor de origem, dois modelos, dois enums, dois eventos, recurso Filament com três widgets e dois comandos. Também ficaram auxiliares como CustomSEO, EntitySeoSection, DynamicSeoDataResolver, SitewideSchema e SeoKeywords, totalizando aproximadamente 22 classes adicionais. As alternativas Rankbeam chegaram depois: rastreador Pro, edição de modelo relacionado e prévias SERP/social no Filament, além do grafo de schema do Core. Esses recursos permitem substituir também essa superfície, chegando a aproximadamente três dúzias de classes no total; isso não significa que todas tenham sido removidas na troca inicial.

O custo identificado está na integração: classes próprias que fazem uma alteração de metadados aparecer de forma consistente na varredura, no painel e no head renderizado. Esse código depende dos testes e da manutenção da própria aplicação.

Comparação lado a lado ​

RecursoCombinação de três pacotes com integração própriaFamília Rankbeam
Metadados por modeloPacote de metadadosCore, seo_meta, MIT
Armazenamento por localeGeralmente exige integraçãoCore, com coluna de locale em seo_meta
Campos SEO no FilamentPacote Filament-SEOlaravel-seo-filament, MIT
Edição SEO de modelo relacionadoAdaptar o componente do campoResolvedor target: próprio para isso
Prévia ao vivo de SERP e redes sociaisBlade/Alpine próprioPrévia editorial com abas
Renderização sem painel em Inertia, Livewire e JSONA aplicação de referência usava Blade; outras combinações precisam de integraçãoUm resolvedor para Blade, Inertia, Livewire e JSON, com contrato testado
Varredura de páginas e ocorrências priorizadasPacote de varreduraVarredura Pro e IssueRegistry
Pontuação de 0 a 100Código próprio ou ausentePro, com critérios transparentes e versionados
Redirecionamentos e recuperação de 404Outro pacote ou código próprioPro, com gerenciador de redirecionamentos e monitor de 404 sem IPs
Rastreador de links quebradosPróprio na aplicação de referênciaPro, limitado e retomável
Grafo JSON-LDBuilder com ligações @id própriasCore, com Organization/WebSite/WebPage interligados
Sitemaps XMLPacote de sitemapCore, com registro baseado em spatie/laravel-sitemap
Importação WordPress, Yoast e Rank MathScripts pontuaisCore, seo:import-from e roteiro
Quem mantém a integraçãoSua equipeFamília de pacotes com lançamentos coordenados

Três custos da integração própria ​

1 — Uma família com lançamentos coordenados. Pacotes de mantenedores diferentes têm changelogs e ritmos próprios. A integração absorve as divergências entre eles. Core, Pro e Filament seguem uma matriz de suporte comum e limites de atualização documentados, permitindo comunicar mudanças de comportamento de forma coordenada.

2 — Locale no armazenamento. seo_meta é polimórfico e limitado por locale no banco. O SEO multilíngue usa uma linha por (modelo, locale). A cadeia de resolução lê o locale ativo sem exigir uma tabela de integração adicional.

3 — Um resolvedor para diferentes frontends. O Rankbeam resolve SEOData tipado e transforma os mesmos dados em HTML, conteúdo de Head do Inertia ou array JSON. O contrato de renderização cobre Blade, Inertia com Vue, React ou Svelte e Livewire. O painel administrativo é opcional; os recursos Pro também funcionam pela CLI.

O que fica fora do Core gratuito ​

A divisão open-core permite saber o que cada pacote oferece antes de instalá-lo:

PacoteLicençaConteúdo
rankbeam/laravel-seoMIT, gratuitoResolução de metadados, grafo JSON-LD, sitemaps, seo:audit gratuito e importadores
rankbeam/laravel-seo-filamentMIT, gratuitoCampos e seções Filament com gravação em seo_meta
rankbeam/laravel-seo-proComercialVarreduras em fila, ocorrências priorizadas, pontuação de 0 a 100, redirecionamentos, monitor de 404, rastreador de links, Search Console, assistência de IA e painel Filament

A camada paga reúne auditoria técnica e monitoramento do site. O mecanismo de metadados, grafo de schema, sitemaps e auditoria gratuita dentro da aplicação continuam sob MIT.

Duas propriedades dessa divisão:

  • Sem verificação de licença durante a execução. Pro é licenciado por projeto na instalação. Não consulta um servidor de licença nem possui um mecanismo remoto de desativação. A telemetria operacional é local, destinada aos seus logs, e pode ser desativada; não é enviada ao Rankbeam.
  • IA com sua chave. A assistência opcional usa sua conta Anthropic, OpenAI, Google ou servidor de modelo local. O Rankbeam não intermedeia nem revende as chamadas. O recurso vem desativado.

Quando a combinação atual continua suficiente

Para poucas páginas estáticas com um <title> e uma descrição, um gerador de tags pode bastar. O Rankbeam passa a justificar a integração quando o SEO é armazenado, multilíngue, associado a modelos, usado sem painel e auditado, e a ligação entre pacotes já exige código próprio relevante.

Migração do WordPress com verificação antes da troca ​

A aplicação de referência veio de uma migração WordPress com cerca de 900 páginas e metadados acumulados no Yoast ou Rank Math. O procedimento preserva a origem até a verificação:

  1. Mantenha os sistemas lado a lado. Prepare o Rankbeam sem remover o site ativo.
  2. Importe, primeiro em simulação. seo:import-from yoast, rank-math ou wordpress-csv lê títulos, descrições, canonicals, robots, palavras-chave e valores sociais. Os importadores são idempotentes e preenchem apenas campos vazios por padrão. Sem --overwrite, preservam os valores já definidos; --dry-run não grava dados.
  3. Transfira os redirecionamentos. O Core gera um CSV versionado. seo-pro:redirects-import valida cada linha e rejeita loops, destinos inseguros e duplicatas antes de gravar.
  4. Verifique antes de excluir. seo:audit --strict retorna erro se houver qualquer ocorrência e pode servir como condição de CI ou troca. O banco WordPress permanece intacto até você decidir removê-lo.

O procedimento completo está no roteiro de migração do WordPress; campos e tokens estão em Migração do WordPress. Se a origem for um pacote Laravel, como ralphjsmit, artesaos ou Spatie, consulte a migração entre pacotes.

Como funciona em escala? ​

As duas exigências da aplicação de referência — resolver metadados em cerca de 20 mil requisições diárias e rastrear aproximadamente 900 páginas — têm benchmarks na suíte. Eles verificam propriedades determinísticas, como quantidade de consultas e limites de tarefas, sem prometer tempos absolutos em qualquer servidor.

Cache do resolvedor: um acerto com cache aquecido não consulta o banco. Com o cache opcional ativado, um resultado armazenado evita toda a cadeia de resolução. O benchmark executa 25 resoluções do mesmo modelo:

Consultas ao banco
Sem cache, com nova leitura de seo_meta a cada resolução≥ 25
Acerto no cache aquecido0

O cache vem desativado. A invalidação acompanha alterações em seo_meta, campos de conteúdo e padrões. Consulte Configuração: cache.

Rastreador de links: tarefas limitadas em 900 páginas. O benchmark processa um conjunto gerado de aproximadamente 900 páginas pela tarefa real:

  • Conclusão em pelo menos 18 tarefas limitadas, com 50 páginas por tarefa.
  • Nenhuma tarefa ultrapassa seu limite de 50 páginas.
  • 1.800 links verificados, com os alvos mortos transformados em ocorrências persistentes de links quebrados confirmados nas condições do teste.

O rastreamento tem limites por execução e orçamento de tempo por tarefa, validação SSRF na busca inicial e em cada salto de redirecionamento, além de uma concessão no banco que mantém uma execução ativa por escopo. Veja a operação no guia de produção.

Testado nas versões compatíveis ​

Uma matriz comum para a família:

  • PHP 8.2–8.4 (Laravel 11); 8.2–8.5 (Laravel 12); 8.3–8.5 (Laravel 13)
  • Laravel 11, 12 e 13.
  • Filament 4 e 5.

Vale manter a integração entre três pacotes? ​

Se a combinação atual exige mais de uma dúzia de classes próprias, adaptação por frontend e tratamento manual de locales, compare esse custo com os recursos compartilhados do Rankbeam. O caso de 900 páginas e cerca de 20 mil visitas diárias mostra uma substituição concreta; a decisão na sua aplicação depende do código que ela poderá remover e das verificações que passar.

Comece pelo início rápido, que vai do composer require ao <head> renderizado em um exemplo de cinco minutos.

rankbeam/laravel-seo é distribuído sob a licença MIT.