معرفی ابزار SEO برای لاراول
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 7 دقیقه

معرفی ابزار SEO برای لاراول

SEOTools یک پکیج برای +5 Laravel و Lumen هست که یکسری کمکی برای تکنیک های معمول SEO فراهم میکنه.

ویژگی ها

  • رابط کاربری مناسب
  • راحتی در قرار دادن عناوین و meta tag ها
  • راحتی در قرار دادن meta برای توئیتر و opengraph

نصب

1 - وابستگی ها

اولین قدم استفاده از کامپوزر برای نصب پکیج و آپدیت خودکار فایل composer.json هست. شما میتونید این کار رو با اجرای دستور زیر انجام بدید :

composer require artesaos/seotools

2 - Provider و Facade

شما باید پیکربندی اپلیکیشن تون رو به روز کنید تا پکیج ثبت بشه. فایل config/app.php رو باز کرده و کد زیر رو پایین بخش providers قرار بدید :

// file START ommited

    'providers' => [

        // other providers ommited

        Artesaos\SEOTools\Providers\SEOToolsServiceProvider::class,

    ],

// file END ommited

برای استفاده از SEOMeta facade هم باید در فایل config/app.php به صورت زیر تغییرات رو انجام بدید :

// file START ommited

    'aliases' => [

        // other Facades ommited

        'SEOMeta'   => Artesaos\SEOTools\Facades\SEOMeta::class,

        'OpenGraph' => Artesaos\SEOTools\Facades\OpenGraph::class,

        'Twitter'   => Artesaos\SEOTools\Facades\TwitterCard::class,

        // or

        'SEO' => Artesaos\SEOTools\Facades\SEOTools::class,

    ],

// file END ommited

پیکربندی

انتشار فایل پیکربندی

در ترمینال خود دستور زیر رو اجرا کنید :

php artisan vendor:publish

و یا میتونید از این دستور استفاده کنید :

php artisan vendor:publish --provider="Artesaos\SEOTools\Providers\SEOToolsServiceProvider"

در فایل پیکربندی seotools.php شما میتونید پراپرتی های پیشفرض رو ملاحظه کنید و مقادیرش رو بصورت دلخواه تغییر بدید.

فایل seotools.php 

  • meta
  • defaults - اگر مقداری برای صفحه ی نمایشی تعیین نشد, چه مقداری باید نمایش داده بشه. اگر مقدارش false باشه هیچ چیزی نمایش داده نمیشه.
  • webmaster - تنظیمات مقادیر تگ ها برای ابزارهای وب مستر بزرگ هست. اگر null قرار بدید هیچ چیزی نمایش داده نمیشه.
  • opengraph
  • defaults - پراپرتی هایی که همیشه و هرگاه مقداری دیگری تنظیم نشده باشد, نمایش داده می شوند. شما میتونید تگ های اضافه بیافزایید که در فایل پیکربندی اورجینال وجود ندارند.

نحوه استفاده

نحوه استفاده در Lumen

$seotools = app('seotools');

$metatags = app('seotools.metatags');

$twitter = app('seotools.twitter');

$opengraph = app('seotools.opengraph');



// The behavior is the same as the facade

// --------



echo app('seotools')->generate();

  • با استفاده از SEOMeta میتونید تگ های meta به head اضافه کنید.
  • با استفاده از OpenGraph میتونید تگ های opengraph به head اضافه کنید.
  • با استفاده از Twitter هم میتونید تگ های opengraph رو به head بیافزایید.

در قسمت کنترلر :


use SEOMeta;

use OpenGraph;

use Twitter;

## or

use SEO;


class CommomController extends Controller

{

    /**

     * @return \Illuminate\View\View

     */

    public function index()

    {

        SEOMeta::setTitle('Home');

        SEOMeta::setDescription('This is my page description');

        SEOMeta::setCanonical('https://codecasts.com.br/lesson');



        OpenGraph::setDescription('This is my page description');

        OpenGraph::setTitle('Home');

        OpenGraph::setUrl('http://current.url.com');

        OpenGraph::addProperty('type', 'articles');



        Twitter::setTitle('Homepage');

        Twitter::setSite('@LuizVinicius73');



        ## Or



        SEO::setTitle('Home');

        SEO::setDescription('This is my page description');

        SEO::opengraph()->setUrl('http://current.url.com');

        SEO::setCanonical('https://codecasts.com.br/lesson');

        SEO::opengraph()->addProperty('type', 'articles');

        SEO::twitter()->setSite('@LuizVinicius73');



        $posts = Post::all();



        return view('myindex', compact('posts'));

    }



    /**

     * @return \Illuminate\View\View

     */

    public function show($id)

    {

        $post = Post::find($id);



        SEOMeta::setTitle($post->title);

        SEOMeta::setDescription($post->resume);

        SEOMeta::addMeta('article:published_time', $post->published_date->toW3CString(), 'property');

        SEOMeta::addMeta('article:section', $post->category, 'property');

        SEOMeta::addKeyword(['key1', 'key2', 'key3']);



        OpenGraph::setDescription($post->resume);

        OpenGraph::setTitle($post->title);

        OpenGraph::setUrl('http://current.url.com');

        OpenGraph::addProperty('type', 'article');

        OpenGraph::addProperty('locale', 'pt-br');

        OpenGraph::addProperty('locale:alternate', ['pt-pt', 'en-us']);



        OpenGraph::addImage($post->cover->url);

        OpenGraph::addImage($post->images->list('url'));

        OpenGraph::addImage(['url' => 'http://image.url.com/cover.jpg', 'size' => 300]);

        OpenGraph::addImage('http://image.url.com/cover.jpg', ['height' => 300, 'width' => 300]);



        // Namespace URI: http://ogp.me/ns/article#

        // article

        OpenGraph::setTitle('Article')

            ->setDescription('Some Article')

            ->setType('article')

            ->setArticle([

                'published_time' => 'datetime',

                'modified_time' => 'datetime',

                'expiration_time' => 'datetime',

                'author' => 'profile / array',

                'section' => 'string',

                'tag' => 'string / array'

            ]);



        // Namespace URI: http://ogp.me/ns/book#

        // book

        OpenGraph::setTitle('Book')

            ->setDescription('Some Book')

            ->setType('book')

            ->setBook([

                'author' => 'profile / array',

                'isbn' => 'string',

                'release_date' => 'datetime',

                'tag' => 'string / array'

            ]);



        // Namespace URI: http://ogp.me/ns/profile#

        // profile

        OpenGraph::setTitle('Profile')

             ->setDescription('Some Person')

            ->setType('profile')

            ->setProfile([

                'first_name' => 'string',

                'last_name' => 'string',

                'username' => 'string',

                'gender' => 'enum(male, female)'

            ]);



        // Namespace URI: http://ogp.me/ns/music#

        // music.song

        OpenGraph::setType('music.song')

            ->setMusicSong([

                'duration' => 'integer',

                'album' => 'array',

                'album:disc' => 'integer',

                'album:track' => 'integer',

                'musician' => 'array'

            ]);



        // music.album

        OpenGraph::setType('music.album')

            ->setMusicAlbum([

                'song' => 'music.song',

                'song:disc' => 'integer',

                'song:track' => 'integer',

                'musician' => 'profile',

                'release_date' => 'datetime'

            ]);



         //music.playlist

        OpenGraph::setType('music.playlist')

            ->setMusicPlaylist([

                'song' => 'music.song',

                'song:disc' => 'integer',

                'song:track' => 'integer',

                'creator' => 'profile'

            ]);



        // music.radio_station

        OpenGraph::setType('music.radio_station')

            ->setMusicRadioStation([

                'creator' => 'profile'

            ]);



        // Namespace URI: http://ogp.me/ns/video#

        // video.movie

        OpenGraph::setType('video.movie')

            ->setVideoMovie([

                'actor' => 'profile / array',

                'actor:role' => 'string',

                'director' => 'profile /array',

                'writer' => 'profile / array',

                'duration' => 'integer',

                'release_date' => 'datetime',

SEOTrait 

use Artesaos\SEOTools\Traits\SEOTools as SEOToolsTrait;


class CommomController extends Controller

{

    use SEOToolsTrait;



    /**

     * @return \Illuminate\View\View

     */

    public function index()

    {

        $this->seo()->setTitle('Home');

        $this->seo()->setDescription('This is my page description');

        $this->seo()->opengraph()->setUrl('http://current.url.com');

        $this->seo()->opengraph()->addProperty('type', 'articles');

        $this->seo()->twitter()->setSite('@LuizVinicius73');



        $posts = Post::all();



        return view('myindex', compact('posts'));

    }

}

در قسمت View 

نکته : برای کاهش سایر فایل و استفاده از نسخه minified میتونید پارامتر رو true بدهید :


<html>

<head>

{!! SEOMeta::generate() !!}

{!! OpenGraph::generate() !!}

{!! Twitter::generate() !!}

    <!-- OR -->

{!! SEO::generate() !!}


  <!-- MINIFIED -->

{!! SEO::generate(true) !!}


    <!-- LUMEN -->

{!! app('seotools')->generate() !!}

</head>

<body>

</body>

</html>

مشاهده مستندات کامل

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
4 از 3 رای

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید