How to Create a Dynamic Sitemap in CodeIgniter

A sitemap is a file that contains our website page URL. Search Engines (Google, Yahoo, Bing) read this file to crawl your website. In a sitemap file, we can add additional information of our pages such as added date, modified date to make search engines crawler understand more efficiently when our pages was added and when it was updated.

In this blog we will learn how to create a dynamic sitemap in CodeIgniter, let’s see the following steps:

Step1: Create a Database name codeigniter_sitemap

CREATE DATABASE codeigniter_sitemap; 


Step2: 
Create a table page in the database:


CREATE TABLE pages (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name TEXT  NULL,
    url TEXT NULL,
   description LONGTEXT NULL
);



Step3:
 Setup basic configuration in your project like base URL in config.php file, autoload necessary libraries, helper in autoload.php file.


$config['base_url'] = ' http://localhost/codeigniter-dynamic-sitemap;
$autoload['helper'] = array('url');
$autoload['model'] = array('crud');
$autoload['libraries'] = array('database');
 


Step4:
Setup Database Connection in application>config>database.php file.


$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'codeigniter_sitemap',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);


Step5:
Create Route

Go to the following  application>config>routes.php open routes.php and write down the following code:


$route['sitemap\.xml'] = "welcome/sitemap";


Step6:
Create a model file Crud.php in the models folder:


<?php
class Crud extends CI_Model{
   
 
            function get_data($table)
            {  
               $data= $this->db->get($table);
               return $data->result();               
            }
 
}
 


Step7:  
Create a function sitemap() in you default controller:

application>controllers>Welcome.php open the following file and write down the following code:


 
public  function sitemap() 
    {
        $data['ALLPAGES']=$this->crud->get_data("pages");
        header("Content-Type: text/xml;charset=iso-8859-1");
        $this->load->view("sitemap",$data);
    }
 


Step8:
Create a view sitemap.php


<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    <url>
        <loc><?= base_url();?></loc>
        <priority>1.0</priority>
    </url>
 
    <?php foreach($ALLPAGES as $page) { ?>
 
    <url>
        <loc><?= base_url($page->url) ?></loc>
        <priority>0.5</priority>
    </url>
 
    <?php } ?>
 
 
</urlset>
 


See the output open the following url :


http://localhost/codeigniter-dynamic-sitemap/sitemap.xml

Download Source Code

Categories: web development digital marketing codeigniter

Trending Courses

CodeIgniter

Regular : 45 Days

Fastrack : 20 Days

Crash : 10 Days

Advance Digital Marketing

Regular : 6 Months

Fastrack : 3 Months

Crash : 2 Months

React JS

Regular : 45 Days

Fastrack : 25 Days

Crash : 15 Days

Laravel

Regular : 45 Days

Fastrack : 20 Days

Crash : 10 Days

Front End Developer

Regular : 6 Months

Fastrack : 4 Months

Crash : 2 Months

Related Blogs

Request For Demo