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.

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.]

A Few Thoughts You Can Share from the Post:

96 Responses to “Simple SEO Sitemap WordPress Plugin for Search Engines”

  1. Matthew Snider May 12, 2011 at 10:06 AM #

    This rocks brother, one question.

    Does it work with Multisite?

    • Tom McFarlin May 12, 2011 at 10:11 AM #

      Hey Matthew,

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

      • Matthew Snider May 12, 2011 at 10:27 AM #

        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.

        • Tom McFarlin May 12, 2011 at 11:23 AM #

          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.

    • Peter Bockenhauer May 12, 2011 at 12:11 PM #

      I use this plugin for multisite: http://wordpress.org/extend/plugins/bwp-google-xml-sitemaps/

  2. Joe Chavez May 12, 2011 at 10:08 AM #

    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!

  3. Calvin Koepke May 12, 2011 at 10:29 AM #

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

  4. Skinny Tie May 12, 2011 at 10:40 AM #

    Yo!

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

    • wvpv May 12, 2011 at 10:43 AM #

      that’s what I was wondering.

    • Tom McFarlin May 12, 2011 at 11:01 AM #

      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.

    • Matthew Snider May 12, 2011 at 11:12 AM #

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

      • John Saddington May 12, 2011 at 11:13 AM #

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

  5. Joshua Chase May 12, 2011 at 12:13 PM #

    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!

    • John Saddington May 16, 2011 at 11:49 AM #

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

    • Matt Fraser May 31, 2011 at 2:29 PM #

      Joshua,

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

  6. Dustin W. Stout May 12, 2011 at 1:12 PM #

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

  7. John May 12, 2011 at 3:38 PM #

    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.

    • Tom McFarlin May 12, 2011 at 4:57 PM #

      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 :) .

  8. Eric Williams May 12, 2011 at 4:10 PM #

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

  9. Brandon May 13, 2011 at 11:08 AM #

    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!

  10. Brian Alexander May 13, 2011 at 9:45 PM #

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

    • John Saddington May 16, 2011 at 11:48 AM #

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

  11. Jeff Goins May 15, 2011 at 11:41 AM #

    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.

    • John Saddington May 16, 2011 at 11:48 AM #

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

  12. Lisa Colon DeLay May 17, 2011 at 7:16 PM #

    whoa! thank you!

  13. sai May 18, 2011 at 5:49 AM #

    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://tentblogger.com/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”

    • John Saddington May 18, 2011 at 7:36 AM #

      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.

  14. sai May 18, 2011 at 9:45 AM #

    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.

    • John Saddington May 18, 2011 at 1:56 PM #

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

      • sai May 19, 2011 at 4:52 PM #

        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

        • John Saddington May 19, 2011 at 7:53 PM #

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

          • sai May 20, 2011 at 11:33 AM #

            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

            • John Saddington May 20, 2011 at 12:15 PM #

              yeah, but how did you install wordpress?

              • sai May 22, 2011 at 1:29 PM #

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

  15. Chadrack May 18, 2011 at 9:47 AM #

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

    • John Saddington May 18, 2011 at 1:55 PM #

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

  16. Rich Langton May 19, 2011 at 11:28 PM #

    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!!

    • John Saddington May 19, 2011 at 11:37 PM #

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

  17. Calum Henderson May 23, 2011 at 9:46 PM #

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

  18. Josh May 25, 2011 at 4:18 PM #

    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.

    • John Saddington May 26, 2011 at 10:27 AM #

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

    • Tom McFarlin May 26, 2011 at 10:36 AM #

      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.

      • John Saddington May 26, 2011 at 10:43 AM #

        thank you sir.

      • Josh May 26, 2011 at 5:34 PM #

        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’);

  19. Tom McFarlin May 27, 2011 at 5:32 PM #

    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 May 28, 2011 at 4:28 PM #

      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.

  20. mister freeiz June 3, 2011 at 6:02 AM #

    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)

  21. Fernando June 7, 2011 at 3:03 PM #

    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.

  22. san June 19, 2011 at 12:12 PM #

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

  23. Chris Langille July 9, 2011 at 9:30 PM #

    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!!

    • John Saddington July 11, 2011 at 8:45 AM #

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

      • Chris Langille July 11, 2011 at 10:02 AM #

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

        Thanks bro

        • John Saddington July 11, 2011 at 10:10 AM #

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

          • Chris Langille August 20, 2011 at 11:19 PM #

            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

  24. Aaron Armstrong July 11, 2011 at 12:20 PM #

    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?

  25. Tony LaMarca July 29, 2011 at 1:27 PM #

    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.

  26. Darryl Taylor August 9, 2011 at 3:23 PM #

    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!

  27. Donco Designs August 28, 2011 at 9:33 AM #

    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.

  28. John Finkelde August 29, 2011 at 12:20 AM #

    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?

  29. Jay Schwartz September 4, 2011 at 4:05 AM #

    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! :)

    • John Saddington September 6, 2011 at 9:58 PM #

      interesting. will make note!

      • Chris Langille September 10, 2011 at 10:01 PM #

        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 September 11, 2011 at 1:30 PM #

          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!

  30. Tomb September 17, 2011 at 10:52 PM #

    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

    • John Saddington September 30, 2011 at 9:32 PM #

      i’ll have to take a look.

      • jay November 4, 2011 at 6:46 PM #

        “”"”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 ?

  31. Ryan Card October 19, 2011 at 11:37 AM #

    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!

  32. dave holzemer November 11, 2011 at 11:53 AM #

    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!

  33. gee November 19, 2011 at 10:16 AM #

    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

    • John Saddington November 21, 2011 at 3:11 AM #

      server settings?

      • ganghiss March 28, 2012 at 12:31 AM #

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

  34. kevin November 23, 2011 at 3:08 AM #

    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

  35. Daniel November 23, 2011 at 5:22 PM #

    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 November 23, 2011 at 6:07 PM #

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

    • Daniel November 24, 2011 at 2:05 AM #

      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.

Leave a Reply:

Gravatar Image