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
How To Import Large CSV File In Database Using Laravel 9
How To Import Large CSV File I...

In this article, we will see how to import a large CSV file into the database using laravel 9. Here, we will learn&...

Read More

Sep-15-2022

How to Image Upload with Preview in Angular 17
How to Image Upload with Previ...

In this article, we'll see how to image upload with a preview in angular 17. Here, we'll learn about the an...

Read More

Apr-01-2024

How to Integrate Cashfree Payment Gateway in Laravel 10
How to Integrate Cashfree Paym...

Hello developers! Today, we're about to embark on a journey to elevate our Laravel applications by integrating...

Read More

Feb-12-2024

How To Create Bar Chart In Laravel 9 Using Highcharts
How To Create Bar Chart In Lar...

In this article, we will see how to create a bar chart in laravel 9 using highcharts. A bar chart or bar graph is a...

Read More

Oct-05-2022