Auto SEO Meta Tags
Sistem otomatis untuk generate meta tags SEO lengkap hanya dengan 4 variable sederhana. Sistem akan auto-generate semua meta tags yang dibutuhkan untuk SEO: Standard Meta, Open Graph (Facebook), Twitter Card, dan Canonical URL.
NexaDom.php NexaController.php · autoGenerateSeoMeta nexaVars
Pengantar
Sebelumnya, untuk membuat meta tags SEO lengkap, Anda harus mendefinisikan 15+ variable yang repetitif. Sekarang cukup 4 variable saja, dan sistem akan otomatis generate sisanya.
return [
'page_title' => 'Judul',
'og_title' => 'Judul',
'twitter_title' => 'Judul',
'page_description' => 'Deskripsi',
'og_description' => 'Deskripsi',
'twitter_description' => 'Deskripsi',
// ... 10+ lines lagi
];return [
'meta_title' => 'Judul',
'meta_description' => 'Deskripsi',
'meta_keywords' => 'keywords',
'meta_image' => $image,
];Cara penggunaan
Di controller, cukup assign 4 variable menggunakan nexaVars() atau assignVars():
public function index(): void
{
$this->nexaVars([
'meta_title' => 'Nexa Dom Framework',
'meta_description' => 'Framework PHP modern',
'meta_keywords' => 'nexa, php framework',
'meta_image' => $this->url('assets/images/logo.png'),
]);
$this->render('index');
}Dengan Data class
Gunakan Data class untuk meta tags default:
class Meta extends NexaController
{
public function tags(): array
{
return [
'meta_title' => 'Nexa Dom Framework',
'meta_description' => 'Framework PHP modern',
'meta_keywords' => 'nexa, framework',
'meta_image' => $this->url('assets/images/logo.png'),
];
}
}$Meta = $this->useData('Meta', 'tags');
$this->nexaVars($Meta);Dynamic content
Untuk halaman dengan konten dinamis (blog, product, dll):
public function detail(string $slug): void
{
$article = $this->Storage('articles')->where('slug', $slug)->first();
$this->nexaVars([
'meta_title' => $article['title'] ?? 'Blog Post',
'meta_description' => $article['excerpt'] ?? '',
'meta_keywords' => $article['tags'] ?? 'blog',
'meta_image' => $article['image'] ?? $this->url('assets/images/default.png'),
]);
$this->render('blog/detail');
}Variable mapping
Sistem akan otomatis mapping variable sederhana ke semua variable yang dibutuhkan:
meta_title→page_title,og_title,twitter_titlemeta_description→page_description,og_description,twitter_descriptionmeta_keywords→page_keywordsmeta_image→og_image,twitter_image,schema_image- Auto-detect →
canonical_url,og_url,twitter_url
Alias support
Sistem mendukung berbagai alias variable:
// Untuk Title
$this->nexaVars(['meta_title' => 'Title']);
$this->nexaVars(['title' => 'Title']);
$this->nexaVars(['page_title' => 'Title']);
// Untuk Description
$this->nexaVars(['meta_description' => 'Desc']);
$this->nexaVars(['description' => 'Desc']);
$this->nexaVars(['page_description' => 'Desc']);Di template
Template tetap menggunakan placeholder seperti biasa. Tidak perlu perubahan!
<head>
<meta name="title" content="{page_title}">
<meta name="description" content="{page_description}">
<meta property="og:title" content="{og_title}">
<meta name="twitter:title" content="{twitter_title}">
</head>Manual override
Jika ingin override variable tertentu secara manual, tetap bisa:
$this->nexaVars([
'meta_title' => 'Judul Halaman',
'meta_description' => 'Deskripsi',
'meta_keywords' => 'keywords',
'meta_image' => 'image.png',
// Override untuk Twitter (berbeda dari default)
'twitter_title' => 'Judul Khusus Twitter',
// Override og:type untuk artikel
'og_type' => 'article',
]);Best practices
- Fallback — Selalu sediakan fallback:
$article['title'] ?? 'Default' - Truncate — Batasi description max 160 karakter:
substr($text, 0, 160) - Strip HTML — Bersihkan HTML dari description:
strip_tags($html) - Data class — Gunakan Data class untuk default meta, override di controller spesifik
Keuntungan
- Lebih sederhana — 4 variable vs 15+ variable
- Konsisten — Semua meta tags selalu sinkron
- Maintainable — Update di satu tempat, semua terupdate
- Flexible — Tetap bisa override manual
- Auto URL Detection — Canonical & social media URL otomatis
- Backward Compatible — Format lama masih bekerja
Technical details
Fitur ini diimplementasikan di system/Dom/NexaDom.php method autoGenerateSeoMeta(), dipanggil otomatis di pparse() sebelum rendering. Tidak memerlukan konfigurasi tambahan.
Dokumentasi lengkap tersedia di system/Dom/SEO-META-README.md.
Lanjut
Sebelumnya: CLI make. Berikutnya: Forms. Indeks Helper · Dokumentasi · Beranda.