Web Analytics Made Easy - StatCounter
Главная Блог Сгенерируйте дружественный к SEO URL-адрес в Laravel

Сгенерируйте дружественный к SEO URL-адрес в Laravel

Сгенерируйте дружественный к SEO URL-адрес в Laravel

Введение

Чтобы ранжировать ваш сайт в поисковой системе и получать органический трафик на ваш сайт, созданный на Laravel, очень важно генерировать ссылки на ваши веб-сайты в формате, оптимизированном для SEO. Большинство разработчиков не заботятся о правильном и оптимизированном для SEO формировании URL-адресов, чтобы их веб-сайт не попал в рейтинг поисковой системы.

Некоторые разработчики генерируют URL-адрес веб-сайта как серверное приложение, например (example.com/123 или example.com/posts/123). URL-адреса веб-сайтов отображаются в поисковой выдаче (страница результатов поисковой системы) вместе с заголовком веб-страницы. Если вы не используете дружественный для SEO URL-адрес рядом с заголовком веб-страницы, тогда URL-адрес не отражает содержание этого URL-адреса и не поможет вашему веб-сайту соответствовать ключевому слову поиска пользователя.

В результате ваш веб-сайт не получает рейтинга, и вы теряете больше трафика от поисковых систем, таких как Google, Yahoo, Bing и т. Д. Здесь, в этом посте, я покажу вам пошаговое руководство по созданию оптимизированного для SEO URL-адреса для вашего Laravel. сделал сайт.

SEO дружественное формирование URL

Для любого веб-сайта, связанного с блогом / статьей, мы можем сгенерировать URL-адрес для отдельного сообщения, страницы блогов / статей, страницы категории, как показано ниже.

Хорошо

формат URLРоут
example.com/postsRoute::get('/posts','SiteController@posts');
example.com/categories/tips-and-tricksRoute::get('/categories/{slug}','SiteController@categoryPosts');
example.com/posts/awesome-post-slugRoute::get('/posts/{slug}','SiteController@postDetails');

Плохо

example.com/posts/123 example.com/posts?id=123 example.com/categories/45 example.com/category?id=45 

Процесс создания URL-адресов, оптимизированных для SEO

  • Добавить заголовок столбца в таблицы.
  • Настройка модели для уникального ярлыка и ссылки.
  • Код контроллера сайта.
  • Просмотр кода и создание ссылок.

Добавить в таблицы столбец slug

Мы будем генерировать URL-адреса с помощью уникального ярлыка для более читабельного и SEO-удобного использования вместо использования идентификатора записи. Чтобы сделать URL-адрес непрерывным, нам нужно добавить столбец уникального типа в наши категории и таблицу сообщений, если он не был добавлен раньше.

Настройка модели для уникального slug и ссылки

Нам нужен пакет cviebrock / eloquent-sluggable для генерации уникального URL-адреса слага. Позвольте установить этот пакет.

composer require cviebrock/eloquent-sluggable 

Категория модели

<?php namespace App; use Illuminate\Database\Eloquent\Model; use Cviebrock\EloquentSluggable\Sluggable; class Category extends Model { use Sluggable; public function sluggable() { return [ 'slug' => [ 'source' => 'name' ] ]; } public function getLink() { return url('categories/'.$this->slug); } public function posts() { return $this->hasMany('App\Post'); } //other code } 

Эта настройка модели категории автоматически сгенерирует для нас уникальный URL-адрес слага из имени категории во время создания категории, а getLink поможет нам получить ссылку на наше желание из каждого объекта категории.

$category = new Category([ 'name' => 'Tips and Tricks', ]); $category ->save(); //$category->slug is "tips-and-tricks" 

Модель поста

<?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { use Sluggable; public function sluggable() { return [ 'slug' => [ 'source' => 'title' ] ]; } public function getLink() { return url('posts/'.$this->slug); } public function category() { return $this->belongsTo('App\Category'); } //other code } 

Эта настройка модели поста автоматически сгенерирует для нас уникальный URL-адрес слага из заголовка поста во время создания поста, а getLink поможет нам получить нашу желаемую ссылку на пост из каждого объекта поста.

$post= new Post([ 'title' => 'Awesome Post Title', ]); $post->save(); //$post->slug is "awesome-post-title" 

Код контроллера сайта

Давайте напишем код для нашего контроллера сайта для просмотра ответа в соответствии с нашим определением маршрута.

<?php namespace App\Http\Controllers\Site; use App\Category; use App\Post; class SiteController extends Controller { public function posts(){ $data = Post::with('category')->paginate(20); return view('site.posts',compact('data')); } public function categoryPosts($slug){ $data = Category::with('posts')->where('slug',$slug)->first(); return view('site.category-posts',compact('data')); } public function postDetails($slug){ $data = Category::with('category')->where('slug',$slug)->first(); return view('site.post-details',compact('data')); } } 

Просмотр кода и создание ссылки

Получение всех сообщений с разбивкой на страницы в example.com/posts

<!--resources/views/site/posts--> <h2>Posts</h2> @foreach($data as $post) <div> <p><a href="{{$post->getLink()}}">{{$post->title}}</a></p> <p>Category: <a href="{{$post->category->getLink()}}">{{$post->category->name}}</p> <div> @endforeach 

Обратите внимание: нам не нужно вручную создавать ссылку на публикацию, ссылку на категорию. С помощью метода getLink он будет автоматически работать за нас в соответствии с определением метода getLink нашей модели.

Получайте посты по категориям в example.com/categories/my-category

<!--resources/views/site/category-posts--> <h2>Category: {{$data->name}}</h2> @foreach($data->posts as $post) <div> <p><a href="{{$post->getLink()}}">{{$post->title}}</a></p> <p>Category: <a href="{{$post->category->getLink()}}">{{$post->category->name}}</p> <div> @endforeach 

Подробности публикации в example.com/my-unique-post-title

<!--resources/views/site/post-details--> <h2>{{$data->name}}</h2> <p>Category: <a href="{{$data->category->getLink()}}">{{$data->category->name}}</p> <p>{!!$data->description!!}</p> 

Выше я показал вам пошаговый процесс создания оптимизированного для SEO URL в Laravel Framework для сайта блога / статьи. В соответствии с этим процессом вы можете сгенерировать дружественный к SEO URL-адрес в среде Laravel для других типов веб-сайтов, таких как электронная коммерция, сайт со списком каталогов, новостной сайт и т. д.

Ссылки

Generate SEO friendly URL in Laravel