Meta SEO는 웹 애플리케이션을 위한 Flutter 패키지로, 문서 헤드의 HTML 메타 태그를 동적으로 관리하도록 설계되었습니다. 제목, 설명, 키워드, 오픈 그래프 속성과 같은 메타데이터를 설정함으로써 개발자가 검색 엔진 최적화(SEO)를 강화할 수 있습니다. 이 패키지는 Flutter Web 프로젝트에 원활하게 통합되며, 수동 DOM 조작 없이도 SEO 요소를 쉽게 사용자 정의할 수 있게 해줍니다. Web, Android, iOS, macOS, Windows, Linux 등 모든 주요 플랫폼을 지원하여 강력한 SEO 성능이 필요한 크로스플랫폼 웹 앱에 적합합니다.
사용 사례
검색 엔진 가시성 향상
소셜 미디어 공유 향상
웹 앱 메타데이터 최적화
다중 페이지 앱을 위한 동적 SEO
웹 분석 추적 지원
주요 기능
Flutter Web과의 간편한 통합
동적 메타 태그 관리
Open Graph 및 Twitter 카드 지원
크로스 플랫폼 호환성
자동 헤드 태그 업데이트
적합한 대상
Flutter 웹 개발자
SEO 중심 웹 애플리케이션
동적 콘텐츠를 가진 앱
마케팅 중심 웹 애플리케이션
풀스택 플러터 팀
고려 사항
주로 웹 플랫폼을 위한
서버 사이드 렌더링에 대한 수동 처리가 필요합니다
클라이언트 측 메타 관리에 한정
웹 외 타겟에는 적합하지 않습니다
Flutter의 웹 빌드 프로세스 내에서 올바르게 사용되는 것에 의존합니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
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')),
);
}