How To Create Dynamic XML Sitemap In Laravel 9

Websolutionstuff | Jun-08-2022 | Categories : Laravel

In this article, we will see how to create a dynamic XML sitemap in laravel 9. As we know sitemap is a very important part of SEO. The sitemap is a list of pages of a website within a single domain. The 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 a dynamic XML sitemap in laravel 9, laravel 9 sitemap dynamic generate, laravel 9 generate a sitemap XML file, how to create XML sitemap in laravel 9, laravel 9 sitemap dynamic generate, sitemap generator in laravel 9.

Step 1: Install Package

In this step, we will install watson/sitemap package using the below command.

composer require watson/sitemap

 

 

Step 2: Configure Package

To publish the configuration file for the sitemap package using the below 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 converted 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();
    }
}

 


You might also like :

Recommended Post
Featured Post
Laravel 9 whereDate And whereMonth Query Example
Laravel 9 whereDate And whereM...

In this article, we will see laravel 9 wheredate() and wheremonth() query examples. The whereDate me...

Read More

Oct-19-2022

How To Get Current Date And Time In React JS
How To Get Current Date And Ti...

In this article, we will see how to get the current date and time in react js. You can get the current date and tim...

Read More

Sep-02-2022

Laravel 11 Livewire Dependent Dropdown
Laravel 11 Livewire Dependent...

Hello, laravel web developers! In this article, we'll see how to create a dependent dropdown in laravel 11 Livewire....

Read More

Jun-03-2024

How To Send Email With Attachment Using Node.js
How To Send Email With Attachm...

Hello Guys, In this tutorial we will see how to send email with attachment using node.js app. In this tutorial w...

Read More

Aug-09-2021