定制 bale/seo 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bale/seo

Composer 安装命令:

composer require bale/seo

包简介

Seo tool for CMS

README 文档

README

Latest Version on Packagist GitHub Tests Action Status License

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:

  1. Mempublish file migrasi.
  2. Menanyakan apakah Anda ingin mengaktifkan route SEO (sitemap.xml dan robots.txt).
  3. Memperbarui file .env Anda dengan SEO_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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固