Simple SEO Sitemap WordPress Plugin for Search Engines

Not pretty to look at... but super important for your blog!

[This post is part of the Ultimate Guide to Launching a WordPress-Powered Blog series.]

I’ve already covered in depth the value of creating an effective Sitemap for your users (via WordPress) so that they can navigate your site better.

But, there is a difference between creating a Sitemap for your users and a Sitemap for search engines, and the latter being just as important!

Essentially a sitemap for search engines is a way of communicating to them about pages within your site and blog that they might not know about directly. Their robots will crawl your site to the best of their abilities but sometimes they simply “miss out” on pages that you definitely want them to know about and index!

These sitemaps are generally in an XML format (a type of text file format) and list the pages of your site and blog. Submitting one to Google (and the other search engines) is something you should definitely do!

Here is a general list of benefits:

  • Specify pages you want indexed by the search engines and also help tell the search engines which pages are more important to index higher than others.
  • Include other metadata about the types of content that you might have other than just copy, such as video, images, mobile information, news, software source code that you might be generating, and even geographical data.
  • Best for dynamic content, especially blogs!
  • Pages that might not be indexed or found through their typical process, like images, flash, and AJAX-powered pages.
  • Newer blogs will actually benefit the greatest from a sitemap since Google loves to crawl and index new sites but only if they have a lot of good interlinking URLs and structure.
  • Older sites will also benefit since some of your large archives of information may not be indexed or interlinked very well. Take advantage of a search engine Sitemap and your problems are solved!

You are essentially giving search engines a “map” to help navigate your content in the best way and it can dramatically improve the quality of a search engine bot’s “crawl” or indexing of your site than if you didn’t have one at all.

The bottom line? Get a Sitemap for search engines for your blog!

How to Add a Sitemap via Google Webmasters

I’ve covered how to setup Google Webmaster Tools in this post here and so you’ll want to start there. The next step though is adding a Sitemap, which isn’t too hard!

Very easy!

Just find it in your Site Configuration and then click the button “Submit a Sitemap”:

sitemap.xml is typically the file name

And that’s it!

Don’t have one or haven’t created one yet? I’ve got a solution for you…

Use a WordPress Plugin to Make it Simple!

If you’re using WordPress I’ve created a very simple plugin that’ll give you a Sitemap in a couple of clicks! It’s the easiest and fastest way to create one so that you can submit it to Google and the other search engines.

Just download, install, and then click the button:

It's that simple... and it should be!

What this essentially does is go as far as possible for you to streamline the sitemap generation process so that you don’t have to do much thinking. Install-and-go, no setup required!

  • Sitemap includes all posts and pages that are public.
  • Homepage is specified to update daily, posts weekly, and pages monthly each which a respective priority of 1, 0.8, and 0.6.
  • Plugin will not be used if the blog is set to private.
  • It will automatically check your blog for updated content every night for any changes.
  • Automatically notifies Google and Bing search engines of your updates!
  • Will not max out your PHP memory limit, especially if you have a really large blog with lots of content!
  • Lightweight, runs right out of the box, and super simple. Yum!

Sweet! Of course, just comment below if you need anything!

Download it Here!

777!

Please note that in some circumstances the plugin will not be able to add the sitemap.xml file because of your server and hosting permissions to create a file on your root directly – you might see an error that says:

Your server is not configured to support file-write access. tweet

What you need to do is either create manually an empty sitemap.xml and sitemap.xml.gz file, upload it to the root of your blog’s installation and CHMOD the permissions to 777 or CHMOD your root directly to 777 to have the plugin create the file for you.

Of course, don’t forget to turn the permissions back after you’re done!

I’m here to serve you! Huge hat tip to @MoreTom, my partner in TentBlogging awesomeness!

A sitemap for search engines is worthless unless you let them in!

[This post is part of the Ultimate Guide to Launching a WordPress-Powered Blog series.]

  • http://www.geekforhim.com Matthew Snider

    This rocks brother, one question.

    Does it work with Multisite?

    • http://8bit.io Tom McFarlin

      Hey Matthew,

      No – this plugin is only [currently] compatible with single site WordPress blogs.

      • http://www.geekforhim.com Matthew Snider

        Hmm So I wonder how I could go about using it on the network. For now I am okay with just my blog, but having it on my clients site also would be nice.

        Even Google Sitemap Plugin doesn’t support it.

        • http://8bit.io Tom McFarlin

          Part of the goal of this plugin is to employ tentbloggers with the necessary tools to maintain the highest quality blogs they can.

          At this point, the majority of that audience is not blogging across a network – just a single installation – so that’s who we’ve targeted.

          Still, it’s a 1.0 release. Multisite support isn’t out of the question for a future version.

    • http://bockenhauer.com Peter Bockenhauer
      • http://john.do John Saddington

        sweet! that looks like a great alternative!

  • Joe Chavez

    Excellent!

    I’m using a plugin now for this, but given how well the rest of Tentblogger’s plugins and widgets work, I’m ditching it for yours!

    Thanks John!

  • Calvin Koepke

    Wow, that plugin rocks! So cool and sleek. Nice job!

    • http://8bit.io Tom McFarlin

      :)

  • Skinny Tie

    Yo!

    What’s the advantage over the Google XML Sitemap plugin?

    • http://wvpv.me wvpv

      that’s what I was wondering.

    • http://8bit.io Tom McFarlin

      Dunno if there’s necessary a solid advantage but it’s simpler – there’s nothing to configure.

      Once it’s activated, it’ll automatically run each day.

    • http://www.geekforhim.com Matthew Snider

      This is the plugin that is not setup for Multisite either which is a bummer to be honest.

      • http://john.do John Saddington

        sorry we can’t code for every single use case. we’ll consider it for an updated version.

  • http://scatteredblogger.com Joshua Chase

    Wow, I will definitely take a look at this. I do have sitemap.xml being submitted on one site via All In One SEO I believe. Does this basically handle that component on it’s own? I’ve been moving away from AIO and moving towards “yoast” so this could be really helpful. Thanks for taking the time to make it John!

    • http://john.do John Saddington

      sure thing joshua! lots of options out there, for sure.

    • Matt Fraser

      Joshua,

      Keep in mind, Yoast’s SEO plugin already has an xml site map built into it.

  • http://dustinstout.com Dustin W. Stout

    Another rockin’ Tentblogger plugin dripping with AWESOMESAUCE. Thanks again John and @MoreTom!

    • http://8bit.io Tom McFarlin

      ;)

  • http://jesusgeek.info John

    Quick question about the plug-ins you’ve released: are these feature that aren’t in Standard Theme? Standard has so much goodness built-in that it’s tough for me to decide which plug-ins you develop to add to my WP installation.

    • http://8bit.io Tom McFarlin

      There *is* a sitemap template that ships with Standard Theme and it provides some SEO benefit.

      That coupled with this plugin would be a solid setup.

      Actually, that goes for all the plugins: none are built into Standard; however, they’d definitely enhance it :).

  • http://wordsofwilliams.com Eric Williams

    Download, install, and click the button…. So simple!!! took me 30 seconds. When does your “content generating” plugin come out? ;)

    • http://john.do John Saddington

      haha! that would be silly-cool… i think. :)

  • Brandon

    Have you noticed the page views on your blog to be really low this past week? I went from an average of 200 to 90 in one week!

    • http://john.do John Saddington

      hmm. this past week was pretty high for me…!

  • http://lifexpresseddigitally.me/blog Brian Alexander

    Download, Installed, Built Sitemap, Submitted to Google. Total of 40 seconds. Very nice. Thanks so much!

    • http://john.do John Saddington

      awesome! that’s what we were hoping for! to make it as easy as possible.

  • http://goinswriter.com/ Jeff Goins

    John, how does this plugin compare to others out there right now? Just wondering, as I already had a WP sitemap generator plugin installed. I’m sure you’ve done some research – would love to hear your thoughts.

    • http://john.do John Saddington

      it’s just one of the easiest out there to use. and it’s fully automated.

  • http://lisadelay.com/blog Lisa Colon DeLay

    whoa! thank you!

    • http://john.do John Saddington

      you’re welcome!

  • sai

    After install the sitemap & successful created, i enter “mysite.com/sitemap.xml” in firefox, it show 404 not found.

    Ftp check the wordpress root, the sitemap.xml and gz is there too. The file permission is 644.

    I install the WP in a subfolder, eg “icecream”
    http://john.do/installing-wordpress/
    I enter “mysite.com/icecream/sitemap.xml”
    Magically the file show correctly now, like a txt file.

    So when i submit in the google webmaster, which url should i submit ?
    “mysite.com/sitemap.xml”
    “mysite.com/icecream/sitemap.xml”

    • http://john.do John Saddington

      do you have a cacheing system?

      you should put in the URL that gets to the sitemap.xml file, so that would be your second choice.

      i’m going to look into making it always on the root.

  • sai

    i don’t use any caching at all.

    ok i’ll submit the url below, hope it wouldn’t confuse the SE
    mysite.com/icecream/sitemap.xml

    Hope the things will fix soon.

    • http://john.do John Saddington

      it should goto the root btw… might have an .htaccess link issue. should be fine though.

      • sai

        Is there anyway to fix it ?
        mysite.com/icecream/sitemap.xml looks weird

        my /icecream/ htaccess is empty
        my public-html htaccess is below
        (if dangerous pls don’t show the code in public)

        # BEGIN WordPress

        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ – [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]

        # END WordPress

        • http://john.do John Saddington

          the plugin should generate off your root. did you install your wordpress in the icecream folder?

          • sai

            I download and install it thru the wordpress admin on my own hosting server. Didn’t use the ftp to upload. Checked thru ftp, it is under the icecream like all others

            • http://john.do John Saddington

              yeah, but how did you install wordpress?

              • sai

                Thru whm fantastico then move it to icecream according to the wordpress.org instruction.

                • http://john.do John Saddington

                  your google webmasters. what did you submit there?

  • http://www.webincomejournal.com Chadrack

    Hey, just want to know is this plugin any way different from google sitemap generator? I’ve been using that for years.

    • http://john.do John Saddington

      i answered this above. it does similar things but is much more simple in execution and admin.

  • http://ichrch.com Rich Langton

    Hey John – just wanted to acknowledge for yet another great plugin!! I so appreciate your blog and all the great resources you’re sharing with us all. Thanks and keep up the great work!!

    • http://john.do John Saddington

      ah, thanks rich! we just try to make stuff that’s valuable for other bloggers!

  • http://calumhenderson.com/ Calum Henderson

    Very helpful John, just installed your plugin, so much simpler than any other sitemap plugin I have found before.

    • http://john.do John Saddington

      cool! thanks calum!

  • Josh

    Is there a way to control where the sitemap is saved? Anything we can change in the code?

    I am having issues having this created, it says it is saving it in my root folder but nothing shows up. I think it has something to do with the redirect I have setup (non-www to www) and the fact that WordPress is installed in a sub-directory of the root.

    • http://john.do John Saddington

      it might be sitting in the sub-directory of your root. the plugin should put it in your root though.

    • http://8bit.io Tom McFarlin

      Find the area in the plugin that makes a function call like this (there are two):

      $handle = fopen(tentblogger_get_sitemap_location(), ‘w’);
      $handle = fopen(tentblogger_get_sitemap_location() . ‘.gz’, ‘w’);

      Remove the function call and you can hardcode to the path to your blog’s directory.

      Another reason that it may not be writing out could be because of permissions on your server. Be sure to double-check your CHMOD values on your server against what’s shared in the post up there.

      Hope this helps.

      • http://john.do John Saddington

        thank you sir.

      • Josh

        Just to be sure – the function calls will not be together in the code correct? I found them but the .gz call is a little further down.

        Next, which portion of the call do I remove and replace with the blog’s directory?

        Last, to clarify again, if the blog is installed in a sub-directory – I still want to save the sitemap files to the root right? Currently, the plugin is generating the files to http://artofdisappearing.com/sub-directory/sitemap.xml and sitemap.xml.gz so it is working, just to the wrong location.

        In the end I should have something like this it sounds like – $handle = fopen(artofdisappearing.com/,‘w’);
        $handle = fopen(artofdisappearing.com/.’.gz’,‘w’);

  • http://8bit.io Tom McFarlin

    It doesn’t really matter where your sitemap is installed because the map includes the paths to your posts.

    The plugin saves the XML site in the root directory of your WordPress installation so if you need to change *that* then locate the line of code:

    $sitemap_url = urlencode(get_bloginfo(‘url’) . ‘/sitemap.xml.gz’);

    Assuming your site is located in /blog then do this:
    $sitemap_url = urlencode(get_bloginfo(‘url’) . ‘/blog/sitemap.xml.gz’);

    And ignore the changes suggested earlier.

    Hope this helps.

    • Josh

      Thanks Tom! Appreciate the help on this. And thanks to John for creating the plugin – way easier, that’s why I wanted to get it working correctly.

  • mister freeiz

    hi, just to fix a bug with the date,
    replace the field sql (ligne 146,148)
    post_modified
    with
    post_modified_gmt

    and (ligne 159)
    $post->post_modified
    with
    strtotime($post->post_modified_gmt)

    • http://john.do John Saddington

      sweet!

  • http://almeidasinmission.blogspot.com Fernando

    Thank you John for this wonderful plug-in it worked perfectly for my site. Thank you for investing on making these resources available for us less literate in the technical aspects of blogging.

    Blessings.

    • http://john.do John Saddington

      sure thing fernando! i love helping out!

  • http://www.meditationguru.in san

    wow..great, this is so simple, thanks a lot!

    • http://john.do John Saddington

      sure thing san!

  • Chris Langille

    John, this is awesome! Quick question thought…

    My .xml & .xml.gz are both CHMOD’d to 777. When I click the button in the plugin, it says my server isn’t file-write accessable, but write below that it says the sitemap was successful.

    Is the right?

    I manually submitted sitemaps in Google Webtools, and that worked fine.

    Am I doing something wrong? Or does that message show regardless?

    Thanks!!

    • http://john.do John Saddington

      the folder needs to be chmod777, not just the files if it’s attempting to write to it.

      • Chris Langille

        When you say folder, are you referring to WP-Content ?

        Thanks bro

        • http://john.do John Saddington

          wherever the root folder for your sitemap. typically your httpdocs or something else like that.

          • Chris Langille

            Weird, for some reason, my FTP app isn’t letting me 777 my root.

            Is there a certain file or folder that needs to be 777, or the entire root?

            Thanks bra

            • http://john.do John Saddington

              hmm. should be the root… perhaps you can create the file.

  • http://www.bloggingtheologically.com Aaron Armstrong

    I’m having the same issue; so would I have to chmod just the folder where the files reside or the entire httpdocs/public_html along with the xml files?

    • http://john.do John Saddington

      try all of them for starters. see what happens.

  • http://tlamarca.com Tony LaMarca

    I’ve tried everything listed in your post and the comments, but I still get “Your server is not configure to support file-write access.”

    Any idea what might be wrong?

    I wanted to get a clean start, so I started by doing the secure install of wordpress described in another one of your posts. Then I installed this pluggin, and now I am stuck.

    When I look at the sitemap in the secure folder, it seems to be correct. The empty sitemap in the root folder remains empty. and I still get the message above.

    • http://john.do John Saddington

      is it in your sub-folder?

  • Darryl Taylor

    Line 162 should read:

    $current_post .= “\t\t” . date(DATE_W3C, strtotime($post->post_modified)) . “\n”;

    Just noticed all my posts were showing last modified in 1970.

    Thanks for the plugin though!

    • http://john.do John Saddington

      doh! that’s not cool. ;) glad you got it fixed.

  • http://www.doncodesigns.com Donco Designs

    Thanks for this helpful info. This post is easy to understand and follow. It is nice to see something written in plain language for the non-techy person. Love your site also.. packed with lots of juicy commentary. Thanks again for the helpful advice.

    • http://john.do John Saddington

      sure thin donco!

  • http://growahealthychurch.com/ John Finkelde

    Hi

    I’m getting this message

    Warning: fopen() [function.fopen]: Filename cannot be empty in /home/gahc/public_html/wp-content/plugins/tentblogger-simple-seo-sitemap/tentblogger-simple-seo-sitemap.php on line 127 fail

    What should I do?

  • Jay Schwartz

    Hi John (et al),

    Just wanted to chime in with an issue for those with ‘Bluehost’ webhosting trying to install this plugin which seems really ‘rad’. Ok, after installing the plugin, I get the warning,”Your server is not configure to support file-write access”(Note: yes, guys you need to add a ‘d’ to ‘configure’ :P). Attempting to chmod the folder permissions (public_hmtl) to 777, or even 775, apparently locks up access to the site, so the plugin can’t be re-executed. However, I did notice that sitemap.xml and the GZ files were created. I contacted Bluehost support which informed me that they don’t support 777, and that settings for folders should be 755 and most files at 644. They also advised that “the plugin may not be optimized to work in our system” and that “if it is automatically making files with incorrect settings you will start to see problems.” There was no comment on the site’s lock up (until permission settings were reset). So at this point, ‘pending further review’, I’ve sadly deactivated the plugin, just to be safe, hoping for some positive feedback from you all. Really hoping this works out, cause this seems to be a great plugin! :)

    • http://john.do John Saddington

      interesting. will make note!

      • Chris Langille

        John, my host doesn’t support CHMOD 777 either so I’m going to manually make the files.

        I simply make them in a text edit program right?

        • Jay Schwartz

          Chris, for the most part that should work. However, you might want to check to see if the files were created anyway, as were mine. Good luck!

  • http://www.myskoteket.se Tomb

    Here is a funny thing that keeps happening to me:

    “September 18, 2011 Your server is not configure to support file-write access. Please see this post for troubleshooting instructions.
    Sitemap successfully generated
    Sitemap submitted to Google, Bing, and Yahoo!
    Sitemap successfully gzipped.”

    So why does it keep saying that it is not configured but it creates the sitemap and it works? :D

    • http://john.do John Saddington

      i’ll have to take a look.

      • jay

        “”””Last Successfully Executed: November 4, 2011 Your server is not configure to support file-write access. Please see this post for troubleshooting instructions.
        - Sitemap successfully generated
        - Sitemap submitted to Google, Bing, and Yahoo!
        - Sitemap successfully gzipped.””””

        I have the same problem as Tomb, and the date is not correct, it is early than my country time(correct time November 5), i think it follow the US time instead of my country time

        File permission is set to 644 for both file

        I also checked the mydomain.com/sitemap.xml, it seems working fine
        show something like this

        “”This XML file does not appear to have any style information associated with it. The document tree is shown below. XXXXX
        Successfully submitted sitemap to Google on XXX Date Time Successfully submitted sitemap to Bing on XXX Date Time “””

        So is it working fine ?

  • Ryan Card

    Hey John. Great plugin! However, when I installed it and it runs, I get a generic 404 error when I try to go to the sitemap page. I’m using The Standard Theme with the sitemap page that is built into the theme. If I go to my root folder and delete sitemap.xml and sitemap.xml.gz, the sitemap page works again. Any idea what may cause this issue? Maybe I’m just missing something.?. Thanks!

    • http://john.do John Saddington

      hmm. have you messed with your permissions?

      • Ryan Card

        Not that I am aware of…

  • http://www.collidephoto.com dave holzemer

    My blog is primarily images. I know that Google can access image info in a sitemap.. Does your or anyone else’s sitemap plugin add this functionality?

    If not I’ll be using yours for sure!

    • http://john.do John Saddington

      there are a few others, like yoasts.

  • gee

    Hi John,

    Great plugin……

    but I get the following error when I have uploaded the plugin:

    Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘Array’ was given in /…………./wp-includes/plugin.php on line 405

    Please do you know how to fix this?

    Many thanks

    Gee

    • http://john.do John Saddington

      server settings?

      • ganghiss

        Getting this error as well. WP 3.3.1 on InMotion Hosting servers.

  • http://www.neomaglight.com kevin

    So its amazing of course. Im wondering if it will still work if i dont release the permissions on the files? Im a noob and am just learning how to use WP any help is welcome. I host threw godaddy…

    Thx
    Kevin

    • http://john.do John Saddington

      you’ll have to check.

  • Daniel

    Hey John-

    In Google Webmaster Tools today I noticed that it said I didn’t have a Sitemap submitted, so I started checking on it since I’ve had your plugin running for some time. Looks like I’m having the same issue as Tomb above, but I didn’t see a solution.

    My root folder shows the sitemap.xml and …gz files, both created today but here’s what the plugin says:

    Last Successfully Executed: November 23, 2011 Your server is not configure to support file-write access. Please see this post for troubleshooting instructions.
    Sitemap successfully generated
    Sitemap submitted to Google, Bing, and Yahoo!
    Sitemap successfully gzipped.

    Any ideas?

    • Daniel

      Boo- not sure if it’s related, but looks like I’ve been hacked.

    • Daniel

      Had definitely been hacked and this wasn’t related. But thankfully after a long, frustrating night of getting things fixed, now I’m back to this. After making sure I’ve put all of your security suggestions into place, now I’m getting this on the SEO Sitemap Plugin:

      Last Successfully Executed: Warning: fopen() [function.fopen]: Filename cannot be empty in /home/dharris50/salvationlife.com/helado/westtexas/wp-content/plugins/tentblogger-simple-seo-sitemap/tentblogger-simple-seo-sitemap.php on line 127 fail Your server is not configure to support file-write access. Please see this post for troubleshooting instructions.
      Sitemap successfully generated
      Sitemap submitted to Google, Bing, and Yahoo!
      Sitemap successfully gzipped.

      • http://john.do John Saddington

        ah, glad you figured it out….!

  • cd

    does your sitemap plugin auto update the sitemap and if so what triggers it or is it simply a cron that is running?

    By the way your facebook like box is covering most of the comment area.

    Anyway thanks for a really light app that is working flawlessly so far.

  • cd

    does your sitemap plugin auto update the sitemap and if so what triggers it or is it simply a cron that is running?

    By the way your facebook like box is covering most of the comment area.

    Anyway thanks for a really light app that is working flawlessly so far.

    repost with correct email

  • http://www.greggordon.net Greg Gordon

    Tremendous I just installed this for my blog as well as a few other of your plugins! thanks.

  • http://autophorie.de Stefan

    It would be so much win if the plugin would update the sitemap after a post has been published instead of creating the sitemap once every 24 hours. We have different editors w/ different roles on our blog, so there is no possibility for everyone to recreate the sitemap via the backend (only the admin is allowed to do so).

    Could that be an issue I can address to you for a future update? I would be happy to witness this comfort feature as I’ve been using Google XML Sitemap plugin for years.

    Thank you!

  • Gavin Atkin

    I’m getting a result that seems curious to me – I get the following message:

    Last Successfully Executed: June 15, 2013 Your server is not configure to support file-write access. Please see this post for troubleshooting instructions.

    So I followed the instructions, uploaded blank files, fixed the permissions and manually created a new sitemap. And got the same message.

    On the other hand, when I opened http://intheboatshed.net/sitemap.xml what I got was a lovely new sitemap. So it’s all working, but doesn’t say so!

    • http://John.do/ John Saddington

      magic…!