Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.0.10

seo

Pacote Flutter para habilitar o suporte a SEO (meta, tag body) no Web.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
11,6 mil
Curtidas
142
Pontos Pub
140

Instalar pacote

flutter pub add seo

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote seo é um plugin do Flutter projetado para aprimorar as capacidades de SEO em aplicações web, permitindo o gerenciamento dinâmico de tags meta e atributos do corpo. Ele permite que desenvolvedores definam títulos, descrições, tags Open Graph e outros conteúdos relacionados ao SEO diretamente no código Dart. Isso garante que os motores de busca possam indexar corretamente as páginas da web, melhorando visibilidade e classificação. O pacote se integra perfeitamente à plataforma web do Flutter e considera aspectos de renderização do lado do servidor. É especialmente útil para aplicativos que exigem controle avançado de metadados sem a necessidade de manipulação manual de HTML.

Casos de uso

  • Atualizações dinâmicas de meta tag
  • Indexação de mecanismo de busca aprimorada
  • Otimização de compartilhamento em redes sociais
  • SEO de aplicativo de página única
  • Personalização de conteúdo com base na rota
  • Compatibilidade com renderização do lado do servidor

Principais recursos

  • Gerenciamento fácil de tags meta
  • Suporte para Open Graph e cartões do Twitter
  • Alterações dinâmicas no título e descrição
  • Suporte web multiplataforma
  • Boilerplate mínimo
  • Integração com roteamento do Flutter

Indicado para

  • Aplicativos Flutter somente para web
  • Aplicações web focadas em SEO
  • Aplicativos com conteúdo dinâmico
  • Desenvolvedores que priorizam a visibilidade na busca
  • Projetos que exigem metadados de mídia social
  • Aplicativos que usam roteamento do lado do cliente

Considerações

  • Não aplicável às plataformas móveis (Android/iOS)
  • Requer manipulação cuidadosa em cenários de múltiplas rotas
  • Limitado à funcionalidade da plataforma web
  • Não substitui frameworks SSR completos
  • Configuração manual necessária para SEO avançado
  • Melhor usado com uma estrutura de página adequada

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

flutter_seo

pub package

Flutter package for enabling SEO (meta, body tag) support on Web. The package listens to widget tree changes and converts Seo.text(...), Seo.image(...), Seo.link(...), Seo.head(...) widgets into html document tree. View Demo

 

Getting Started

To use this plugin, add seo as a dependency in your pubspec.yaml file.

dependencies:
  seo: ^0.0.10

Use usePathUrlStrategy() to ensure that Google recognizes each URL as a distinct page. Failure to do so may result in Google perceiving all URLs as the same page. For additional details, refer to this video.

void main() {
  usePathUrlStrategy();
  runApp(App());
}

 
Wrap your app within SeoController which will handle listening to widget tree changes and updating the html document tree. In case your app has authorization and user is logged in you can disable the controller by enabled: false as it's redundant to update the html document tree at that state.

import 'package:seo/seo.dart';

void main() {
  usePathUrlStrategy();
  runApp(const App());
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return SeoController(
      enabled: true,
      tree: WidgetTree(context: context),
      child: MaterialApp(...),
    );
  }
}

 
There's two available SeoTree implementations:

  • WidgetTree (recommended) - based on traversing widget tree, while it's bit slower than SemanticsTree it's production ready and doesn't have any blocking Flutter SDK issues.
  • SemanticsTree (experimental) - based on traversing semantic data node tree. Does traverse the tree faster but doesn't support Seo.head(...), Seo.text(style: ...), Seo.link(rel: ...), Seo.html(html: ...)

 

Sample Usage

You should wrap all your SEO required widgets accordingly within Seo.text(...), Seo.image(...), Seo.link(...) and SEO required pages within Seo.head(...). From personal experience it's more comfortable to create custom AppText, AppImage, AppLink, AppHead base widgets and use those in the project.

Text
Seo.text(
  text: 'Some text',
  child: ...,
); // converts to: <p>Some text</p>

Seo.text(
  text: 'Some text',
  style: TextTagStyle.h1,
  child: ...,
); // converts to: <h1>Some text</h1>
Image
Seo.image(
  src: 'http://www.example.com/image.jpg',
  alt: 'Some example image',
  child: ...,
); // converts to: <img src="http://www.example.com/image.jpg" alt="Some example image"/>
Link
Seo.link(
  href: 'http://www.example.com',
  anchor: 'Some example',
  rel: 'nofollow', (optional)
  child: ...,
); // converts to: <a href="http://www.example.com" rel="nofollow"><p>Some example</p></a>
Html
Seo.html(
  html: '<div>Some raw html</div>',
  child: ...,
); // converts to: <div>Some raw html</div>
Head
Seo.head(
  tags: [
    MetaTag(name: 'title', content: 'Flutter SEO Example'),
    LinkTag(rel: 'canonical', href: 'http://www.example.com'),
  ],
  child: ...,
); // converts to: <meta name="title" content="Flutter SEO Example"><link rel="canonical" href="http://www.example.com" />

Warning: Open Graph (og:title, og:description, etc.) and Twitter Card (twitter:title, twitter:description, etc.) will not work. Read more.

 

Tips

Supporting Open Graph, Twitter Card tags

Facebook, Twitter, etc. simply load index.html and don't execute any JavaScript that webpage contains so we're not able to change meta tags within Dart code. The proposed solution is to create simple Server-Side Rendering which would add Open Graph, Twitter Card tags within index.html before returning it to Client.

 

Demo

View demo here: https://flutter-seo.netlify.app

PageSpeed Insights

MobilePerformance ≈56Accessibility 87Best Practices 100SEO 100
DesktopPerformance ≈85Accessibility 88Best Practices 100SEO 100

Google Search

Landing page has been indexed and does appear in Search

Remaining pages have Discovered - currently not indexed status. I am investigating why.

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.