Generate Dynamic Sitemap in Laravel

Websolutionstuff | Jul-05-2021 | Categories : Laravel

Here we will see how to generate dynamic sitemap in laravel. As we know sitemap is very important part of seo, sitemap is list of pages of a website within a single domain.

Here we will create dynamic XML sitemap in laravel.sitemap is a blueprint of your website that can help to search engines find, crawl and index all of your website's content So let's see how to create dynamic xml sitemap in laravel and how to add sitemap in laravel, 

Here, we are using sitemap package for generate dynamic sitemap in laravel.run below command in your terminal to install package in laravel.

composer require watson/sitemap

 

To publish the configuration file for the sitemap package, run below Artisan command.

php artisan config:publish watson/sitemap

php artisan vendor:publish --provider="Watson\Sitemap\SitemapServiceProvider"

 

Here, you need to add tags for each item in your sitemap using Sitemap::addTag($location, $lastModified, $changeFrequency, $priority). And we can return the sitemap with Sitemap::renderSitemap(). $lastModified variable will be parsed and convered to the right format for the sitemap.

If you want to get raw XML then simply call Sitemap::xml()

Example :

namespace App\Http\Controllers;

use Post;
use Sitemap;

class SitemapsController extends Controller
{
    public function posts()
    {
        $posts = Post::all();

        foreach ($posts as $post) {
            Sitemap::addTag(route('posts.show', $post), $post->updated_at, 'daily', '0.6');
        }

        return Sitemap::render();
    }
}

 

Image Sitemap :

Parameters :  $tag->addImage($location, $caption, $geoLocation, $title, $licenceUrl);

 

namespace App\Http\Controllers;

use Page;
use Sitemap;

class SitemapsController extends Controller
{
    public function pages()
    {
        $pages = Page::all();

        foreach ($pages as $page) {
            $tag = Sitemap::addTag(route('pages.show', $page), $page->updated_at, 'daily', '0.8');

            foreach ($page->images as $image) {
                $tag->addImage($image->url, $image->caption);
            }
        }

        return Sitemap::render();
    }
}

 

Recommended Post
Featured Post
How To Install Tailwind CSS In Laravel 9
How To Install Tailwind CSS In...

In this article, we will see how to install tailwind CSS in laravel 9. Tailwind CSS works by scanning all of y...

Read More

Jun-13-2022

Laravel 10 Multiple Image Upload Example
Laravel 10 Multiple Image Uplo...

In this article, we will see laravel 10 multiple image examples. Here, we will learn about how to upload multiple i...

Read More

Mar-17-2023

How to Use Laravel Factory in Seeder
How to Use Laravel Factory in...

Laravel is a popular PHP framework known for its elegance and simplicity in building web applications. When it comes to...

Read More

Sep-13-2023

How to Format Number with 2 Decimal in PHP
How to Format Number with 2 De...

Hey there! If you've ever needed to work with numbers in PHP, you probably know how important it is to format them p...

Read More

Feb-26-2024