Skip to content

Modul SEO

Toolkit SEO on-page dan teknis lengkap untuk TAVP CMS. Mengelola meta tag, structured data, sitemap, redirect, dan analisis konten.

Ikhtisar

Modul SEO menyediakan semua yang dibutuhkan untuk optimasi mesin pencari di level CMS:

  • Meta Tags — Title, description, keywords per record konten
  • Open Graph — Optimasi berbagi di Facebook/LinkedIn
  • Twitter Cards — Optimasi berbagi di Twitter
  • JSON-LD Schemas — Structured data untuk rich snippets
  • XML Sitemap — Dibuat otomatis, otomatis di-ping ke mesin pencari
  • Robots.txt — Dibuat dinamis dari konfigurasi
  • RSS Feed — Sindikasi konten
  • Redirect Manager — Redirect 301/302 dengan pelacakan hit
  • SEO Analyzer — Skor konten beserta saran
  • Social Sharing — Tombol bagikan ke platform utama
  • Webmaster Tools — Verifikasi Google/Bing
  • Google Analytics — Suntik kode pelacakan otomatis
  • Outbound Link Tracking — Deteksi tautan rusak
  • AI Meta Generator — Generate meta otomatis dari konten

Quick Start

SEO aktif secara default di TAVP CMS. Tidak perlu setup tambahan.

bash
# Buka dashboard SEO
open https://yoursite.com/admin/seo

# Lihat sitemap
open https://yoursite.com/sitemap.xml

# Lihat robots.txt
open https://yoursite.com/robots.txt

# Lihat RSS feed
open https://yoursite.com/feed

Konfigurasi

config/seo.php

php
return [
    'enabled' => true,

    'meta' => [
        'title_suffix' => ' | My Site',
        'separator' => ' | ',
        'description_max' => 160,
        'title_max' => 60,
    ],

    'sitemap' => [
        'enabled' => true,
        'path' => '/sitemap.xml',
        'max_urls' => 50000,
        'cache_ttl' => 3600,
        'ping_google' => true,
        'ping_bing' => true,
    ],

    'robots' => [
        'enabled' => true,
        'path' => '/robots.txt',
        'allow' => ['/'],
        'disallow' => ['/admin', '/api'],
        'sitemap_url' => '/sitemap.xml',
    ],

    'open_graph' => [
        'enabled' => true,
        'default_image' => '',
        'default_type' => 'website',
    ],

    'twitter' => [
        'enabled' => true,
        'card_type' => 'summary_large_image',
        'site_handle' => '@yoursite',
    ],

    'schemas' => [
        'enabled' => true,
        'types' => [
            'page' => 'WebPage',
            'post' => 'Article',
            'product' => 'Product',
        ],
        'organization' => [
            'name' => 'My Company',
            'logo' => 'https://yoursite.com/logo.png',
            'url' => 'https://yoursite.com',
        ],
    ],

    'rss' => [
        'enabled' => true,
        'path' => '/feed',
        'limit' => 20,
    ],

    'webmaster' => [
        'google_verification' => env('GOOGLE_SITE_VERIFICATION'),
        'bing_verification' => env('BING_SITE_VERIFICATION'),
    ],

    'analytics' => [
        'google_analytics_id' => env('GOOGLE_ANALYTICS_ID'),
    ],

    'redirects' => [
        'enabled' => true,
        'ignore_case' => true,
        'track_hits' => true,
    ],

    'analyzer' => [
        'enabled' => true,
        'min_title_length' => 30,
        'max_title_length' => 60,
        'min_description_length' => 120,
        'max_description_length' => 160,
    ],

    'social_sharing' => [
        'enabled' => true,
        'platforms' => ['twitter', 'facebook', 'linkedin', 'whatsapp', 'telegram'],
    ],
];

Admin UI

Dashboard (/admin/seo)

Ikhtisar kesehatan SEO:

  • Total record meta SEO
  • Rata-rata skor SEO
  • Jumlah redirect aktif
  • Jumlah tautan rusak
  • Tautan sitemap dan robots.txt
  • Tombol ping mesin pencari

Settings (/admin/seo/settings)

Atur default SEO global:

  • Suffix dan separator title meta
  • Gambar OG default
  • Twitter handle
  • Kode verifikasi Google/Bing
  • ID Google Analytics/Tag Manager
  • Data schema organisasi

Redirects (/admin/seo/redirects)

Kelola redirect URL:

  • Tambah redirect baru (dari URL, ke URL, kode status)
  • Lihat daftar redirect beserta jumlah hit
  • Hapus redirect
  • Dukungan 301 (permanen) dan 302 (sementara)

Analyzer (/admin/seo/analyzer)

Analisis kualitas SEO konten:

  • Skor keseluruhan (0-100)
  • Daftar error (masalah kritis)
  • Daftar warning (perlu perbaikan)
  • Daftar saran (tips optimasi)
  • Preview pencarian Google

Routes

Public Routes

RouteMethodDescription
/sitemap.xmlGETXML sitemap
/robots.txtGETRobots.txt
/feedGETFeed RSS/Atom

Admin Routes

RouteMethodDescription
/admin/seoGETDashboard SEO
/admin/seo/settingsGET/POSTPengaturan SEO
/admin/seo/redirectsGET/POSTRedirect manager
/admin/seo/redirects/deletePOSTHapus redirect
/admin/seo/analyzerGETAnalisis konten
/admin/seo/pingPOSTPing mesin pencari

JSON-LD Schemas

Generator schema membuat structured data untuk rich snippets:

Article (untuk post)

json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "My Blog Post",
  "description": "Post description",
  "image": "https://yoursite.com/image.jpg",
  "datePublished": "2026-07-11T00:00:00+00:00",
  "dateModified": "2026-07-11T00:00:00+00:00",
  "author": {
    "@type": "Person",
    "name": "Admin"
  }
}

Product

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "My Product",
  "description": "Product description",
  "offers": {
    "@type": "Offer",
    "price": "29.99",
    "priceCurrency": "USD"
  }
}
json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://yoursite.com"},
    {"@type": "ListItem", "position": 2, "name": "Blog", "item": "https://yoursite.com/blog"}
  ]
}

Skor SEO Analyzer

SkorRatingWarna
70-100BagusHijau
40-69Perlu perbaikanKuning
0-39BurukMerah

Pemeriksaan

PemeriksaanPoinTipe
Title hilang-30Error
Title terlalu pendek/panjang-10Warning
Meta description hilang-20Error
Meta description terlalu pendek/panjang-10Warning
OG title hilang-5Warning
OG image hilang-5Saran
Canonical URL hilang-3Saran
Focus keyword belum diatur-5Saran
Tidak ada gambar di konten-3Saran
Konten tipis (<300 kata)-10Warning
Kepadatan keyword terlalu rendah/tinggi-5/-10Warning

Tabel Database

seo_meta

Menyimpan field SEO per record.

ColumnTypeDescription
idbigintPrimary key
content_typevarcharNama content type
content_idbigintID record konten
meta_titlevarcharSEO title
meta_descriptiontextSEO description
meta_keywordsvarcharKeyword dipisah koma
og_titlevarcharOpen Graph title
og_descriptiontextOpen Graph description
og_imagevarcharURL gambar Open Graph
og_typevarcharTipe Open Graph
twitter_titlevarcharTwitter Card title
twitter_descriptiontextTwitter Card description
twitter_imagevarcharURL gambar Twitter Card
twitter_cardvarcharTipe Twitter Card
canonical_urlvarcharCanonical URL
robotsvarcharDirektif meta robots
schema_typevarcharTipe schema JSON-LD
schema_datatextCustom schema JSON
seo_scoreintSkor SEO (0-100)
focus_keywordvarcharKeyword target

redirects

Menyimpan aturan redirect URL.

ColumnTypeDescription
idbigintPrimary key
from_urlvarcharURL sumber
to_urlvarcharURL tujuan
status_codeintStatus HTTP (301/302)
is_activebooleanFlag aktif
is_regexbooleanFlag pola regex
hitsintHit counter
last_hit_attimestampWaktu hit terakhir

Melacak tautan keluar untuk deteksi tautan rusak.

ColumnTypeDescription
idbigintPrimary key
content_typevarcharContent type sumber
content_idbigintID konten sumber
urlvarcharURL keluar
status_codeintKode status HTTP
is_brokenbooleanFlag rusak
last_checked_attimestampWaktu cek terakhir

Released under the MIT License.