1. Home
  2. Knowledge Base
  3. How to Create a Custom Sitemap and Include it in Rank Math

How to Create a Custom Sitemap and Include it in Rank Math

A Sitemap is an essential tool for any website if it wants to get indexed by search engines. The search engines make use of these Sitemaps to get more information about the website. A sitemap informs Google which pages and files on your site you think are relevant, as well as useful information about these files, such as when the page was last modified, how often it is changed, and any alternate language versions of the page. Thus, it is nothing but a blueprint of the website.

In this knowledgebase article, we’re going to walk you through how to create a Custom Sitemap and include it in Rank Math.

How to Create a Custom Sitemap and Include it in Rank Math

1 Create a New File in the Child Theme

At first, create a new file in your child theme folder (assuming you’ve added the previous filter codes in the functions.php file of your child theme), name it custom-sitemap.php, and add the following code in it:

<?php

namespace RankMath\Sitemap\Providers;

defined( 'ABSPATH' ) || exit;

class Custom implements Provider {

	public function handles_type( $type ) {
		return true;
	}

	public function get_index_links( $max_entries ) {
		return [];
	}

	public function get_sitemap_links( $type, $max_entries, $current_page ) {
		$links     = [ 
			[ 'loc' => 'http://www.example.com/' ],
			[ 'loc' => 'http://www.example.com/2',],
		];

		return $links;
	}

}

Replace the example.com URLs and add your custom links in the get_sitemap_links() function.

3 Add the Code Snippet in Child’s functions.php

Add the below filter code in the functions.php of your child theme:

include_once 'sitemap-custom.php';
add_filter('rank_math/sitemap/providers', function( $external_providers ) {
	$external_providers['custom'] = new \RankMath\Sitemap\Providers\Custom();
	return $external_providers;
});

Once done, the new sitemap will show up with your custom links in it. Sitemaps also have enormous benefits and play a major role in boosting your rankings.

How to Include Images in the Custom Sitemap

To add images in the custom sitemap, please pass array of image object in get_sitemap_links function:


<?php

namespace RankMath\Sitemap\Providers;

defined( 'ABSPATH' ) || exit;

class Custom implements Provider {

	public function handles_type( $type ) {
		return true;
	}

	public function get_index_links( $max_entries ) {
		return [];
	}

	public function get_sitemap_links( $type, $max_entries, $current_page ) {
		$links     = [ 
			[
            'loc' => 'http://www.example.com/',
            'images => [
                [
                    'src'   => 'http://www.example.com/image1.png',
                    'title' => 'Image Title',
                ],
                [
                    'src'   => 'http://www.example.com/image2.png',
                    'title' => 'Image 2 Title',
                ],
            ],
        ],
			[ 'loc' => 'http://www.example.com/2',],
		];

		return $links;
	}

}

To clear the custom sitemap cache, you’ll have to execute the \RankMath\Sitemap\Cache::invalidate_storage( ‘amp’ ); on save_post hook. If you’re not sure how to do it, we would recommend you disable the sitemap cache completely by adding the following one line to your theme’s functions.php file:

add_filter( 'rank_math/sitemap/enable_caching', '__return_false');

If you still have any questions about creating a custom Sitemap and including it in Rank Math, please feel free to contact our support team – we’re always more than happy to help.

Still not using Rank Math?

Setup takes less than 5 minutes including the import from old SEO Plugin!

Buy PRO Version

Was this article helpful?

Still need help?

?

Submit Your Question

Please give us the details, our support team will get back to you.

Open Ticket