Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

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_titlepage_title, og_title, twitter_title
  • meta_descriptionpage_description, og_description, twitter_description
  • meta_keywordspage_keywords
  • meta_imageog_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.