{"flag":true,"single":true,"pageTitle":"laravel sitemap generator script","post":{"id":102,"user_id":"1","slug":"laravel-sitemap-generator-script-ejxq","title":"laravel sitemap generator script","body":"<p>We'll use the spatie\/laravel-sitemap package to make this task easier. Here's a step-by-step guide:<\/p>\r\n<p><strong>1. Install the package using terminal or cmd<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>composer require spatie\/laravel-sitemap<\/code><\/pre>\r\n<p><strong>2.Create a Sitemap Controller:<\/strong><br>Run the following command to generate a new SitemapController:<\/p>\r\n<pre class=\"language-markup\"><code>php artisan make:controller SitemapController<\/code><\/pre>\r\n<p><strong>3.Modify the Sitemap Controller:<\/strong><br>Open the newly created SitemapController.php file, which is located in the app\/Http\/Controllers directory. Add the necessary imports and modify the controller as follows:<\/p>\r\n<pre class=\"language-markup\"><code>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers;\r\nuse Illuminate\\Http\\Request;\r\nuse Spatie\\Sitemap\\Sitemap;\r\nuse Spatie\\Sitemap\\Tags\\Url;\r\nuse Spatie\\Sitemap\\SitemapIndex;\r\nuse Spatie\\Sitemap\\Tags\\Sitemap as SitemapTag;\r\n\r\nclass SitemapController extends Controller\r\n{\r\n    public $perPage = 5000;\r\n    public function index(){ \/\/sitemap.xml\r\n        $sitemapIndex = SitemapIndex::create();\r\n        $sitemapIndex-&gt;add(SitemapTag::create(url('sitemap\/business.xml'))); \/\/static\r\n        $sitemapIndex-&gt;add(SitemapTag::create(url('sitemap\/vehicle.xml'))); \/\/static\r\n        \r\n        return $sitemapIndex-&gt;toResponse(request());\r\n    }\r\n\r\n    \/******* Business Sitemap *******\/\r\n    public function business()\r\n    {   \r\n        return $this-&gt;init_sitemap_container('Businesses',\"sitemap\/business_\");\r\n    }\r\n    public function businessSitemap($page) \/\/for singlepage\r\n    {\r\n        return $this-&gt;init_sitemap_single($page, \"Businesses\", \"details\/\",\"service_store_slug\");\r\n    }\r\n    \/******* Vehicle Sitemap *******\/\r\n    public function vehicle()\r\n    {   \r\n        return $this-&gt;init_sitemap_container('Vehicles_data',\"sitemap\/vehicle_\");\r\n    }\r\n    public function vehicleSitemap($page) \/\/for singlepage\r\n    {\r\n        return $this-&gt;init_sitemap_single($page, \"Vehicles_data\", \"vehicle\/details\/\",\"id\");\r\n    }\r\n\r\n\r\n    public function init_sitemap_container($model=\"Businesses\",$urlScheme=\"sitemap\/business_\"){\r\n        $modelClass = \"\\App\\Models\\\\\" . $model;\r\n        $modelInstance = new $modelClass;\r\n        $count = $modelInstance::count();\r\n        $sitemapFiles = ceil($count \/ $this-&gt;perPage);\r\n        $sitemapIndex = SitemapIndex::create();\r\n    \r\n        for ($i = 1; $i &lt;= $sitemapFiles; $i++) {\r\n            $sitemapIndex-&gt;add(SitemapTag::create(url($urlScheme.\"{$i}.xml\")));\r\n        }\r\n    \r\n        return $sitemapIndex-&gt;toResponse(request());\r\n    }\r\n\r\n    public function init_sitemap_single($page, $model=\"Businesses\", $urlScheme=\"sitemap\/business_details\",$column_name='id') \/\/for singlepage\r\n    {\r\n        $modelClass = \"\\App\\Models\\\\\" . $model;\r\n        $modelInstance = new $modelClass;\r\n        $limit = $this-&gt;perPage;\r\n        $offset = ($page - 1) * $limit;\r\n\r\n        $data = $modelInstance::offset($offset)-&gt;limit($limit)-&gt;get();\r\n        $sitemap = Sitemap::create();\r\n\r\n        foreach ($data as $d) {\r\n            $url = url($urlScheme.\"\".$d-&gt;$column_name);\r\n            $sitemap-&gt;add(Url::create($url));\r\n        }\r\n        return $sitemap-&gt;toResponse(request());\r\n    }\r\n}<\/code><\/pre>\r\n<p>Routing<\/p>\r\n<pre class=\"language-markup\"><code>Route::controller(\\App\\Http\\Controllers\\SitemapController::class)-&gt;group( function () {\r\n    Route::get('\/sitemap.xml', 'index');\r\n\r\n    Route::get('\/sitemap\/business.xml', 'business');\r\n    Route::get('\/sitemap\/business_{page}.xml', 'businessSitemap');\r\n\r\n    Route::get('\/sitemap\/vehicle.xml', 'vehicle');\r\n    Route::get('\/sitemap\/vehicle_{page}.xml', 'vehicleSitemap');\r\n\r\n});<\/code><\/pre>","category_id":"2","is_private":"0","created_at":"2023-04-04T02:54:41.000000Z","updated_at":"2023-04-04T02:54:41.000000Z","category":{"id":2,"user_id":"1","name":"Laravel Core","slug":"laravel-nhyt","parent_id":"1","created_at":"2023-03-14T03:58:27.000000Z","updated_at":"2023-03-20T11:30:50.000000Z"},"user":{"id":1,"name":"R GONDAL","email":"rizikmw@gmail.com","email_verified_at":null,"two_factor_confirmed_at":null,"current_team_id":"1","profile_photo_path":null,"created_at":"2023-03-12T10:49:33.000000Z","updated_at":"2025-01-10T12:59:00.000000Z","profile_photo_url":"https:\/\/ui-avatars.com\/api\/?name=R+G&color=7F9CF5&background=EBF4FF"}},"pageDesc":"We'll use the spatie\/laravel-sitemap package to make this task easier. Here's a step-by-step guide: 1. Install the package using terminal or - laravel sitemap generator script (Updated: April 4, 2023) - Read more about laravel sitemap generator script at my programming site [SITE]","categories":[]}