Merhaba arkadaşlar, bugün sizlere Laravel’de SEO dostu URL’ler oluşturma konusunu anlatacağım. SEO (Search Engine Optimization), web sitenizin arama motorlarında daha üst sıralarda çıkmasını sağlayan bir dizi teknik ve stratejidir. SEO dostu URL’ler, kullanıcıların ve arama motorlarının sitenizi daha kolay anlamasını sağlar. Laravel, bu tür URL’ler oluşturmak için birçok kolaylık sunar. Gelin, bu konuları adım adım inceleyelim.
SEO dostu URL’ler, kullanıcıların ve arama motorlarının içeriği daha kolay anlamasını sağlayan URL’lerdir. Bu tür URL’ler, anahtar kelimeler içerir, kısa ve anlaşılırdır. Örneğin, https://example.com/posts/1
yerine https://example.com/posts/seo-dostu-url
gibi bir URL kullanmak daha etkilidir.
Laravel’de SEO dostu URL’ler oluşturmak için slug kullanabilirsiniz. Slug, bir metnin URL’de kullanılabilecek hale getirilmiş halidir. Örneğin, "SEO Dostu URL" başlığı, seo-dostu-url
şeklinde bir slug’a dönüştürülebilir.
Laravel’de slug oluşturmak için Str::slug
metodunu kullanabilirsiniz. Örneğin, bir blog gönderisi için slug oluşturalım:
use Illuminate\Support\Str; $title = "SEO Dostu URL Nasıl Oluşturulur?"; $slug = Str::slug($title); echo $slug; // seo-dostu-url-nasil-olusturulur
Bu kod, başlığı SEO dostu bir URL’ye dönüştürür.
Bir modelde slug kullanmak için, modelin slug
alanını otomatik olarak oluşturabilirsiniz. Örneğin, bir Post
modeli için:
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; class Post extends Model { protected $fillable = ['title', 'slug', 'content']; public static function boot() { parent::boot(); static::creating(function ($post) { $post->slug = Str::slug($post->title); }); } }
Bu kod, bir gönderi oluşturulduğunda otomatik olarak slug oluşturur.
Route’larda slug kullanmak için, route tanımında slug parametresini kullanabilirsiniz. Örneğin:
Route::get('/posts/{slug}', [PostController::class, 'show']);
Bu route, https://example.com/posts/seo-dostu-url
gibi bir URL’e erişim sağlar.
Controller’da slug kullanarak ilgili kaydı bulabilirsiniz. Örneğin, PostController
içinde:
namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { public function show($slug) { $post = Post::where('slug', $slug)->firstOrFail(); return view('posts.show', compact('post')); } }
Bu kod, slug’a göre ilgili gönderiyi bulur ve görüntüler.
Eğer aynı başlığa sahip birden fazla gönderi varsa, slug’ların benzersiz olmasını sağlamak için ek bir işlem yapabilirsiniz. Örneğin:
public static function boot() { parent::boot(); static::creating(function ($post) { $slug = Str::slug($post->title); $count = Post::where('slug', 'like', "{$slug}%")->count(); $post->slug = $count ? "{$slug}-{$count}" : $slug; }); }
Bu kod, aynı başlığa sahip gönderiler için benzersiz slug’lar oluşturur (örneğin, seo-dostu-url-1
, seo-dostu-url-2
).
Blade template’de SEO dostu URL’ler oluşturmak için route
fonksiyonunu kullanabilirsiniz. Örneğin:
<a href="{{ route('posts.show', $post->slug) }}">{{ $post->title }}</a>
Bu kod, gönderi başlığını bir link olarak gösterir ve SEO dostu bir URL oluşturur.
Laravel’de SEO dostu URL’ler oluşturmak, web sitenizin arama motorlarında daha üst sıralarda çıkmasını sağlamanın en etkili yollarından biridir. Eğer kullanıcı deneyimini iyileştirmek ve arama motoru optimizasyonu yapmak istiyorsanız, SEO dostu URL’leri mutlaka kullanmalısınız. Bir sonraki yazımda, Laravel’de Pagination ve Sıralama İşlemleri konusuna değineceğim. Görüşmek üzere!