Archive pages do a lot of quiet work on a WordPress site. They’re the automatically generated listings behind your category links, your tag links, your monthly URLs, and the pages your theme builds without you ever explicitly creating them. Most site owners never think about them directly until something looks wrong: a category page showing the wrong posts, an author archive nobody wants indexed, or a date archive that’s technically working but looks nothing like the rest of the site.
This guide covers how archive URLs are structured, how to reach each type directly, and how to actually customize them once you know where they live.
What an Archive Page Is, Specifically
An archive page is any WordPress-generated listing that pulls posts together by a shared attribute rather than being a single piece of content someone wrote. WordPress builds these automatically the moment the underlying data exists: create a category, and its archive page exists immediately, even with zero posts assigned to it yet.
The main types are date archives (grouped by year, month, or day), category archives, tag archives, author archives, and custom taxonomy or custom post type archives if your site uses either. Each type follows its own URL pattern and, if your theme supports it, its own template file.
Reaching Each Archive Type Directly
Assuming the common Post Name permalink structure, these are the URL patterns WordPress uses by default.
Date archives: yourdomain.com/2026/ shows everything published that year. Add a month: yourdomain.com/2026/08/. Add a day: yourdomain.com/2026/08/06/. These stack, and each level is a valid, separately reachable archive.
Category archives: yourdomain.com/category/category-slug/. If you have a category called “Tutorials,” its archive sits at yourdomain.com/category/tutorials/ by default, listing every post assigned to that category, most recent first.
Tag archives: yourdomain.com/tag/tag-slug/. Functionally similar to categories but generally used for more specific, cross-cutting labels rather than the primary organizational hierarchy.
Author archives: yourdomain.com/author/username/. Every post by that specific author, useful on multi-contributor sites, often unnecessary and sometimes unwanted on single-author blogs where it just duplicates the homepage.
Custom taxonomy archives: if a plugin or your theme registers a custom taxonomy, its archive typically follows yourdomain.com/taxonomy-slug/term-slug/, though the exact pattern depends on how the taxonomy was registered.
Custom post type archives: for a custom post type like “Portfolio,” the archive usually lives at yourdomain.com/portfolio/, assuming the post type was registered with has_archive set to true. If it wasn’t, no archive page exists at all, and you’ll get a 404 no matter what URL pattern you try.
Why the URL Structure Might Look Different on Your Site
If your permalink settings use something other than Post Name, under Settings, then Permalinks, in your dashboard, these URLs shift accordingly. A “Plain” permalink structure produces archive URLs with query strings instead of clean paths, and a custom structure can reposition where the category or tag segment appears. Check your actual Permalinks settings before assuming the patterns above will match exactly.
It’s also worth knowing that changing your permalink structure after a site has been live for a while breaks every previously indexed archive URL unless you set up redirects, which is a bigger SEO risk than most site owners expect from what looks like a small settings tweak.
Customizing How Archive Pages Look
WordPress ships with default archive rendering, usually a simple list of post titles and excerpts, but most themes override this, and you can go further with your own template files following WordPress’s template hierarchy.
The hierarchy checks for increasingly specific template files before falling back to more general ones. For a category archive, WordPress looks for category-slug.php, then category-ID.php, then category.php, then archive.php, then finally index.php if nothing more specific exists. The same pattern applies to tags (tag.php), authors (author.php), and custom taxonomies.
To build a custom category page, create category.php inside your active theme’s folder (or better, a child theme, so an update to the parent theme doesn’t wipe your changes). A minimal working example:
<?php get_header(); ?>
<h1><?php single_cat_title(); ?></h1>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div><?php the_excerpt(); ?></div>
<?php endwhile; endif; ?>
<?php get_footer(); ?>
This is intentionally bare. Real themes add featured images, post meta, category descriptions, and styling, but the structural pattern, the WordPress Loop wrapped in have_posts() and the_post(), stays the same regardless of complexity.
Adding Useful Widgets to Archive Pages
If your theme has a sidebar or widget area that appears on archive pages, Appearance, then Widgets, is where you configure what shows up there. A category list, a tag cloud, a search box, or a “recent posts” widget all help visitors navigate once they’ve landed on an archive rather than dead-ending on a list with no obvious next step.
Not every theme applies the same widget area to every archive type, so check each archive type individually after making changes rather than assuming a change to one propagates everywhere.
SEO Considerations for Archive Pages
Archive pages generate a lot of near-duplicate content almost by definition, since the same post excerpt can appear on a category archive, a tag archive, a date archive, and the homepage all at once. Search engines generally handle this fine through canonical tags, but it’s worth being deliberate about which archive types actually deserve to be indexed.
Author archives are the most commonly over-indexed type on single-author or small-team sites, since they just repeat content that’s already indexed elsewhere without adding anything unique. In Yoast SEO or Rank Math, under the Archives or Search Appearance settings, you can set author archives to noindex without affecting how the rest of the site is crawled.
Tag archives deserve similar scrutiny, especially on sites where tags were applied loosely over the years and now generate dozens of thin archive pages with only one or two posts each. A tag archive with a single post rarely earns its own place in search results and mostly just dilutes the site’s overall content quality signal.
Date archives are usually low value for SEO on a typical blog and are frequently set to noindex as well, since almost nobody searches by publish month, and the same content is already reachable and indexed through category or tag pages.
Adding Pagination to Archive Pages
By default, WordPress lists a set number of posts per archive page, ten unless changed under Settings, then Reading. Beyond that count, visitors need pagination to reach older posts.
Most modern themes include pagination automatically. If yours doesn’t, or you’re building a custom archive template, add it manually with the built-in function:
<?php the_posts_pagination(array(
'mid_size' => 2,
'prev_text' => __('Previous', 'textdomain'),
'next_text' => __('Next', 'textdomain'),
)); ?>
Place this after the loop, inside the same template file. Without it, visitors on an archive with more posts than fit on one page have no way to reach the rest short of manually editing the URL, which almost nobody will do.
Handling Empty Archives Gracefully
An archive page with zero posts, a freshly created category nobody’s assigned anything to yet, or a tag that’s since had all its posts removed, defaults to a blank or minimal page in most themes. That’s a poor experience for anyone who lands there from an old link or a search result.
Wrap your loop in a proper conditional and add a fallback message:
<?php if (have_posts()) : while (have_posts()) : the_post();
// display post
endwhile; else : ?>
<p>No posts found in this section yet.</p>
<?php endif; ?>
A genuinely empty archive with no fallback message and no navigation elsewhere often reads as a broken page rather than an intentional one, especially to a first-time visitor who has no context for why it’s empty.
Archive Feeds: The Part Almost Nobody Checks
Every archive type also generates its own RSS feed automatically, and this is one of the more overlooked parts of the system. Append /feed/ to any archive URL, yourdomain.com/category/tutorials/feed/, for instance, and WordPress serves an RSS feed scoped to just that category. Readers who only care about one section of a site can subscribe to that narrower feed instead of the full site feed, which matters more on sites with distinct content verticals than most owners realize when they’re only thinking about the visual archive page itself.
This is worth testing directly if your site has meaningfully different content categories. A photography blog that also covers gear reviews and personal essays benefits from letting readers subscribe to just one of those, rather than forcing everyone into a single undifferentiated feed that mixes content they came for with content they didn’t.
A Real Example: Fixing a Messy Category Structure
A common scenario worth walking through end to end. A site has been running for several years with categories added inconsistently: some overlapping (“WordPress Tips” and “WordPress Tutorials” covering nearly the same ground), some nearly empty (a category with two posts from three years ago), and a few genuinely useful ones buried among the noise.
The fix isn’t deleting categories carelessly, since that can 404 URLs that still get external traffic. Start by pulling a full list of categories with post counts, visible under Posts, then Categories, in the dashboard. Merge near-duplicate categories using the “Categories” bulk edit feature or by reassigning posts manually, then set up 301 redirects from the old category archive URL to whichever surviving category now covers that content. Only after redirects are confirmed working should the empty, now-unused category actually be deleted.
This kind of cleanup often takes an afternoon on a site with a few dozen categories, and it noticeably improves both the navigation experience and the archive pages’ collective SEO value, since visitors and crawlers alike stop hitting thin, overlapping, or dead-end category pages.
Custom Taxonomies in More Depth
If you’re running a plugin that registers its own taxonomy, a real estate plugin adding “Property Type,” a directory plugin adding “Business Category,” that taxonomy gets its own archive pages automatically, following the same template hierarchy rules as built-in categories and tags. The template file naming just changes to match: taxonomy-your-taxonomy-slug.php for a template covering every term within that taxonomy, or taxonomy-your-taxonomy-slug-specific-term.php for one specific term.
Check your taxonomy’s registration code (or the plugin’s documentation) for the exact rewrite slug it uses, since plugin authors sometimes register taxonomies with URL slugs that don’t match the taxonomy’s internal name, which is a common source of confusion when trying to guess an archive URL directly instead of just clicking through to it from the site itself.
Combining Archive Types Isn’t Supported Out of the Box
A frequent request is something like “show me all posts from 2026 that are also in the Tutorials category,” combining a date archive and a category archive into one filtered view. WordPress doesn’t generate a URL for this combination automatically. Getting it requires either a custom query in a template file using WP_Query with both date and category parameters, or a plugin that adds faceted filtering on top of the existing archive system.
For most sites this is unnecessary complexity. A well-organized category structure with clear, non-overlapping categories usually gets visitors to what they want faster than a filterable combination archive would, and it’s a lot less code to maintain.
Common Mistakes With Archive Pages
The most frequent one is leaving every archive type indexable by default without ever reviewing what that produces. A site with heavy tagging can end up with hundreds of thin tag archives competing for search visibility against the site’s actual cornerstone content, quietly working against its own SEO rather than for it.
The second is forgetting that a permalink structure change breaks archive URLs retroactively. Old category or tag links shared on social media, saved in someone’s bookmarks, or linked from other sites all point to a URL pattern that no longer resolves once the structure changes, unless redirects are set up in advance.
The third is building a custom archive template once and never revisiting it as the theme’s overall design evolves. It’s common to find a category.php file frozen in an older visual style while the rest of the site has moved through two redesigns since, because nobody remembered the custom template existed separately from the theme’s general styling.
One More Thing Worth Checking: Archive Descriptions
Categories and tags both support an optional description field, set under Posts, then Categories or Tags, that many themes display at the top of the corresponding archive page above the post list. This is small, easily forgotten real estate that’s worth using deliberately rather than leaving blank.
A short, genuinely useful description, what this category covers, what kind of posts to expect, helps a visitor landing directly on an archive page from a search result understand where they are immediately, without needing to click into an individual post first to get their bearings. It also gives search engines additional context about the archive’s topic, which matters more for categories that get meaningful search traffic in their own right rather than functioning purely as internal navigation.
Frequently Asked Questions
Can I create a custom archive page for something that isn’t a category, tag, or post type?
Not directly through core WordPress; archives are tied to taxonomies and post types by design. If you need a curated listing page that isn’t automatically generated, a regular Page with a custom query, or a page builder’s post grid feature, gets you similar results without relying on the archive system.
Why does my category archive show posts from a subcategory too?
This is default WordPress behavior. Posts assigned to a child category also display on the parent category’s archive automatically, following the taxonomy hierarchy, since WordPress treats a subcategory as included within its parent by definition.
Do I need a separate template for every single category, or can one template handle all of them?
One category.php handles every category by default, using dynamic tags like single_cat_title() to pull in the correct name and description for whichever category is currently being viewed. You only need category-slug.php for a specific category that needs a genuinely different layout from the rest.
Is it bad for SEO to have archive pages at all?
No. Category and well-curated tag archives are often useful, legitimately indexable pages that help both users and search engines understand your site’s structure. The SEO risk comes from low-value archive types (thin tags, author pages, date pages) being indexed without review, not from archives as a concept.
Do archive pages count against my post count or storage in any way?
No. Archive pages are generated dynamically from existing posts and terms; they don’t consume separate storage or count as content in their own right. Deleting an archive page isn’t something you do directly, since it’s a byproduct of the category, tag, or post type existing at all.
What happens to an archive page if I delete every post assigned to that category?
The category itself still exists unless you delete it separately, and its archive page still resolves, just showing the empty state discussed earlier instead of a 404. The archive URL only breaks entirely if you delete the category or taxonomy term itself.
Can search engines find archive pages if I never link to them in my navigation menu?
Yes, if the URLs are included in your XML sitemap, which most SEO plugins do automatically for category and tag archives unless you’ve explicitly excluded them. A page not linked in navigation can still be crawled and indexed through the sitemap or through internal links inside individual posts.
Getting the Most Out of Archive Pages
Archive pages aren’t just plumbing behind the scenes. Once you know where each type lives and how the template hierarchy resolves them, they become one of the more effective tools for helping visitors navigate a growing site without hand-building a single navigation page for every section. Spend the time customizing the templates that matter most, category and, if relevant, custom post type archives, and be deliberate about which types actually deserve to be indexed rather than leaving every default setting untouched.