Package selection guidance compiled from public package information, community data, and project usage.
Meta SEO is a Flutter package designed for web applications to dynamically manage HTML meta tags in the document head. It enables developers to enhance search engine optimization (SEO) by setting metadata such as title, description, keywords, and Open Graph properties. The package integrates seamlessly with Flutter Web projects, allowing easy customization of SEO elements without manual DOM manipulation. It supports all major platforms, including Web, Android, iOS, macOS, Windows, and Linux, making it ideal for cross-platform web apps that require strong SEO performance.
Use cases
Improving search engine visibility
Enhancing social media sharing
Optimizing web app metadata
Dynamic SEO for multi-page apps
Supporting web analytics tracking
Key features
Easy integration with Flutter Web
Dynamic meta tag management
Support for Open Graph and Twitter cards
Cross-platform compatibility
Automatic head tag updates
Suitable for
Flutter web developers
SEO-focused web applications
Apps with dynamic content
Marketing-driven web apps
Full-stack Flutter teams
Considerations
Primarily intended for web platforms
Requires manual handling of server-side rendering
Limited to client-side meta management
Not suitable for non-web targets
Depends on correct usage within Flutter's web build process
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Meta Seo
Flutter package for Meta SEO.
Screenshots
About:
Meta SEO is package for adding meta data for html document in head tag
which meta tags or meta data make search engine optimization for web apps.
Then add the config MetaSEO method before the running of the Flutter app into main.dart file:
voidmain() {
// It is required to add the following to run the meta_seo package correctly// before the running of the Flutter appif (kIsWeb) {
MetaSEO().config();
}
runApp(constMyApp());
}
Finally add MetaSEO into your target web pages:
@overrideWidgetbuild(BuildContext context) {
// Add MetaSEO just into Web platform conditionif(kIsWeb) {
// Define MetaSEO objectMetaSEO meta = MetaSEO();
// add meta seo data for web app as you want
meta.author(author: 'Eng Mouaz M AlShahmeh');
meta.description(description: 'Meta SEO Web Example');
meta.keywords(keywords: 'Flutter, Dart, SEO, Meta, Web');
}
returnconstScaffold(
body: Center(child: Text('Meta SEO Web Example')),
);
}
Other example with GoRouter package
First: Add to pubspec.yaml:
dependencies:meta_seo:^3.0.9go_router:^5.2.0# Add the latest version
Second: The same as before and add the config MetaSEO method before the running of the Flutter app into main.dart file:
voidmain() {
// It is required to add the following to run the meta_seo package correctly// before the running of the Flutter appif (kIsWeb) {
MetaSEO().config();
}
runApp(constMyApp());
}
Then follow GoRouter configuration steps and latest add MetaSEO into your GoRouter as you want:
final router = GoRouter(
initialLocation: '/',
routes: <GoRoute>[
GoRoute(
path: '/',
builder: (BuildContext context, GoRouterState state) {
// Add MetaSEO just into Web platform conditionif(kIsWeb) {
// Define MetaSEO objectMetaSEO meta = MetaSEO();
// add meta seo data for web app as you want
meta.ogTitle(ogTitle: 'First Screen');
meta.description(description: 'First Screen');
meta.keywords(keywords: 'Flutter, Dart, SEO, Meta, Web');
}
returnconstFirstScreen();
},
),
GoRoute(
path: '/second_screen',
builder: (BuildContext context, GoRouterState state) {
// Add MetaSEO just into Web platform conditionif(kIsWeb) {
// Define MetaSEO objectMetaSEO meta = MetaSEO();
// add meta seo data for web app as you want
meta.ogTitle(ogTitle: 'Second Screen');
meta.description(description: 'Second Screen');
meta.keywords(keywords: 'Flutter, Dart, SEO, Meta, Web');
}
returnconstSecondScreen();
},
),
],
);
Extended MetaSEO tags
If you want to use Open Graph or Twitter Card meta tags
Note: You must be in live server not as a local host.
Note: The package delete any duplicated meta tags and keep the latest in order.
The same as before and if you want to use any tags does not exist into the main package
methods just add extended tags as the below:
@overrideWidgetbuild(BuildContext context) {
// Add MetaSEO just into Web platform conditionif(kIsWeb) {
// Define MetaSEO objectMetaSEO meta = MetaSEO();
// add meta seo open graph tags as you want
meta.facebookAppID(facebookAppID: 'your_app_id');
meta.ogTitle(ogTitle: 'Example Screen');
meta.ogDescription(ogDescription: 'Example Screen Description');
meta.ogImage(ogImage: 'https://example.com/example.png');
// here you can add any tags does not exist in the package as this
meta.propertyContent(property: 'og:site_name', content: 'example');
// or if you want to add twitter card meta tags just as the following
meta.twitterCard(twitterCard: TwitterCard.summaryLargeImage);
meta.twitterTitle(twitterTitle: 'Example Screen');
meta.twitterDescription(twitterDescription: 'Example Screen Description');
meta.twitterImage(twitterImage: 'https://example.com/example.png');
// here you can add any tags does not exist in the package as this
meta.nameContent(name: 'twitter:site', content: '@mouaz_m_shahmeh');
}
returnconstScaffold(
body: Center(child: Text('Extended Meta SEO Web Example')),
);
}