Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.0.10

seo

Flutter-Paket zur Aktivierung der SEO-(Meta-, Body-Tag-)Unterstützung im Web.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
9760
Likes
142
Pub-Punkte
140

Paket installieren

flutter pub add seo

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das seo-Paket ist ein Flutter-Plugin, das entwickelt wurde, um die SEO-Funktionen für Web-Anwendungen zu verbessern, indem es die dynamische Verwaltung von Meta-Tags und Body-Attributen ermöglicht. Es erlaubt Entwicklern, Titel, Beschreibungen, Open-Graph-Tags und andere SEO-relevante Inhalte direkt aus Dart-Code zu setzen. Dadurch stellen Suchmaschinen sicher, dass Webseiten korrekt indiziert werden, was die Sichtbarkeit und Platzierung verbessert. Das Paket integriert sich nahtlos in die Flutter-Web-Plattform und berücksichtigt Aspekte der Server-Seite-Rendern. Es ist besonders nützlich für Anwendungen, die eine detaillierte Kontrolle über Metadaten benötigen, ohne manuelle HTML-Manipulation vornehmen zu müssen.

Anwendungsfälle

  • Dynamische Meta-Tag-Aktualisierungen
  • Verbesserte Suchmaschinen-Indizierung
  • Optimierung der sozialen Medienfreigabe
  • SEO für Einseitenanwendungen
  • Inhaltspersonalisierung basierend auf der Route
  • Kompatibilität mit Server-Seiten-Rendern

Hauptmerkmale

  • Einfache Metatag-Verwaltung
  • Unterstützung für Open Graph und Twitter-Karten
  • Dynamische Änderungen von Titel und Beschreibung
  • Plattformübergreifender Web-Support
  • Minimales Boilerplate
  • Integration mit Flutter Routing

Geeignet für

  • Nur für Web verfügbare Flutter-Apps
  • SEO-orientierte Webanwendungen
  • Apps mit dynamischer Inhalts
  • Entwickler, die Suchbarkeit priorisieren
  • Projekte, die soziale Medien-Metadaten erfordern
  • Apps mit Client-Seiten-Routing

Hinweise

  • Nicht für mobile Plattformen (Android/iOS) geeignet
  • Erfordert sorgfältige Handhabung in Szenarien mit mehreren Routen
  • Beschränkt auf Webplattform-Funktionalität
  • Ersetzt keine vollständigen SSR-Frameworks
  • Manuelle Konfiguration für erweiterte SEO erforderlich
  • Am besten mit einer geeigneten Seitengliederung verwenden

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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.

Kategorien

Abhängigkeiten

Abhängigkeiten 2 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.