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.
Master Modern WordPress Development 🏆
Get ‘Modern WordPress Fast Track’ today
Become a WordPress Developer Who Can Build Anything
Learn to build high-value block themes and plugins with AI and automation in a focused 10-week course. By the end, you’ll master block themes and plugins, leverage AI assistance, implement automated testing, optimize for scale, and confidently deploy professional WordPress solutions.
Presale is currently open with 40% OFF until May 23rd, 2025. 🚀
Course starts June 1st.
We have prepared special bonuses for everyone who enrolls during this period! 🎁
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.

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

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:

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:

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:

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