XML Sitemap & Google News for WordPress

XML and Google News Sitemaps to feed the hungry spiders. Multisite, WP Super Cache, Polylang and WPML compatible.

Description

This plugin dynamically creates dynamic feeds that comply with the XML Sitemap and the Google News Sitemap protocol. Multisite, Polylang and WPML compatible and there are no static files created.

There are options to control which sitemaps are enabled, which Post Types and archive pages (like taxonomy terms and author pages) are included, how Priority and Lastmod are calculated, who to ping and a possibility to set additional robots.txt rules from within the WordPress admin.

The main advantage of this plugin over other XML Sitemap plugins is simplicity. No need to change file or folder permissions, move files or spend time tweaking difficult plugin options.

You, or site owners on your Multisite network, will not be bothered with overly complicated settings like most other XML Sitemap plugins. The default settings will suffice in most cases.

An XML Sitemap Index becomes instantly available on yourblog.url/sitemap.xml (or yourblog.url/?feed=sitemap if you’re not using a ‘fancy’ permalink structure) containing references to posts and pages by default, ready for indexing by search engines like Google, Bing, Yahoo, AOL and Ask. When the Google News Sitemap is activated, it will become available on yourblog.url/sitemap-news.xml (or yourblog.url/?feed=sitemap-news), ready for indexing by Google News. Both are automatically referenced in the dynamically created robots.txt on yourblog.url/robots.txt to tell search engines where to find your XML Sitemaps. Google and Bing will be pinged on each new publication.

Please read the FAQ’s for info on how to get your articles listed on Google News.

Compatible with caching plugins like WP Super Cache, W3 Total Cache and Quick Cache that cache feeds, allowing a faster serving to the impatient (when hungry) spider.

NOTES:

  1. If you do not use fancy URL’s or you have WordPress installed in a subdirectory, a dynamic robots.txt will NOT be generated. You’ll have to create your own and upload it to your site root! See FAQ’s.
  2. On large sites, it is advised to use a good caching plugin like WP Super Cache, Quick Cache, W3 Total Cache or another to improve your site and sitemap performance.

Features

  • Compatible with multi-lingual sites using Polylang or WPML to allow all languages to be indexed equally.
  • Option to add new robots.txt rules. These can be used to further control (read: limit) the indexation of various parts of your site and subsequent spread of pagerank across your sites pages.
  • Includes XLS stylesheets for human readable sitemaps.
  • Sitemap templates and stylesheets can be overridden by theme template files.

XML Sitemap

  • Sitemap Index includes posts, pages and authors by default.
  • Optionally include sitemaps for custom post types, categories and tags.
  • Sitemap with custom URLs optional.
  • Custom/static sitemaps can be added to the index.
  • Works out-of-the-box, even on Multisite installations.
  • Include featured images or attached images with title.
  • Pings Google, Bing & Yahoo on new post publication.
  • Options to define which post types and taxonomies get included in the sitemap.
  • Updates Lastmod on post modification or on comments.
  • Set Priority per post type, per taxonomy and per individual post.
  • Exclude individual posts and pages.

Google News Sitemap

  • Required news sitemap tags: Publication name, language, title and publication date.
  • Set a News Publication Name or uses site name.
  • Supports custom post types.
  • Limit inclusion to certain post categories.
  • Pings Google on new publications, once per 5 minutes.

Pro Features

Google News Advanced

  • Multiple post types – Include more than one post type in the same News Sitemap.
  • Keywords – Add the keywords tag to your News Sitemap. Keywords can be created from Tags, Categories or a dedicated Keywords taxonomy.
  • Stock tickers – Add stock tickers tag to your News Sitemap. A dedicated Stock Tickers taxonomy will be available to manage them.
  • Ping log – Keep a log of the latest pings to Google with exact date and response status.

Privacy / GDPR

This plugin does not collect any user or visitor data nor set browser cookies. Using this plugin should not impact your site privacy policy in any way.

Data that is published

An XML Sitemap index, referencing other sitemaps containing your web site’s public post URLs of selected post types that are already public, along with their last modification date and associated image URLs, and any selected public archive URLs.

A Google News Sitemap containing your web site’s public and recent (last 48 hours) URLs of selected news post type, along with their publication time stamp and associated image URL.
An author sitemap can be included, which will contain links to author archive pages. These urls contain author/user slugs, and the author archives can contain author bio information. If you wish to keep this out of public domain, then deactivate the author sitemap and use an SEO plugin to add noindex headers.

Data that is transmitted

Data actively transmitted to search engines is your sitemap location and time of publication. This happens upon each post publication when at least one of the Ping options on Settings > Writing is enabled. In this case, the selected search engines are alerted of the location and updated state of your sitemap.

Contribute

If you’re happy with this plugin as it is, please consider writing a quick rating or helping other users out on the support forum.

If you wish to help build this plugin, you’re very welcome to translate it into your language or contribute code on Github.

Credits

XML Sitemap Feed was originally based on the discontinued plugin Standard XML Sitemap Generator by Patrick Chia. Since then, it has been completely rewritten and extended in many ways.

Installation

WordPress

I. If you have been using another XML Sitemap plugin before, check your site root and remove any created sitemap.xml, sitemap-news.xml and (if you’re not managing this one manually) robots.txt files that remained there.

II. Install plugin by:

Quick installation via Covered Web Services !

… OR …

Search for “xml sitemap feed” and install with that slick Plugins > Add New admin page.

… OR …

Follow these steps:

  1. Download archive.
  2. Upload the zip file via the Plugins > Add New > Upload page … OR … unpack and upload with your favourite FTP client to the /plugins/ folder.

III. Activate the plugin on the Plugins page.

Done! Check your sparkling new XML Sitemap by visiting yourblogurl.tld/sitemap.xml (adapted to your domain name of course) with a browser or any online XML Sitemap validator. You might also want to check if the sitemap is listed in your yourblogurl.tld/robots.txt file.

WordPress 3+ in Multi Site mode

Same as above but do a Network Activate to make a XML sitemap available for each site on your network.

Installed alongside WordPress MU Sitewide Tags Pages, XML Sitemap Feed will not create a sitemap.xml nor change robots.txt for any tag blogs. This is done deliberately because they would be full of links outside the tags blogs own domain and subsequently ignored (or worse: penalised) by Google.

Uninstallation

Upon uninstalling the plugin from the Admin > Plugins page, plugin options and meta data will be cleared from the database. See notes in the uninstall.php file.

On multisite, the uninstall.php can loop through all sites in the network to perform the uninstalltion process for each site. However, this does not scale for large networks so it only does a per-site uninstallation when define('XMLSF_MULTISITE_UNINSTALL', true); is explicitly set in wp-config.php.

Frequently Asked Questions

Where are the options?

On Settings > Reading you can enable the XML Sitemap Index and (if needed) the Google News Sitemap. There is also an Additional robots.txt rules field.

Once a sitemap is enabled, its options can be found on Settings > XML Sitemap or on Settings > Google News.

Ping settings can be found on Settings > Writing.

How do I get my latest articles listed on Google News?

Go to Suggest News Content for Google News and submit your website info as detailed as possible there. Give them the URL(s) of your fresh new Google News Sitemap in the text field ‘Other’ at the bottom.

You will also want to add the sitemap to your Google Search Console account to check its validity and performance. Create an account if you don’t have one yet.

Can I manipulate values for Priority and Changefreq?

You can find default settings for Priority on Settings > XML Sitemap. A fixed priority can be set on a post by post basis too.

Changefreq has been dropped since version 4.9 because it is no longer taken into account by Google.

Do I need to submit the sitemap to search engines?

No. In normal circumstances, your site will be indexed by the major search engines before you know it. The search engines will be looking for a robots.txt file and (with this plugin activated) find a pointer in it to the XML Sitemap on your blog. The search engines will return on a regular basis to see if your site has updates.

Besides that, Google and Bing are pinged upon each new publication by default.

NOTE: If you have a server without rewrite rules, use your blog without fancy URLs (meaning, you have WordPress Permalinks set to the old default value) or have it installed in a subdirectory, then read Do I need to change my robots.txt for more instructions.

Does this plugin ping search engines?

Yes, Google and Bing are pinged upon each new publication. Unless you disable this feature on Settings > Writing.

Do I need to change my robots.txt?

In normal circumstances, if you have no static robots.txt file in your site root, the new sitemap url will be automatically added to the dynamic robots.txt that is generated by WordPress.

But if you use a static robots.txt file in your website root, you will need to open it in a text editor. If there is already a line with Sitemap: http://yourblogurl.tld/sitemap.xml you can just leave it like it is. But if there is no sitemap referrence there, add it (adapted to your site url) to make search engines find your XML Sitemap.

Or if you have WP installed in a subdirectory, on a server without rewrite_rules or if you do not use fancy URLs in your Permalink structure settings. In these cases, WordPress will need a little help in getting ready for XML Sitemap indexing. Read on in the WordPress section for more.

My WordPress powered blog is installed in a subdirectory. Does that change anything?

That depends on where the index.php and .htaccess of your installation reside. If they are in the root while the rest of the WP files are installed in a subdir, so the site is accessible from your domain root, you do not have to do anything. It should work out of the box.

But if the index.php is together with your wp-config.php and all other WP files in a subdir, meaning your blog is only accessible via that subdir, you need to manage your own robots.txt file in your domain root. It has to be in the root (!) and needs a line starting with Sitemap: followed by the full URL to the sitemap feed provided by XML Sitemap Feed plugin. Like:
Sitemap: http://yourblogurl.tld/subdir/sitemap.xml

If you already have a robots.txt file with another Sitemap reference like it, just add the full line below or above it.

Do I need to use a fancy Permalink structure?

No. While I would advise you to use any one of the nicer Permalink structures for better indexing, you might not be able to (or don’t want to) do that. If so, you can still use this plugin:

Check to see if the URL yourblog.url/?feed=sitemap does produce a feed. Now manually upload your own robots.txt file to your website root containing:

Sitemap: http://yourblog.url/?feed=sitemap

User-agent: *
Allow: /

You can also choose to notify major search engines of your new XML sitemap manually. Start with getting a Google Search Console account and submit your sitemap for the first time from there to enable tracking of sitemap downloads by Google! or head over to XML-Sitemaps.com and enter your sites sitemap URL.

Can I change the sitemap name/URL?

No. If you have fancy URL’s turned ON in WordPress (Permalinks), the sitemap url is yourblogurl.tld/sitemap.xml but if you have the Permalink Default option set the feed is only available via yourblog.url/?feed=sitemap.

I see no sitemap.xml file in my site root!

There is no actual file created. The sitemap is dynamically generated just like a feed.

I see a sitemap.xml file in site root but it does not seem to get updated!

You are most likely looking at a sitemap.xml file that has been created by another XML Sitemap plugin before you started using this one. Remove that file and let the plugin dynamically generate it just like a feed. There will not be any actual files created.

If that’s not the case, you are probably using a caching plugin or your browser does not update to the latest feed output. Please verify.

I use a caching plugin but the sitemap is not cached

Some caching plugins have the option to switch on/off caching of feeds. Make sure it is turned on.

Frederick Townes, developer of W3 Total Cache, says: “There’s a checkbox option on the page cache settings tab to cache feeds. They will expire according to the expires field value on the browser cache setting for HTML.”

The Google News sitemap is designed to NOT be cached.

I get an ERROR when opening the sitemap or robots.txt!

The absolute first thing you need to check is your blogs privacy settings. Go to Settings > Privacy and make sure you are allowing search engines to index your site. If they are blocked, your sitemap will not be available.

Then, you might want to make sure that there is at least ONE post published. WordPress is known to send 404 status headers with feed requests when there are NO posts. Even though the plugin tries to prevent that, in some cases the wrong status header will get sent anyway and Google Search Console will report a vague message like:

We encountered an error while trying to access your Sitemap.
Please ensure your Sitemap follows our guidelines and can be
accessed at the location you provided and then resubmit.

If that did not solve the issue, check the following errors that might be encountered along with their respective solutions:

404 page instead of my sitemap.xml

Try to refresh the Permalink structure in WordPress. Go to Settings > Permalinks and re-save them. Then reload the XML Sitemap in your browser with a clean browser cache. ( Try Ctrl+R to bypass the browser cache — this works on most but not all browsers. )

404 page instead of both sitemap.xml and robots.txt

There are plugins like Event Calendar (at least v.3.2.beta2) known to mess with rewrite rules, causing problems with WordPress internal feeds and robots.txt generation and thus conflict with the XML Sitemap Feed plugin. Deactivate all plugins and see if you get a basic robots.txt file showing:
User-agent: * Disallow:
Reactivate your plugins one by one to find out which one is causing the problem. Then report the bug to the plugin developer.

404 page instead of robots.txt while sitemap.xml works fine

There is a known issue with WordPress (at least up to 2.8) not generating a robots.txt when there are no posts with published status. If you use WordPress as a CMS with only pages, this will affect you.

To get around this, you might either at least write one post and give it Private status or alternatively create your own robots.txt file containing:

Sitemap: http://yourblog.url/sitemap.xml

User-agent: *
Allow: /

and upload it to your web root…

Error loading stylesheet: An unknown error has occurred

On some setups (usually using the WordPress MU Domain Mapping plugin) this error occurs. The problem is known, the cause is not… Until I find out why this is happening, please take comfort in knowing that this only affects reading the sitemap in normal browsers but will NOT affect any spidering/indexing on your site. The sitemap is still readable by all search engines!

XML declaration allowed only at the start of the document

This error occurs when blank lines or other output is generated before the start of the actual sitemap content. This can be caused by blank lines at the beginning of wp-config.php or your themes functions.php or by another plugin that generates output where it shouldn’t. You’ll need to test by disabling all other plugins, switching to the default theme and manually inspecting your wp-config.php file.

I see only a BLANK (white) page when opening the sitemap

There are several cases where this might happen.

Open your sitemap in a browser and look at the source code. This can usually be seen by hitting Ctrl+U or right-click then select ‘View source…’ Then scan the produced source (if any) for errors.

A. If you see strange output in the first few lines (head tags) of the source, then there is a conflict or bug occuring on your installation. Please go to the Support forum for help.

B. If the source is empty or incomplete then you’re probably experiencing an issue with your servers PHP memory limit. In those cases, you should see a messages like PHP Fatal error: Allowed memory size of xxxxxx bytes exhausted. in your server/account error log file.

This can happen on large sites. To avoid these issues, there is an option to split posts over different sitemaps on Settings > XML Sitemap. Try different settings, each time revisiting the main sitemap index file and open different sitemaps listed there to check.

Read more on Increasing memory allocated to PHP (try a value higher than 256M) or ask your hosting provider what you can do.

Can I run this on a WPMU / WP3+ Multi-Site setup?

Yes. In fact, it has been designed for it. Tested on WPMU 2.9.2 and WPMS 3+ both with normal activation and with Network Activate / Site Wide Activate.

628 Comments

hello
thanks for this plugin!

We have several type of post type to be included in your news sitemap, but in your news setting orm

( wp-admin/options-general.php?page=xmlsf-news )

you have put only 1 choice and not multi choice option.

Could you enable it please?

In general we need to manage which post and taxonomy should be included into the news feed settings

thanks

Hi Francesco, this is currently under development in a Pro extension. I’ve sent an email inviting you to test the current alpha version if you like 🙂

Hi! Thank you by the plugin! Is amazing!

I have on my wordpress some custom status for some post types and I will to love that if this posts (with custom status) are included in xml files. The plugin have some filter where I can pass the custom status?

Thank you!

Hi Jeff, I’m afraid I don’t completely follow. Can you give an example what kind of post status you wish to pass to the sitemap?

hey
I got error Cannot redeclare xmlsf_headers() and xmlsf_news_filter_where()
fixed with edit models/main.php
17: require XMLSF_DIR . ‘/models/public/shared.php’; -> require_once XMLSF_DIR . ‘/models/public/shared.php’;
55: require XMLSF_DIR . ‘/models/public/sitemap-news.php’; -> require_once XMLSF_DIR . ‘/models/public/sitemap-news.php’;

Hi Nicolai, could you tell me with what settings this error occurs? I suppose you have both sitemaps activated but I cannot reproduce the issue… The filter were these two files are included, should not be running more than once. Any idea why it does run twice in your case?

Hi, you’ll need to install and activate the plugin XML Sitemap & Google News for WordPress first, then follow the instructions (2) that are given in admin messages on how to avoid/solve conflicts with the Yoast plugin: disable the yoast sitemap and enable “Date Archives” in the yoast settings.

Hi, you can just install and enable the XML Sitemap & Google News plugin. You’ll get a message about disabling the XML Sitemap option in the Yoast settings. If you submitted your sitemap in your Google Search Console account before, then best to submit the new sitemap there. Same for Bing and others 🙂

It allows webmasters to include additional information about each URL: when it was last updated, how often it changes, and how important it is in relation to other URLs in the site. This allows search engines to crawl the site more intelligently.

Hi ipl, just switch the Yoast sitemap on /wp-admin/admin.php?page=wpseo_dashboard#top#features to OFF and then activate the XML Sitemap option on /wp-admin/options-reading.php#xmlsf_sitemaps 🙂

Hello m gettting error

“XML Sitemap & Google News

The WordPress SEO XML Sitemap is not compatible with XML Sitemap & Google News. Please either disable the XML Sitemap under Features in your SEO settings or disable the option XML Sitemap Index on Reading Settings.”

can i off XML Sitemap Index in settings – reading and keep activate the Yoast site map will that work fine?

I can site there are two sitemaps are generated – one is site/sitemap.xml other is site/sitemap_index.xml

which one to use?

You can use which ever you prefer. You can even leave them both activated but that’s kind of pointless… Best to switch off the one that you are not using.

Hello Buddy i always have this error message in my search consol The sitemap can be read, but contains errors
The publication label you selected when submitting the sitemap is not associated with a publication identified in the Google News database. For the current language and name of the publication, please check your articles on Google News. Then add this information to your sitemap by updating it to the new format. To perform this update, you must insert a tag, as well as other relevant tags in each URL of the sitemap.

How can i fixe that please ?

Hello sir, my site ir proned into some problems. Please help me:
17: require XMLSF_DIR . ‘/models/public/shared.php’; -> require_once XMLSF_DIR . ‘/models/public/shared.php’;
55: require XMLSF_DIR . ‘/models/public/sitemap-news.php’; -> require_once XMLSF_DIR . ‘/models/public/sitemap-

Hi reroxer, it sounds like some files are missing. Please try to uninstall and reinstall the plugin.

Hi…

Now, Google Launched New Publisher Panel… The Old Producer system is No more…

I added the normal XML sitemap to Google console and my site’s news stories coming in Google search…

Do I need to Install this Plugin in My site?

Can I add two Sitemaps together in Console?

for News and Normal seperate XML…

is that OK?

No Conflicts..?

Also WordPress 5.5 is Arrived with default sitemap.

Kindly reply…

Hi Sibi, there is no conflict with the normal xml sitemap from WP core, you can use either one whichever you prefer or even both. You can submit your Google News sitemap alongside the regular XML sitemap in your Search Console to help you monitor indexation.

Hi, you can exclude individual posts from the sitemap but not complete categories (or do you mean something else with “topic”?)

Hi, if your site is already in Google News and you are happy with how it appears there then no, you can continue without submitting your site in the Publisher Center. But if you want to optimize and (for example) let GN know about what specific news sections are present on your site and how your site appears in the GN app, then Publisher Center is the only way to go.

Hi Ammy, yes the sitemap is dynamic and no you do not need to update the sitemap in search console each time.

Hi, if your site is already in Google News and you are happy with how it appears there then no, you can continue without submitting your site in the Publisher Center. But if you want to optimize and (for example) let GN know about what specific news sections are present on your site and how your site appears in the GN app, then Publisher Center is the only way to go.

Hi, there should be no problem. You might get an admin message from the other plugin but normally you can ignore and hide such a message.

Hello,
i just published fresh content but my search console for news sitemap status showing error, it said ‘Your Sitemap does not contain any URLs. Please validate and resubmit your Sitemap’.

if i check to the xml file it contain the url

You only need to submit the sitemap index (/sitemap.xml) and the news sitemap (/sitemap-news.xml), no need to submit each separate sitemap inside the index.

Hi Sir,

yes, i’m sure i was correctly submitted the xml, like the way i’m done also for other sitemap (index, root, etc…. and no problem for them) only sitemap news occuring the error

my problem seems to be solved.
i just let the ‘Publication name’ blank and try to resubmit the news xml to search console. the status is success and content url also discovered.

Hi Janek, it depends on the language plugin you are using. The sitemap has been made compatible with Polylang and WPML so far…

Hi Manu, dividing by a certain number will come in the next release. You can already exclude certain pages or posts (from each post Edit page) and you can disable each taxonomy (on Settings > XML Sitemap)… both Google and Bing can be pinged automatically on each new post (activate the Ping options on Settings > Writing) or you can do it manually from Settings > XML Sitemap (button on the right side). Hope that helps 🙂

Please note: the sitemap that is pinged is /sitemap.xml, not /sitemap_index.xml which is the Yoast sitemap URL.

Leave a Reply to Koen Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.