Skip to content
WPShout content is free. When you purchase through referral links on our site, we earn a commission. Learn more

Where are WordPress Pages Stored and How to Find Them

It’s a very reasonable question: where are WordPress pages stored? There are a lot of ways to answer it though. Without getting too pedantic, we really need to understand how this question is layered to give a good explanation.

👉 In this quick guide we’ll cover a few different versions of the answer that you might be looking for.

Quick ways to find WordPress pages 🏃‍♂️

I think there are two main reasons why people click on a tutorial like this one, so if you’re in a hurry, I’ll briefly summarize them – with answers.

If you’re looking for where WordPress pages are stored because…

  • You want to edit a specific page (or several pages), then the location you’re looking for is the wp-admin section of your WordPress site. After you log into your site (which for most people will be via yourwebsite.com/wp-admin), you’ll need to look at the lefthand menu. There you’ll find an option for “Pages.” Click on it and then click on “All Pages.” This will show you a list of all the pages on your WordPress site so that you can edit whichever ones you want.
Accessing WordPress Pages via wp-admin.
  • You want to access the server-level location of your WordPress pages (and posts) to download them or make direct changes when the WordPress admin interface isn’t working properly. The actual content of your pages is stored in the WordPress database (typically in the wp_posts table), not as individual files. However, you can access this database through tools like phpMyAdmin which most hosting providers offer through their control panel (cPanel, Plesk, etc.)
Accessing phpMyAdmin via cPanel.

Video: where WordPress pages are located 🎥

In this video I cover in a bit more detail the two answers above. If you’re a visual learner, enjoy!

More about WordPress databases and where to find pages there 🔎

To understand where WordPress stores pages (deeper than the “in the admin area” level) you need to understand that WordPress uses a thing called a “database.” Databases are common in lots of web applications, because they are much faster as a way to store (and retrieve) complex and structured data. Filesystems are great for storing and retrieving large files, but they’re less good at “show me the posts written by Susan in June of 2020.” Databases are great for that type of stuff!

So WordPress relies on a “MySQL” database to store most everything about your site but images and other media files. (While great for small data, databases aren’t really good at storing large files.) Typically, you’ll have nine database tables from WordPress, and most people will name them like wp_options, wp_posts, wp_users, etc. (Strictly speaking, WordPress allows you to set a “database prefix,” so it’s happy to look for the same data in wp234_posts or randomwords_posts.)

Another thing to know about WordPress: under the hood all “post types”—Posts and Page that WordPress always have, and also “Reviews”, “Portfolio Items” etc that you might have added—are the same. To WordPress, for historical reasons, they’re all “posts” in a way. The most important way you’ll see that, they’re ALL stored in the wp_posts table.

How to access the database with phpMyAdmin

To see, modify, etc the WordPress database, most webhosts provide a tool called “phpMyAdmin.” Like WordPress, this a “free” and open source tool, which is why it is so common.

Where you’ll be able to find phpMyAdmin in your WordPress host’s interface will depend on your hosting company.

If your hosting plan included cPanel, then you’ll be able to access it there. It’s typically found in the “Databases” section. Look for the phpMyAdmin icon or link. With other hosting control panels like Plesk or DirectAdmin, it’s usually found in a similar database management section.

There are also some hosts like WP Engine and SiteGround, that have their own proprietary user interfaces. For those you’ll need to dig around to find it, but just about every WordPress host I’ve ever used offers it – meaning that regardless of your specific hosting plan, you’ll most likely have phpMyAdmin.

Inside phpMyAdmin

Once you get into it, you’ll see a list of all the tables in the left sidebar. The one with your pages (and posts) will be in the wp_posts table (you may need to click a “+” to expand the right one). It’ll look a little like this:

Accessing wp_posts from phpMyAdmin.

I mentioned earlier than WordPress only uses 9 database tables. But you probably noticed that I’ve got way more than that. For example, you can see some entries for wp_fluentform and wp_rank_math, which were both generated by two separate plugins. This is because plugins can (and do) often make their own tables for performance reasons.

Using phpMyAdmin’s search function to find specific WordPress pages

If you want to actually find a specific post or page in your WordPress site’s database, phpMyAdmin has a search feature. You’ll find it listed in the horizontal “ribbon” at the top of your page. It’s very powerful and can search for any value in any field.

Here’s an example of what a search might look like:

Using phpMyAdmins search function and search operators to find specific WordPress pages.

Take note of the search operators dropdown menu. It provides different ways to match your search criteria. The most useful ones are:

  • LIKE and LIKE %…% – These are perfect for finding content containing specific words or phrases. The percentage signs (%) act as wildcards, meaning they match any characters. For example, searching for “LIKE %cordyceps%” in the post_title field (as shown in the screenshot) would find all pages with “cordyceps” anywhere in the title.
  • = (equals) – This searches for an exact match. It’s helpful when you need to find content with a precise value, such as posts with a specific status or author ID.
  • != (not equals) – This finds all entries that don’t match your criteria. For instance, you could find all content that isn’t a page by searching for post_type != ‘page’.
  • BETWEEN – Useful for date ranges. You could search for all content published between two specific dates using this operator on the post_date field.
  • REGEXP – For advanced users, this allows pattern matching using regular expressions. It’s powerful when you need to find content following specific patterns, like all pages with numerically-formatted titles.

Understanding the search results

After running your search, phpMyAdmin displays your results in a table format as shown below:

Understanding phpMyAdmin search results.

The green checkmark at the top confirms your search was successful, showing how many rows were found and the time it took to complete.

Just below this, you can see the actual SQL query that was executed:

SELECT * FROM `wp_posts` WHERE `post_title` LIKE '%cordyceps%'Code language: JavaScript (javascript)

This query asked the database to find all entries in the wp_posts table where the post_title contained the word “cordyceps” anywhere in the title.

Looking at the columns also helps you understand how WordPress organizes content in its database. What appears as a single cohesive page on your site is actually stored as separate data fields in this table. These include:

  • ID is the unique identifier WordPress assigns to each piece of content.
  • post_author tells you which user created the content (shown as a user ID number).
  • post_date shows when the content was created.
  • post_content holds the actual content of your pages.
  • post_title contains page titles.
  • post_status shows whether content is published, draft, or in another state.
  • comment_status lets you know whether comments are allowed on this content.

A word of caution on editing pages using phpMyAdmin

While phpMyAdmin provides these powerful search capabilities that let you find any of your WordPress pages, any direct edits to search results should be approached with caution.

This is because modifying content directly in phpMyAdmin is essentially like “sneaking in through the back door.” WordPress won’t know you’ve made changes, and that can result in a whole host of unintended consequences. That doesn’t mean it should never be done. It just means there are specific reasons for doing it and proper ways to go about it. However, that’s outside the scope of this tutorial.

And with that, I think we’ve covered everything that’s relevant about finding out where a WordPress page is located. I welcome comments, but if you have none, good luck!

Don’t forget to join our crash course on speeding up your WordPress site. Learn more below:

Yay! 🎉 You made it to the end of the article!
David Hayes
Share:

1 Comment
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
WebMediacy
January 11, 2022 6:52 am

Thank you so much, I have been having an issue with 404 errors and was looking for a way to remove broken links from the database.

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!