Add an Archive Page on Your WordPress Blog for SEO, Site Architecture, and Better Usability

Do you have an Archives Page? Go get one!

[This post is part of the Ultimate Guide to Launching a WordPress-Powered Blog series. Check out the rest here!]

We’re going to start getting into some nitty-gritty things that will help you take your WordPress-powered blog to the next level as we continue to walk through this series, this post dedicated to building an “Archive” page!

Now, why do you really need one? Here are a few reasons why:

  1. An Archive page provides your readers with a grand overview of all the content that you’ve written.
  2. When done well it’ll help give your readers a look at how you’ve architected your site, namely your top-level categories and date-based archives.
  3. It also helps with SEO as it’ll provide search engine bots with more direct links to your content in an organized manner.
  4. It can also provide you a place to quickly find old posts to bring back to light and to the forefront! Some of your best content on your blog has already been written but your newer visitors haven’t read them yet, so your archives can be a place to dredge up that old content!
  5. It can help you balance and focus your blog content areas as it relates to your categories. For example, if you have 8 categories and 3 of them have 90% of your posts then perhaps you need to reconsider those parent categories.
  6. It can help you quickly benchmark how many posts you’re doing on average per month (if you’re showing such things as month-based archives). One month had 100 posts yet another month had 10? Hmm.

Convinced? I am, and here’s one of the most compelling reasons why:

My Archives Page is one of my most heavily trafficked portions of every single blog that I manage. People and search engines crawl that page looking for content like it’s no one’s business and by providing that simple page I increase my number of pageviews and rank in terms of SEO.

I like that (and so should you)!

Create an Archives Page

It’s quite simple to create an archives page for your WordPress blog! There are really three ways of doing it which we’ll walk through, the first being the easiest. Ready?

1. Use a Theme that Has it Built In

The easiest way to have an Archives Page is to simply use a WordPress Theme that has it baked right in. That way you don’t have to do anything!

With Standard Theme (the theme that I use) it has it built right in so all you have to do is simply create a new page, choose the right page template, and then hit Publish.

Done and done:

Add a New Page


Choose 'Archives' Under Page Template


Hit Publish! That's it!

That’s it! Doesn’t get any easier than that!

2. Download a Plugin

The second option that you have is to simply download a WordPress Plugin that’ll create it for you if you’re not using a WordPress Theme that has it built right in.

This is a good option and there are a number of good ones to choose from. Here is a list of one’s I’ve used in the past:

This can be a quick win for you if you don’t want to jump into any code, which is the 3rd option below.

3. Create Your Own Page Template

If you’re willing to get your hands dirty and if you’re WordPress Theme doesn’t come with an Archives Page built in then I’d highly recommend you building one yourself simply because I’m not a fan of adding another WordPress plugin to my blogs when you can build it easily yourself.

This keeps the overall weight of your blog low and thus increases load time for your visitors which impact their experience as well as increases your SEO ranking since your site is faster.

So, if you’ve got a few minutes to spare this is how you go about it:

First, create a new archives.php file and upload it via FTP using your favorite app (here are the FTP apps that I use):

I'm adding archives.php to the Twenty Ten Theme

and then you just copy and paste this code into that file:

<!--?php<br /--> /*
Template Name: Archives Page
get_header(); ?>
<div id="container">
<div id="content">

<!--?php the_post(); ?-->
<h1 class="entry-title"><!--?php the_title(); ?--></h1>
<h2>Archives by Month:</h2>
<ul> <!--?php wp_get_archives('type=monthly'); ?--></ul>
<h2>Archives by Subject:</h2>
<ul> <!--?php wp_list_categories(); ?--></ul>

<!-- #content -->

<!-- #container -->

<!--?php get_sidebar(); ?-->
<!--?php get_footer(); ?-->

It should look like this:

What it ends up looking like is this:

Not bad!

So now you’ve got some date-based archives as well as a list of categories! All you have to do is go back to and add that new page with the template (see example 1) and you’re done!

And you’re on your way! Of course, there’s more that you can do to add some flare to your archives page but don’t go too crazy!

If you’re interested in seeing what I’ve done for my Archives Page here on TentBlogger here are the snippets I’ve customized a bit out of the Standard Theme:

List categories while showing number of posts in each:


List monthly archives while showing number of posts in each:


Show every single post I’ve written:


is_home = false; ?>

  • [/cc]

    Note that on the above I’ve simply asked WordPress to query the last 1,000 blog posts – when I cross the 1,000 blog post line then I’ll increase this to 2,000.

    Good luck and have fun!

    [This post is part of the Ultimate Guide to Launching a WordPress-Powered Blog series. Check out the rest here!]

    • Daniel Berman

      So practically speaking what is the difference between an archives page and a sitemap? Is it just the aspect of chronological listing of the content sorted by category?

      • John Saddington

        they can have similar information. i’ll write more about sitemaps tomorrow.

    • Dustin W. Stout

      Wow! Awesome… Another reason i’m so pumped about using Standard Theme!

      • John Saddington

        ;) sweet!

    • Daniel Decker

      Added + Done = Thank You

      • Daniel Decker

        BTW… ironically the ARCHIVE page I added was my 6th highest traffic page today.

        • John Saddington

          ironically? ;)

      • John Saddington


    • Jonny McCormick

      Any easy way to this on a blog hosted on instead of .org? I’d be interested in making the change to .org maybe if I didn’t find it so complicated…?

      • John Saddington

        not sure you can do it on

      • Matt


        What do you find confusing about using a WP self hosted site over a site?

        • John Saddington

          great question matt.

    • Jeremy Myers

      I want to list my pages in the archives. I use the StandardTheme. What code do I use?

      • Michael

        You can create a new page. On the right hand side, before you hit publish, choose the Archive template. And then it’ll set everything up for you.

        • Jeremy Myers

          Yes, that is what I did. I am using the StandardTheme, and for some reason, it does not include Pages in the archive template. I have a different blog with a different template, and I used that Archive template, and it does include the pages.

          I think I will try to find the code in the other template, and cut-paste it into the StandardTheme archive template. I’ll post the code here if it works.

          • Jeremy Myers

            OK, it worked.
            This was the code I used:

            I just changed the name of the theme.

            • Jeremy Myers

              Well, pasting code in the comments doesn’t work…

              Let’s see if this works:

              <h3><?php _e(‘Pages’,'standardtheme’) ?></h3>
              <ul><?php wp_list_pages(‘title_li=’) ?></ul>

              • John Saddington

                good job!

    • Ben

      Hi John, great post. The way this is set up, the Archive page is typically left blank and a template is applied. Is there a way to modify the archive template to insert any text typed into the archive page if it isn’t left blank? This would be useful if you wanted to provide a brief explanation of how to use the archive. “Hi, welcome to the archive, here you can find a full list of …”

      • John Saddington

        of course! you can add text in the above code outside of the loop.

        • Ben

          Right, I know you can manually add it to the archive page template. Let me try to re-state what I am after.

          Is there a way, when applying a template to a page, to pull in content from the text box in the “host” page for the template. Like suppose I typed a bunch of info in the textbox in this image:

          I would think there’s a way to include a function call in the archive template that will pull in whatever content is living in the page’s text box. Does what I’m saying make sense at all?

          • John Saddington

            yes. you can definitely grab the “content” from the actual post and put it in there. just have your typical loop call and that should be it!

    • Brandon

      Hey, I put some of your tips in to practice and changed the theme and some features on my site! Check it out and let me know what you think!

      I’d love to know your opinion and what you think I shoudl change to make it better…

      • John Saddington

        looks good! where is your archives page?

        • Brandon

          I have not been able to try to implement it yet. I use a, but I think that your WordPress codes might work on it because most of them do… Let me see if I can do that!

          • John Saddington

            sure thing!

    • Meg

      Another great post John. Never thought about having an Archives page, but I can totally see why I should have one after reading your ideas here. Thanks!

      • John Saddington

        sure thing meg!

    • Travis


      I just bought Standard Theme and your instructions and the implementation were incredibly easy. THANKS! I realized that I have way too many categories. I named my “Archives” as “Athenaeum.” It just works.


      • John Saddington

        woot woot!

    • Jon Stem


      Doing it right now!

      • John Saddington


    • Brandon

      I just did the archives page, but it didn’t turn out right at all… I was trying to create it from scratch because I don’t have a WordPress blog. It is on my blog now…I’ll leave it so you can advise me on what to do.

      I appreciate your help! Thanks!

      • John Saddington

        i can’t find it…?

    • Jeff Goins

      Can you do the same thing for contact forms (#3), I mean? I notice that you don’t have one, which I’m assuming is intentional. Why?

      • John Saddington

        you can. sure.

        my contact area (about page) is not perfect… i still will design something around it.

        and, contact forms, in general, don’t really work very well. they break, get hacked, and slow the site. i’m not a fan.

    • Joshua Chase

      Very good tutorial and love the demonstration. John, I was curious, what plugin do you use on your site to shortcode your “” tags when you want to demo the code you use without the script being executed by the server? I like whatever you’re using because it has the line numbers but they don’t get copied over when someone does a copy / paste? Thanks for the awesome content bro!

    • Rich Dixon

      I use The Thesis theme. The template doesn’t include a list of individual posts.

      Any simple way to add that?

      • John Saddington

        the template that i’ve created?

    • sam (@duregger)

      yep. good stuff…. put the everything I’ve ever written in my archive… was looking for something like this!

      Thanks John!

      • John Saddington

        good job man.

    • Jared M

      I tried using your code in a php file, but it looked funny with my theme. I ended up having to modify your code, but it worked. Truthfully, I have never worked with CSS but based on your previous tutorials and a little bit of common sense I made it work. I even changed some features to better reflect what I wanted. I’m amazed at what I’m learning from you! Thanks.

      • John Saddington

        that is awesome! i’m glad i’m able to stretch and challenge you!

    • Jonathan Foster

      I did it! Thanks so much for the info here. I can’t tell you the stuff I’ve learned since finding your blog, John.

      I created the Archives page on my site and now I need to go in and personalize it a bit, but, thanks so much for all the info.

      I have become a tentblogger evangelist.

      Keep the Good Stuff coming!

      • John Saddington

        ah man, thanks! enjoy having you here! share it all because it’s free!

    • Beauty Is Diverse

      Thanks , I just created mine it was so simple. :)

      • John Saddington

        good job!!

    • Justin Lukasavige

      I’ve been on Standard for a few months now. I hadn’t though about this and certainly didn’t think it’d be so easy. I created a site map while I was at it. :)

      • John Saddington

        good stuff!

    • Stevan

      Thanks John! I had been wanting to figure this out.

      • John Saddington

        pretty easy, right?

    • Graham

      Good points John. I added it to my blog. I have gone back and forth on it. Not sure if I wanted it or not but this SEO stuff makes total sense. Also… good idea about using it for myself to find old posts that I like. Totally loving this series John!

      • John Saddington

        sure thing bro! share it with others!

    • Rob Westbrook

      John, got my archive page going. Thanks! But I have a problem. I use your code to generate a list of categories with number of posts. That works fine. However, clicking on any of the categories takes me to a page telling me “No Results Found.” Got any ideas? Maybe there’s something in my setup?

      • John Saddington

        are you using some plugin that gets rid of the “category” line?

        • Rob Westbrook

          Yep. That was it. Some long forgotten plugin hiding specific categories. Thanks! Works great now.

    • Jonny McCormick

      I’ve not long launched my blog, and only recently decided to commit to it. I’m not ready to self-host, or go on yet and therefore don’t have access to the custom pages etc. that your standard theme provides. So i decided to just build my own archives page – it’ll take a lot more maintenance etc. but same effect I hope. thanks for the tips.

      • John Saddington

        wow, good for you!

    • pat torres

      what URL? I dont see an archives templet on page attributes? Im really new to this. I have not clue what I’m doing. I’m using a standard theme… i see archive.php under templates then what?

      • John Saddington

        just follow the instructions… it’s pretty easy! steps above in the post….!

    • Joe Chavez

      You’ve gone and done it again! You are a rockstar.

      Will implement this very soon.

      • John Saddington

        sure thing joe!

    • Rodlie Ortiz

      Hey John: I finally got around to adding an archive page using the built in template with Standard Theme, but it didn’t look right. It’s showing only for 30 days and also shows the number of comments each one has. Any idea?

      • John Saddington

        looks right to me. what’s wrong?

        • Rodlie Ortiz

          Well, it doesn’t look as clean as yours, of course ;)

          I can’t seem to get it to show all the posts ever written like yours does…and it shows the number of comments, which breaks it up to make two lines on many of them…

          • John Saddington

            i customized mine a bit.


          • John Saddington


            i share my code near the bottom of the post……

            • Rodlie Ortiz

              Ahhhh….and do i edit this in the “Archives Page Template” archives.php file or in the “Archives” archive.php file in the template editor section?

            • Rodlie Ortiz

              I actually figured it out and am tweaking now…thx!

              • John Saddington


                i just edited both my sitemap and archive pages… with some “flare”…


    • Dylan Dodson

      Thanks for this! One thing that I cannot figure though; how can you have it so your archive page doesn’t show the comment count next to each post (like you have done on yours)?

      • John Saddington


        i’ve simply removed that piece of code in the archives.php file.

    • Michael

      Hi John,

      I just recently found your site and I have to tell you, I’m so excited about all the learning I am doing that I have had a hard time deciding where to start! I started my site as a way to start learning php and css At any rate, I have followed your instructions and am getting errors. I copied and pasted so I’m not sure what I’ve done wrong. Any chance you could help this newbie out a little?


      • John Saddington

        unless you are using a similar theme as myself copying and pasting the code directly won’t work.

        i use this theme:

    • Michael

      Wow I didn’t realize ow badly I botched this. I had to go back to my themes default yearly archive page for the moment.

      • John Saddington

        cool… do what is best!

        also, i had to fix your web address. you are forgetting “//”

    • Michael

      Yes, making this work with my theme will be a real test of my ability to learn this stuff. Oh well, as they say….ONWARD!

      • John Saddington

        take a look at your page template… start there!

        and yes…

    • Michael

      Woo Hoo! Ok I’ve managed to get the By Month and By Subject (Categories) areas to work with my theme which took all day but I’ve learned a bit :) Now when I try to add the code for ALL posts I get the following error on the page when I load it.

      Fatal error: Function name must be a string in /home/content/37/7895137/html/wp-content/themes/easel/fullarchive.php on line 33

      Here’s the code I added:

      Every Brain Spasm I've Shared:
       - &lt;a href=&quot;"&gt;</a>

      Can you see what I have done wrong?

      Thanks in advance!

    • Michael

      Arggh. My newbie apologies. Apparently the code stuff didn’t work. Im not sure how to show you the code I added…. *sigh*

    • Michael

      Ok I used :) Here’s the link to my fullarchive.php file

      • John Saddington

        i’ll try to take a look at this later this week.

        i’ve got class this week. ;)

        • Michael

          At your leisure sure, uhhh do you have any leisure? ;)
          Your site is so incredibly informative that I am almost having more fun learning WordPress and implementing changes to my site than I am writing!

          • Michael

            In my reply above “sure” should have been “sir”’s late and I just got home from a 17 hour workday :)

            • John Saddington

              can you copy yoru page template and edit taht as a copy? that might work better.

              • John Saddington

                wow. bad spelling x2.

                • Michael

                  Hey John,

                  This is no longer an issue as I have a new theme ;)

                  • John Saddington

                    haha. that theme looks so familiar…

    • Jacob Musselman

      Ok. I’m looking for a little help. I added the template and then published the page. But the page isn’t pulling the rest of the theme or listing the posts. Anyone have suggestions?


      • John Saddington

        did you borrow some of the regular page template?

        • Jacob Musselman

          Nope. Just copied the code from the post. Then added a new page and chose the Archives Page template.

          • John Saddington

            yeah, you have to borrow code from the existing page template since all themes are different.

    • Jacob Musselman

      Thanks! I got most of it worked out.

      • John Saddington

        sweet! well done.

    • Mike Carter

      REALLY basic, and maybe really dumb, question. Could you either direct me or give a short answer? I’ve been doing WP for a while but still do not understand the magic of the Post page and the Archive page. We leave them blank and they work! I can tweak single.php and page.php and the others easily. When I add text to the Archive page or the Post page, none of it shows in the front in the post lists or archive lists. Of course I can add text outside the loop in the template and I’ve done this, but would like to know the how/why of it.

      How do these critters work? Are they the equivalent of reserved words with their own in-built programs?

      Thanks — told you it was an out-there question :)

      • John Saddington

        they are page templates in your theme (i assume i’m answering your question). they are already “pre-formatted” and styled.

    • Mel @ Trailing After God

      Thank you! This was SO easy! I should have done it sooner :)

      Please feel free to stop by: Trailing After God

      • John Saddington

        sweet! rock on!

    • Anshul

      Hi John,

      I am new to WordPress. I have a custom theme for my blog. I followed step 3 for creating the archive page, but it doesn’t work for me. Could you please help me setting this?

      • John Saddington

        which theme?

    • Ryan @ Small House Blog

      You’re a lifesaver! This was the most simple walkthru I’ve seen online thus far. Thanks!

    • Ken

      I just made my Archive page (didn’t think I needed one until reading this post) in Standard Theme. Literally, it took only seconds.

      Thanks for making it so easy John!

      • John Saddington

        you’re welcome! enjoy it!

        • Ken


          Only four days after adding archive and site map pages to by blog, my page views have jumped 55%!!

          • John Saddington

            uh…………….. aWESOME!

    • Austin

      Hilarious! Another reason to be glad I just purchased The Standard Theme!

    • Jason

      I added the archive page (thanks for making that so easy) but can’t figure out how to get the post count beside each category. Any guidance would be appreciated. Thanks, jason

    • Ruben Avila (@rubeneavila)

      I followed your steps and it didn’t work for me. Look at it shows:

      • John Saddington

        you created your own new page file?

    • Joshua Breland (@theDailyBleat)

      Just added it to mine! Standard Theme wins again!

    • sarah

      Hi! I have a question. Is there any way to make an archive page like this using instead of .org? I can’t seem to find any way to do it

      • John Saddington

        unless the theme includes it you can’t really do that.

    • Pingback: How to create wordpress blog for beginner? |