Git Product home page Git Product logo

laravel-seo-tools's Introduction

Laravel Seo Tools

Laravel is becoming more and more popular and lots of web application are developing. In most of the web application there need some SEO work for their marketing purpose. There are some tools but those are not suitable for non programmer. Everything can be control via dashboard like Wordpress Yoast

See Demo

Installation

  "require": { 
     "digitaldream/laravel-seo-tools": "1.*"
}

Settings

  1. Add this line to config/app.php providers array . Not needed if you are using laravel 5.5 or greater
    SEO\SeoServiceProvider::class
  1. Then Run
    php artisan vendor:publish --provider="SEO\SeoServiceProvider"

Please have a look to App\Policies\Seo folder. Adjust permission for seo settings routes.

  1. Run migration
  php artisan migrate
  1. Run Seed
   php artisan db:seed --class="SEO\Database\Seeders\SeoTablesSeeder"
  1. Show form into your post/content page by adding this custom blade tag
     @seoForm($model)

This will be usually inside your form.

  1. Save tags into your controller
    
     if ($model->save()) {
           \SEO\Seo::save($model, route('blog::posts.show', $model->slug), [
               'title' => $model->title,
               'images' => [
                   $model->getImageUrl()
               ]
           ]);
          }

Do not make your controller dirty. Do not worry follow this instruction

  1. Finally display tags into your layouts header by this custom blade tag
   @seoTags()

Now visit /seo/dashboard from your browser to see seo dashboard and settings

Easy to use

Target user of this tool is non programmer. So they can able to add/modify on page SEO tags and do some necessary action that can give full control how this page will be appear by Search Engine.

Social media sharing

Everybody loves to share their page or content in social media. By using this tools you can able to manage how your page looks like in Facebook, Twitter and others and what image will be shown, which title and description are shown and many more. social_media

Page management

Your application have many pages but not all of them for search engine. You can control this from your dashboard. Also it can be set via programatically for example when a post is published it will automatically added to xml sitemap and will add necessary seo tags so search engine can understand its purpose and content. page_management

Submit company or personal information to Google

For business or ecommerce we often see support email, telephone and some other extra information like their Facebook, Twitter account in google search. This can be done schema.org tags. To make this super simple there have few input field that you can easily fill and save. Behind the scene everything will be done for you. company_personal_info

Webmaster tools

Sometimes web master need ftp or file access because they need to add some verification code into your site. Using this tools they can simply add this from dashboard. Like Google Verification code webmaster_tools

Sitemap generator

Sitemap are the key to search engine. Search engine will crawl your website according to this. It will be created automatically for you. Also you can set pririty and change frequency of your page. site_map

Robot.txt and .htaccess file customization

Web master sometimes need to have access to robot.txt and .htaccess. Now it can be done via dashboard. Although it requires expertise knowledge to modify this files. robot_htaccess

Meta tag management

Only way to inform search engine about your site or page is via Meta tags. There are many tags. Most common are already there. But you can able to create, edit or delete any of them. To add a meta tag you do not have to call programmer. You can do it from dashbarod.

meta_tags

This is simple. Isn't it?

laravel-seo-tools's People

Contributors

digitaldreams avatar luigel avatar phanthai12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

laravel-seo-tools's Issues

url is not working in dashboard

HI I have installed the bundle but in the dashboard, some links are not working laravel version is 5.6.
seo/pages
seo/meta-tags

Class 'SEO\SeoServiceProvider' not found

hello

i have composer.json as follow

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.3|^8.0",
        "ext-curl": "*",
        "ext-json": "*",
        "ext-zip": "*",
        "ext-gd": "*",
        "botble/api": "*@dev",
        "botble/menu": "*@dev",
        "botble/page": "*@dev",
        "botble/platform": "*@dev",
        "botble/plugin-management": "*@dev",
        "botble/shortcode": "*@dev",
        "botble/theme": "*@dev",
        "botble/revision": "*@dev",
        "botble/sitemap": "*@dev",
        "botble/widget": "*@dev",
        "botble/slug": "*@dev",
        "botble/seo-helper": "*@dev",
        "doctrine/dbal": "^3.1",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.3",
        "laravel/framework": "^8.62",
        "league/flysystem-aws-s3-v3": "^1.0",
		"digitaldream/laravel-seo-tools": "1.*",
        "wikimedia/composer-merge-plugin": "^2.0"
    },
    "require-dev": {
        "facade/ignition": "^2.14",
        "fakerphp/faker": "^1.16",
        "laravel/sail": "^1.10",
        "mockery/mockery": "^1.4",
        "nunomaduro/collision": "^5.10",
        "phpunit/phpunit": "^9.5",
        "laravel/tinker": "^2.6",
        "barryvdh/laravel-debugbar": "^3.6",
        "barryvdh/laravel-ide-helper": "^2.10"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        },
        "merge-plugin": {
            "include": [
                "./platform/plugins/*/composer.json",
                "./platform/themes/*/composer.json"
            ],
            "recurse": false,
            "replace": false,
            "ignore-duplicates": false,
            "merge-dev": false,
            "merge-extra": false,
            "merge-extra-deep": false,
            "merge-scripts": false
        },
        "google/apiclient-services": [
            "Analytics"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "Google\\Task\\Composer::cleanup",
            "@php artisan cms:publish:assets"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true,
        "allow-plugins": {
            "composer/package-versions-deprecated": true,
            "wikimedia/composer-merge-plugin": true
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "repositories": [
        {
            "type": "path",
            "url": "./platform/core"
        },
        {
            "type": "path",
            "url": "./platform/packages/*"
        }
    ]
}`

and config/app.php as follow

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Application Name
    |--------------------------------------------------------------------------
    |
    | This value is the name of your application. This value is used when the
    | framework needs to place the application's name in a notification or
    | any other location as required by the application or its packages.
    |
    */

    'name' => env('APP_NAME', 'Laravel'),

    /*
    |--------------------------------------------------------------------------
    | Application Environment
    |--------------------------------------------------------------------------
    |
    | This value determines the "environment" your application is currently
    | running in. This may determine how you prefer to configure various
    | services the application utilizes. Set this in your ".env" file.
    |
    */

    'env' => env('APP_ENV', 'production'),

    /*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    'debug' => (bool) env('APP_DEBUG', false),

    /*
    |--------------------------------------------------------------------------
    | Application URL
    |--------------------------------------------------------------------------
    |
    | This URL is used by the console to properly generate URLs when using
    | the Artisan command line tool. You should set this to the root of
    | your application so that it is used when running Artisan tasks.
    |
    */

    'url' => env('APP_URL', 'http://localhost'),

    'asset_url' => env('ASSET_URL', null),

    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => 'UTC',

    /*
    |--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Application Fallback Locale
    |--------------------------------------------------------------------------
    |
    | The fallback locale determines the locale to use when the current one
    | is not available. You may change the value to correspond to any of
    | the language folders that are provided through your application.
    |
    */

    'fallback_locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Faker Locale
    |--------------------------------------------------------------------------
    |
    | This locale will be used by the Faker PHP library when generating fake
    | data for your database seeds. For example, this will be used to get
    | localized telephone numbers, street address information and more.
    |
    */

    'faker_locale' => 'en_US',

    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | This key is used by the Illuminate encrypter service and should be set
    | to a random, 32 character string, otherwise these encrypted strings
    | will not be safe. Please do this before deploying an application!
    |
    */

    'key' => env('APP_KEY'),

    'cipher' => 'AES-256-CBC',

    /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    | The service providers listed here will be automatically loaded on the
    | request to your application. Feel free to add your own services to
    | this array to grant expanded functionality to your applications.
    |
    */

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
	SEO\SeoServiceProvider::class,

        /*
         * Package Service Providers...
         */

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

    /*
    |--------------------------------------------------------------------------
    | Class Aliases
    |--------------------------------------------------------------------------
    |
    | This array of class aliases will be registered when this application
    | is started. However, feel free to register as many as you wish as
    | the aliases are "lazy" loaded so they don't hinder performance.
    |
    */

    'aliases' => [

        'App' => Illuminate\Support\Facades\App::class,
        'Arr' => Illuminate\Support\Arr::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
        'Blade' => Illuminate\Support\Facades\Blade::class,
        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
        'Bus' => Illuminate\Support\Facades\Bus::class,
        'Cache' => Illuminate\Support\Facades\Cache::class,
        'Config' => Illuminate\Support\Facades\Config::class,
        'Cookie' => Illuminate\Support\Facades\Cookie::class,
        'Crypt' => Illuminate\Support\Facades\Crypt::class,
        'Date' => Illuminate\Support\Facades\Date::class,
        'DB' => Illuminate\Support\Facades\DB::class,
        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
        'Event' => Illuminate\Support\Facades\Event::class,
        'File' => Illuminate\Support\Facades\File::class,
        'Gate' => Illuminate\Support\Facades\Gate::class,
        'Hash' => Illuminate\Support\Facades\Hash::class,
        'Http' => Illuminate\Support\Facades\Http::class,
        'Js' => Illuminate\Support\Js::class,
        'Lang' => Illuminate\Support\Facades\Lang::class,
        'Log' => Illuminate\Support\Facades\Log::class,
        'Mail' => Illuminate\Support\Facades\Mail::class,
        'Notification' => Illuminate\Support\Facades\Notification::class,
        'Password' => Illuminate\Support\Facades\Password::class,
        'Queue' => Illuminate\Support\Facades\Queue::class,
        'RateLimiter' => Illuminate\Support\Facades\RateLimiter::class,
        'Redirect' => Illuminate\Support\Facades\Redirect::class,
        // 'Redis' => Illuminate\Support\Facades\Redis::class,
        'Request' => Illuminate\Support\Facades\Request::class,
        'Response' => Illuminate\Support\Facades\Response::class,
        'Route' => Illuminate\Support\Facades\Route::class,
        'Schema' => Illuminate\Support\Facades\Schema::class,
        'Session' => Illuminate\Support\Facades\Session::class,
        'Storage' => Illuminate\Support\Facades\Storage::class,
        'Str' => Illuminate\Support\Str::class,
        'URL' => Illuminate\Support\Facades\URL::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,
		

    ],

];

When I run this command php artisan vendor:publish --provider="SEO\SeoServiceProvider"

I have notification

In ProviderRepository.php line 208:

  Class 'SEO\SeoServiceProvider' not found

What is the problem? anyone can help me?

Thank you

Undefined variable: model (View: \resources\v

Undefined variable: model (View: \resources\views\post\createOrEdit\multiSteps\create.blade.php)
In the: "\resources\views/post/createOrEdit/multiSteps/create.blade.php" file at line: 427

I was get the error after add @seoform($model) in post blade
In my project I don't have form folder only single blade

403 un authorise issue

I m getting 403 error on the admin dashboard for couple of links please guide me in this.

isSuperAdmin

Hi can you please help me... i get 403 Unauthorised when i try to modify
i ran php artisan make:auth and setup a default user.
how do i apply property isSuperAdmin to my user.
please can you also update your readme to reflect this

Blade Compiler

Laravel 5.8.8
SEO Tools 1.01

When I require the package and install the following errors are displayed in terminal:

`In Container.php line 794:

Class blade.compiler does not exist

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
`

I uninstalled your package and the error went away.

Thanks

403 not autorise issue

Please help me to solve this issue with admin panel of this package
and please post video or web guide for how to use it
Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.