Laravel Seo Manager
Last updated
Last updated
lionix/seo-manager
package will provide you an interface from where you can manage all your pages metadata separately and get dynamically changing content. Let's see how.
After updating to version > v1.2.* you have to run:
and
to publish the latest configs and new migration files.
In version v1.2.* you will have the availability to localize your metadata and set translates to your data.
For that, you just should add your available locales with the top right button "Add Locales" and chose the locale for which you want to add translations.
That's it, Package will automatically detect your locale from website and will set needed translations, you don't need to do any other configs. Easy, isn't it?
You can install the package via composer:
Publishing package files
This command will create config/seo-manager.php
file and will copy package assets directory to public/vendor/lionix
.
Configurations
In config/seo-manager.php
file you can do the following configurations:
After finishing with all configurations run php artisan migrate
to create SEO manager table.
That's it, now your SEO manager will be available from /seo-manager URL (or, if you changed route config, by that config URL)
After visiting your dashboard URL you have to import your routes to start to manage them.
Route importing will store all your GET routes into the database ( except the ones which specified in "except_routes" configs).
Mapping
To get dynamically changing metadata you should map your route params to the correct Models.
Param: Route param
Model: Eloquent Model which you are using to get the record by route param
Find By: Database table column name which you are using to get the record by route param
Use Columns: Database table columns which we should use for further mapping
Note: If you have appended attributes inside your model via
protected $appends
and you want to use them in mapping you have to useLionix\SeoManager\Traits\Appends;
trait inside your model.
Mapping available only if your route has params
Next steps you can do, is to set Keywords, Description, Title, URL, Author, Title Dynamic, OpenGraph Data.
About "Title Dynamic":
Here you can drag & drop your mapped params, your title and write custom text to generate the dynamic title for your page. Every time your "title" will be changed or your mapped params value changed, the dynamic title will be changed automatically.
About "Open Graph":
Here you can write your open graph data or map your fields to mapping based on params.
SeoManager
FacadeThis will return an array with all your SEO Manager data
Example:
SeoManager::metaData();
method can receive property variable to get the value of some property
Example:
SeoManager::metaData('keywords');
will return "First Keyword, Second, Third"
To get only OpenGraph data array:
Example
Aliases
SeoManager::metaKeywords()
SeoManager::metaTitle()
SeoManager::metaDescription()
SeoManager::metaUrl()
SeoManager::metaAuthor()
SeoManager::metaTitleDynamic()
SeoManager::metaOpenGraph()
- Can receive property variable to get the value of some OG property
Example
SeoManager::metaOpenGraph('og:image:url')
Will return "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"
helper
functionsmetaData()
metaKeywords()
metaTitle()
metaDescription()
metaUrl()
metaAuthor()
metaTitleDynamic()
metaOpenGraph()
You can use this blade directives in your view files to get metadata.
@meta
Output Example
@meta
can receive property param
@meta('description')
Output Example
Note: You can't add open graph properties to
@meta()
like@meta('og:url')
But you can get only OpenGraph meta data by@meta('og_data')
. If you want to get concrete OG param meta tag you can use@openGraph
(similar to@meta('og_data')
) and pass param there like@openGraph('og:url)
Note #2: If you want to do modifications in your og data and display it manually, you should do that before
@meta
Example:
Aliases
@keywords
@url
@author
@description
@title
@openGraph
@titleDynamic
- will return dynamically generated title which you can use inside your tags.
Install the module in a existing Laravel project and check if the module is working.
Delete the folder vendor/lionix/seo-manager.
Copy the fork of the module in the vendor/lionix/seo-manager folder (don't know how to make a fork? https://kbroman.org/github_tutorial/pages/fork.html)
Add the following line to your webpack.mix.js mix.js('vendor/lionix/seo-manager/src/vue/seo-manager.app.js', 'public/vendor/lionix/js');
run the NPM Watch command npm run watch
If everything works fine, you can start developing on the module
PLEASE REMIND TO COPY YOUR public/vendor/lionix/js/seo-manager.app.js
TO vendor/lionix/seo-manager/src/assets/seo-manager.app.js