bale/seo
Composer 安装命令:
composer require bale/seo
包简介
Seo tool for CMS
README 文档
README
Bale SEO adalah package Laravel untuk mengelola metadata SEO, Open Graph, Twitter Cards, dan sitemap secara dinamis. Package ini dirancang untuk bekerja dengan ekosistem Bale (Umpak & CMS) namun tetap fleksibel untuk aplikasi Laravel lainnya.
Fitur Utama
- Polymorphic Meta: Hubungkan metadata SEO ke model apa pun (Post, Page, dsb).
- Automatic Fallbacks: Secara otomatis menghasilkan deskripsi dari konten jika tidak diatur manual.
- Dynamic Sitemap: Mendukung sitemap index dan sub-sitemap untuk Post dan Page.
- Dynamic Robots.txt: Menghasilkan file robots.txt yang dapat dikonfigurasi.
- Structured Data: Mendukung JSON-LD untuk SEO yang lebih baik.
- Blade Component: Komponen siap pakai untuk integrasi head HTML yang mudah.
Instalasi
Anda dapat menginstal package ini via composer:
composer require bale/seo
Setelah instalasi, jalankan perintah instalasi untuk mempublish migrasi dan melakukan konfigurasi awal:
php artisan seo:install
Perintah ini akan:
- Mempublish file migrasi.
- Menanyakan apakah Anda ingin mengaktifkan route SEO (sitemap.xml dan robots.txt).
- Memperbarui file
.envAnda denganSEO_USE_ROUTES.
Jangan lupa jalankan migrasi:
php artisan migrate
Konfigurasi
Anda dapat mempublish file konfigurasi dengan:
php artisan vendor:publish --tag="seo-config"
Isi dari file config/seo.php:
return [ 'site_name' => env('SEO_SITE_NAME', config('app.name', 'Bale')), 'use_routes' => env('SEO_USE_ROUTES', false), 'defaults' => [ 'title' => env('SEO_DEFAULT_TITLE', config('app.name', 'Bale')), 'description' => env('SEO_DEFAULT_DESCRIPTION', ''), 'image' => env('SEO_DEFAULT_IMAGE', '/img/og-image.jpg'), 'keywords' => env('SEO_DEFAULT_KEYWORDS', ''), ], 'sitemap' => [ 'models' => [ 'post' => \Bale\Umpak\Models\Post::class, 'page' => \Bale\Umpak\Models\Page::class, ], ], ];
Penggunaan
1. Menyiapkan Model
Tambahkan trait HasSeoMeta ke model yang ingin Anda beri dukungan SEO:
namespace App\Models; use Bale\Seo\Traits\HasSeoMeta; use Illuminate\Database\Eloquent\Model; class Post extends Model { use HasSeoMeta; // Opsional: tentukan sumber fallback untuk deskripsi public function getExcerpt($limit = 160) { return Str::limit(strip_tags($this->content), $limit); } }
2. Integrasi ke Layout
Gunakan komponen <x-seo::seo-meta /> di dalam tag <head> layout Anda:
<head> <!-- Meta tags lainnya --> <x-seo::seo-meta :model="$post" /> <!-- Atau dengan default values --> <x-seo::seo-meta :defaults="['title' => 'Custom Title']" /> </head>
3. Mengelola Data SEO
Anda dapat membuat atau memperbarui data SEO untuk sebuah model dengan mudah:
$post->updateSeoMeta([ 'title' => 'Judul SEO Keren', 'description' => 'Deskripsi yang menarik untuk Google.', 'og_title' => 'Judul untuk Facebook', 'no_index' => true, // Opsional ]);
Sitemap & Robots.txt
Jika use_routes diaktifkan di konfigurasi, package akan menyediakan route berikut:
/sitemap.xml: Index sitemap./sitemap-posts.xml: Sitemap khusus post./sitemap-pages.xml: Sitemap khusus page./robots.txt: File robots.txt dinamis.
Anda dapat menentukan model mana yang masuk ke sitemap melalui config/seo.php.
Testing
composer test
Changelog
Silakan lihat CHANGELOG untuk informasi terbaru mengenai perubahan.
Lisensi
Lisensi MIT. Silakan lihat File Lisensi untuk informasi lebih lanjut.
统计信息
- 总下载量: 109
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 2
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-15