I’m trying to edit or back up my WordPress pages through FTP, but I can’t find the actual page files anywhere in my site folders. I expected to see separate HTML or page files, and now I’m confused about whether WordPress stores pages in the database instead. I need help understanding where WordPress pages are stored and what files I should look for in FTP.
WordPress pages are in the database, not sitting in FTP as page files
I kept seeing people look for a page like /about-us.html inside FTP and getting nowhere. I did the same thing years ago. WordPress does not save normal pages as standalone files on the server. The page text, title, status, dates, and similar data live in the database. When someone opens a URL, WordPress pulls data from the database, runs it through the theme and plugins, and serves the result.
So if your only goal is to find page content, FTP is the wrong place to hunt.
First, get into the database
You need database access before any of this makes sense.
- Sign in to your hosting panel, cPanel, Plesk, or whatever your host gave you.
- Find the Databases area.
- Open phpMyAdmin, or the database tool your host uses instead.
If phpMyAdmin does not auto-log you in, check your database username and password first.
Where I found the database login using FTP
- Connect to the site with your FTP client.
- Open the web root, often
public_html, though some hosts label it differently. - Find
wp-config.php. - Open it with a text editor.
- Look for the database entries, especially
DB_USERandDB_PASSWORD.
Those credentials are usually what you need for phpMyAdmin. You will often see the database name in the same file too, which helps if the host panel shows a pile of databases and you forgot which one belongs to the site.
The table where pages live
Once you're inside phpMyAdmin, pick the WordPress database. You’ll see a list of tables. The main ones are these.
wp_posts
This is the one people usually need. It stores:
- Pages
- Blog posts
- Custom post types
- Titles
- Main content
- Author IDs
- Dates
- Publish status
Yep, pages and posts are mixed into the same table. WordPress separates them by the post_type field.
wp_postmeta
This table holds extra data tied to entries in wp_posts. Common examples:
- Featured image references
- Custom fields
- Builder or editor settings
- Template-related values
If a page looks normal in the editor but odd on the front end, I usually check here after I check the page itself.
wp_term_relationships
This table links content to taxonomy items like categories and tags.
One detail people miss
The prefix is not always wp_. A lot of installs use custom prefixes. So you might see something like abc_posts instead of wp_posts. Same idea, different prefix.
Also, some plugins store their own data in separate tables. Page builders, shop plugins, and form plugins do this a lot.
Why FTP feels misleading here
This part trips people up. You might have a page URL like:
/2020/sample-page/
There is no matching file inside FTP with that path. I checked for this once on a client site and wasted more time than I want to admit. WordPress assembles the page when it loads, using:
- Content from the database
- Theme template files
- Plugin logic
So if you're clicking through folders in FTP hoping to find page text, you won't. You’ll see theme files, plugin files, uploads, and config files, but not a file-per-page setup like older static sites used.
If you want to export pages, skip phpMyAdmin
If the goal is moving content out of WordPress, the dashboard route is easier.
- Open your WordPress admin area.
- Go to Tools → Export.
- Pick what you want to export:
- All content
- Pages only
- Posts only
- Click Download Export File.
WordPress gives you an XML file. One small gotcha, the file does not pack the images into the export. It includes references to them.
FTP clients I’ve used for WordPress file work
Even though page content is in the database, FTP still matters for themes, plugins, uploads, and config files. A few clients come up all the time.
FileZilla
FileZilla is usually the first stop for most people.
- Free
- Open source
- Runs on Windows, Mac, and Linux
- Supports FTP, FTPS, and SFTP
I used it for years for routine stuff like uploading themes or editing a config file. It works. My main complaint was speed when I pushed a lot of files at once. For ordinary tasks, it held up fine.
Commander One for Mac
If you're on macOS and want a more file-manager style setup, Commander One is one option.
- Paid
- Dual-pane layout
- Built-in FTP and SFTP support
- Works with archives like ZIP without forcing you to unpack first
I found this type of layout faster when moving through larger projects. Compressing files, uploading, then checking structure in the same view cuts down on dumb mistakes. At least it did for me.
Cyberduck
Cyberduck gets mentioned a lot too.
- Free
- Open source
- Works on Mac and Windows
- Supports FTP, SFTP, WebDAV, and some cloud connections
I liked the cleaner interface. On the other hand, I ran into transfer weirdness once or twice. Nothing dramatic, still enough where I stopped using it as my main client.
CloudMounter
CloudMounter feels easier if you hate classic FTP apps.
- Runs on Windows and Mac
- Mounts remote storage and FTP like a local drive
- Works through Finder or File Explorer
The drag-and-drop workflow is nice. You browse the server almost like it’s another folder on your machine. If standard FTP windows annoy you, this setup feels less clunky.
What FTP is still good for
FTP still matters. It is not where WordPress stores your page body text, though. I use it for things like:
- Themes
- Plugins
- Uploads
wp-config.phpand other site files
The short answer
If you're trying to locate WordPress page content, look in the database, mainly in wp_posts. If you're browsing FTP for a page file, you're looking in the wrong place. If your goal is backup or migration, the built-in export tool is often the quicker path. Not fancy, still works.
You won’t find page files in FTP because WordPress pages are not stored as separate HTML files. FTP shows you the codebase, not the page records.
What you will see in FTP:
wp-content/themes/, page templates
wp-content/plugins/, plugin files
wp-content/uploads/, images and media
wp-config.php, database connection info
What you will not see:
about.html
contact.html
one file per page
The page content lives in the database, and WordPress renders it on request. @mikeappsreviewer covered the database side well, but I’d push back on editing page content there unless you have no dashboard access. It’s easy to break serialized data from builders.
For backup through FTP, do both parts:
- Download files from FTP
- Export or dump the database
If you only grab FTP files, your pages, posts, menus, and settings are missing. That’s the part ppl miss.
If your goal is editing, use:
- WordPress admin for page text
- FTP for theme templates like page.php, front-page.php, or custom templates
If you’re on Mac, Commander One is solid for this. Easier folder handling than old-school FTP apps, esp if you’re moving theme files and uploads a lot.
So, short version, FTP is for WordPress files. Database is for WordPress page content. You were looking in the wrong place, not doing anything dumb.
You’re not missing some hidden /pages/ folder. WordPress just doesn’t work like a static HTML site.
@mikeappsreviewer and @vrijheidsvogel are right on the main point: the actual page content is not sitting in FTP as separate files. FTP shows the WordPress app files, theme files, plugins, uploads, and config. The page itself is assembled dynamically.
The part I’d slightly disagree on is this idea that you need to go poking around the database first. For backups, sure, the database matters. For editing? Usually no. Editing page content directly in tables is kinda the fast lane to broken builder data, weird formatting, and ‘why did this page explode’ moments.
What FTP does help you find:
wp-content/themes/your-theme/page.phpfront-page.phpsingle.php- custom page templates
- CSS, JS, images, theme parts
So if you’re trying to change layout, structure, header/footer behavior, or template code, FTP is the right place.
If you’re trying to change the words on the page, use:
- WordPress Admin for normal page content
- a database backup/export for safekeeping
- FTP only for the site files
For a real backup, you need both:
- Site files via FTP/SFTP
- Database export via hosting panel or backup plugin
If you only download FTP files, you do not have a full backup. That’s the gotcha ppl keep running into.
Also, the closest thing to “page files” in FTP are templates, not page records. A dozen pages might all use the same page.php, so there’s no one-file-per-page deal.
If you’re on Mac, Commander One is actually pretty nice for this stuff. Easier to browse WordPress folders, compare dirs, and pull down themes/uploads than some clunkier FTP clients. Not magic, just less annoying.
Short version:
- page content = database
- page design/template files = FTP
- full backup = both
So yeah, you were looking for the wrong kind of file, not doing anything stupid.
You’re looking for content in a place that mostly stores machinery.
@vrijheidsvogel, @mike34, and @mikeappsreviewer already covered the core point, but one extra angle helps: WordPress pages are more like database records plus a theme recipe. FTP only shows the recipe files.
So in FTP, think in these buckets:
wp-content/themes/your-theme/= how pages are displayedwp-content/uploads/= media used on pageswp-content/plugins/= features/builders affecting pages- root files like
index.phpandwp-config.php= app setup
What you usually will not find:
- one file for each page
- raw page text stored as
/about-us.phpunless someone made a custom template for that exact page
Small disagreement with the “just use the database” advice: for backup, yes. For editing page content manually in SQL, usually bad idea. Gutenberg blocks, builders, shortcodes, and meta fields can get messy fast.
Best mental model:
- page text/content = database
- page layout/template = FTP
- full recovery = database + FTP files + preferably a backup plugin snapshot
Also worth checking if your host has a File Manager and Backups section. Sometimes that’s easier than raw FTP if your goal is just grabbing a copy.
If you’re on Mac, Commander One is handy for browsing WordPress folders.
Pros:
- dual-pane view
- easier folder comparisons
- less clunky than some FTP apps
- good for themes/uploads cleanup
Cons:
- page content still won’t appear there, because that’s a WordPress thing, not an app limitation
- more useful for file work than database work
- not everyone needs a paid file manager if FileZilla or Cyberduck already does enough
So yeah, no hidden page folder. WordPress is dynamic, not file-per-page.