Where are WordPress Pages Stored & 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 a few different levels of the questions to really give a good answer. In this Quick Guide we’ll cover a few different of the answers you may be seeking.
Quick Ways to Find WordPress Pages
I think there are two quick answers you might come to this tutorial for, so I’ll briefly summarize them for people in a hurry.
- WordPress Pages are stored by the CMS (content-management system). So the quick way to find and modify them is to go into the “backend” of your WordPress site and look in the left-side menu for “Pages.” There you’ll find them.
- WordPress (Posts and) Pages are stored in the MySQL (compatible) database that WordPress relies on. Within that, even “Pages” (or other WordPress “custom post types”) are stored in the
wp_poststable of the database. You’ll typically access these with a tool like phpMyAdmin.
Where WordPress Pages are Located, The Video
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_users, etc. (Strictly speaking, WordPress allows you to set a “database prefix,” so it’s happy to look for the same data in
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
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 is hard for me to say for sure. But just about every WordPress host I’ve ever used does offer it. For example, here’s where it’s found on WPEngine:
Once you get into phpMyAdmin, you’ll see all a list of all the tables in the left sidebar (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 I’ve got way more than that. That’s because plugins can (and do) often make their own tables for performance reasons.
If you want to actually find I 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, I’ve highlighted some example of what a search might look like in the following image:
The one thing I’ll highlight, a “LIKE %…%” query is slightly more permissive than “LIKE” query (allowing anything before and after what you search for), and both of these are a lot less friendly than you might guess. Think of them more like the simplistic “Search in page…” feature of your web browser, vs the gentle “Did you mean…?” that you get from Google and other search engines.
And with that, I think we’ve covered everything I think relevant about finding out where a WordPress page is located. I welcome comments, but if you have none, good luck!