{"id":2144,"date":"2026-08-23T13:15:54","date_gmt":"2026-08-23T10:15:54","guid":{"rendered":"https:\/\/allinonewpsettings.com\/blog\/?p=2144"},"modified":"2026-10-18T05:20:21","modified_gmt":"2026-10-18T02:20:21","slug":"wordpress-wp-postmeta-table-is-huge-causes-and-cleanup","status":"publish","type":"post","link":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/","title":{"rendered":"Why the WordPress wp_postmeta Table Gets So Large"},"content":{"rendered":"<p>Your wp_postmeta table is large because a handful of meta keys are large. It is almost never &#8220;WordPress in general&#8221;, and it is rarely the orphaned rows that cleanup guides start with. Find the keys first. The query takes a second, and it tells you whether you are looking at a page builder, a shop, an image library or a plugin you removed two years ago.<\/p>\n<p>Each of those gives you a different answer, and only some of them are deletions.<\/p>\n<div class=\"aiows-article-toc\" style=\"margin: 28px 0; padding: 20px 22px; border: 1px solid #dcdcde; border-radius: 12px; background: #fafafa;\"><strong style=\"display: block; margin-bottom: 10px; font-size: 18px;\">Table of contents<\/strong><\/p>\n<ol style=\"margin: 0 0 0 20px;\">\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#measure\">Measure it before you clean it<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#heavy-keys\">Which keys are usually the heavy ones<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#orphans\">Orphaned rows: meta whose post is gone<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#revisions\">Revisions carry meta too<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#leftovers\">Keys left behind by removed plugins<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#delete\">Deleting one key without collateral damage<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#disk-space\">Why the table does not shrink on disk<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#verification\">Verification<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#aiows\">AIOWS Database Cleaner<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#faq\">FAQ<\/a><\/li>\n<li><a style=\"color: inherit; text-decoration: underline; text-underline-offset: 2px;\" href=\"#official-sources\">Sources<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"measure\" style=\"scroll-margin-top: 96px;\">Measure it before you clean it<\/h2>\n<p>Run two read-only queries in phpMyAdmin, Adminer or your host&#8217;s database tool. Nothing below changes your data until the section on deleting.<\/p>\n<p>First, check your table prefix. It is <code>$table_prefix<\/code> in <code>wp-config.php<\/code>, and it is often not <code>wp_<\/code>. Every query in this article uses <code>wp_<\/code>; replace it with yours.<\/p>\n<p>How big is the table, and how much of it is free space?<\/p>\n<pre><code>SELECT table_name,\n       ROUND(data_length \/ 1048576, 1)  AS data_mb,\n       ROUND(index_length \/ 1048576, 1) AS index_mb,\n       ROUND(data_free \/ 1048576, 1)    AS free_mb,\n       table_rows\nFROM information_schema.tables\nWHERE table_schema = DATABASE()\n  AND table_name = &#x27;wp_postmeta&#x27;;<\/code><\/pre>\n<p><code>table_rows<\/code> is an estimate for InnoDB tables. Use it to judge your scale, not for your before-and-after comparisons.<\/p>\n<p>Which keys hold the space?<\/p>\n<pre><code>SELECT meta_key,\n       COUNT(*)                                   AS rows_count,\n       ROUND(SUM(LENGTH(meta_value)) \/ 1048576, 2) AS value_mb\nFROM wp_postmeta\nGROUP BY meta_key\nORDER BY value_mb DESC\nLIMIT 25;<\/code><\/pre>\n<p>Write down your top five keys with their row counts and sizes. You will compare against this list at the end.<\/p>\n<p>If every row shows 0.00, that is your answer too: your space is not in <code>wp_postmeta<\/code>. The small test site for this article had 136 rows, and every key rounded to 0.00 MB.<\/p>\n<h2 id=\"heavy-keys\" style=\"scroll-margin-top: 96px;\">Which keys are usually the heavy ones<\/h2>\n<p>The prefix of a key tells you who wrote it. A leading underscore hides it from your custom-fields box. It does not tell you the key is unimportant.<\/p>\n<div class=\"aiows-article-table\" style=\"margin: 16px 0; overflow-x: auto;\">\n<table style=\"width: 100%; border-collapse: collapse;\">\n<thead>\n<tr>\n<th style=\"text-align: left; padding: 8px 10px; border: 1px solid #dcdcde; background: #fafafa;\" scope=\"col\">Key pattern<\/th>\n<th style=\"text-align: left; padding: 8px 10px; border: 1px solid #dcdcde; background: #fafafa;\" scope=\"col\">Written by<\/th>\n<th style=\"text-align: left; padding: 8px 10px; border: 1px solid #dcdcde; background: #fafafa;\" scope=\"col\">What it holds<\/th>\n<th style=\"text-align: left; padding: 8px 10px; border: 1px solid #dcdcde; background: #fafafa;\" scope=\"col\">Safe to delete?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_elementor_data<\/code>, <code>_elementor_*<\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Elementor<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">The whole page layout as JSON, per page and per revision<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">No. This is your page.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_wp_attachment_metadata<\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">WordPress core<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Sizes and file names of every image size<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">No. Images lose their sizes.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_oembed_<em><\/code>, <code>_oembed_time_<\/em><\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">WordPress core<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Cached embed HTML for pasted URLs<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Yes. WordPress fetches it again on the next view.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_edit_lock<\/code>, <code>_edit_last<\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">WordPress core<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Who is editing, and who last edited<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Harmless either way, and tiny.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_yoast_wpseo_<em><\/code>, <code>rank_math_<\/em><\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">SEO plugins<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Titles, descriptions, scores<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">No, while the plugin is in use.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_price<\/code>, <code>_regular_price<\/code>, <code>_sku<\/code>, <code>_stock<\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">WooCommerce<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Product data<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">No.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><code>_billing_<em><\/code>, <code>_order_<\/em><\/code>, <code>_customer_ip_address<\/code><\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">WooCommerce, older order storage only<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Orders and your customers&#8217; details<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">No.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">anything from a plugin you removed<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">that plugin<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">its settings per post<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Only after the check in <a href=\"#leftovers\">Keys left behind<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>If your top key is a page builder&#8217;s, the table is large because your pages are large. Deleting will not fix that for you; trimming revisions might. If it is <code>_oembed_*<\/code>, you can clear it safely. If it is a key you do not recognise, read the leftovers section before you touch it.<\/p>\n<p>If you run a shop, check where WooCommerce keeps your orders before you read order keys in this list. You find it under <strong>WooCommerce<\/strong> > <strong>Settings<\/strong> > <strong>Advanced<\/strong> > <strong>Features<\/strong>, as &#8220;Order data storage&#8221;. On the test site with WooCommerce 11.2.1: &#8211; with <strong>WordPress posts storage (legacy)<\/strong>, one order wrote 25 rows to   <code>wp_postmeta<\/code>, six of them <code>_billing_*<\/code>; &#8211; with <strong>High-performance order storage<\/strong>, a new order wrote none. Its address   went to the <code>wc_order_addresses<\/code> table instead.<\/p>\n<p>Products keep their meta in <code>wp_postmeta<\/code> either way. Switching to the new storage left the old order&#8217;s rows where they were, and WooCommerce listed that order as one to clean up.<\/p>\n<h2 id=\"orphans\" style=\"scroll-margin-top: 96px;\">Orphaned rows: meta whose post is gone<\/h2>\n<p>An orphaned row has a <code>post_id<\/code> that no longer exists in <code>wp_posts<\/code>. WordPress does not create them on its own: when you delete a post, <code>wp_delete_post()<\/code> deletes its meta with it. Orphans come from posts someone removed by SQL, from imports that failed halfway, and from plugins that delete their own post types the wrong way.<\/p>\n<p>Count them before you assume you have any:<\/p>\n<pre><code>SELECT COUNT(*) AS orphaned_rows,\n       ROUND(SUM(LENGTH(pm.meta_value)) \/ 1048576, 2) AS orphaned_mb\nFROM wp_postmeta pm\nLEFT JOIN wp_posts p ON p.ID = pm.post_id\nWHERE p.ID IS NULL;<\/code><\/pre>\n<p>If the result is a few hundred rows and a fraction of a megabyte, orphans are not your problem. Clean them anyway if you like, but go back to the key list. If the result is a large share of the table, you have found your cause.<\/p>\n<p>If you want to check the other meta tables too, <a href=\"https:\/\/allinonewpsettings.com\/blog\/how-to-find-orphaned-metadata-in-wordpress\/\" target=\"_blank\" rel=\"noopener noreferrer\">how to find orphaned metadata in WordPress<\/a> walks you through them.<\/p>\n<h2 id=\"revisions\" style=\"scroll-margin-top: 96px;\">Revisions carry meta too<\/h2>\n<p>Every revision you save is a row in <code>wp_posts<\/code> with <code>post_type = 'revision'<\/code>. Page builders store a copy of their layout meta against many of those revisions. If your page has 60 revisions, it can carry 60 copies of its <code>_elementor_data<\/code>.<\/p>\n<p>Count them per parent before you delete anything:<\/p>\n<pre><code>SELECT p.post_parent, COUNT(*) AS revisions\nFROM wp_posts p\nWHERE p.post_type = &#x27;revision&#x27;\nGROUP BY p.post_parent\nORDER BY revisions DESC\nLIMIT 10;<\/code><\/pre>\n<p>Delete your revisions through WordPress, a plugin or WP-CLI, not with a bare <code>DELETE FROM wp_posts<\/code>. The WordPress route removes their meta with them. The SQL route leaves that meta behind as orphans, and you are back in the previous section.<\/p>\n<p>To stop the growth, set a limit in your <code>wp-config.php<\/code>:<\/p>\n<pre><code>define( &#x27;WP_POST_REVISIONS&#x27;, 10 );<\/code><\/pre>\n<p>You will find the full procedure in <a href=\"https:\/\/allinonewpsettings.com\/blog\/how-to-delete-old-wordpress-post-revisions-safely\/\" target=\"_blank\" rel=\"noopener noreferrer\">how to delete old WordPress post revisions safely<\/a>.<\/p>\n<h2 id=\"leftovers\" style=\"scroll-margin-top: 96px;\">Keys left behind by removed plugins<\/h2>\n<p>This is where you can get hurt. A key you do not recognise looks like rubbish, and sometimes it belongs to something you still run: a theme option, a snippet in your <code>functions.php<\/code>, or a plugin whose name has nothing in common with the key.<\/p>\n<p>Before you delete a key, establish three things:<\/p>\n<ol>\n<li><strong>Who wrote it.<\/strong> Search your installed code for the key name. With WP-CLI    or shell access: <code>grep -r \"your_meta_key\" wp-content\/<\/code>. If you get no result    in <code>wp-content<\/code>, that is a strong sign that nothing active reads it.<\/li>\n<li><strong>That nothing reads it.<\/strong> A result in a plugin you no longer use is fine.    A result in your active theme or a must-use plugin means stop.<\/li>\n<li><strong>How many posts carry it.<\/strong> A key on every one of your posts is a setting.    A key on twelve posts from 2019 is a leftover.<\/li>\n<\/ol>\n<p>Deactivating a plugin does not remove its meta. When you delete it through the Plugins screen, you run its uninstall routine, if it has one. Many plugins do not.<\/p>\n<h2 id=\"delete\" style=\"scroll-margin-top: 96px;\">Deleting one key without collateral damage<\/h2>\n<p>Take a database backup first, and make sure you can restore it. That is the step that makes every other mistake here recoverable. If you have not restored one before, <a href=\"https:\/\/allinonewpsettings.com\/blog\/wordpress-database-only-backup\/\" target=\"_blank\" rel=\"noopener noreferrer\">create a WordPress database backup and verify the SQL export<\/a> shows how.<\/p>\n<p>Then work one key at a time. Run your <code>SELECT<\/code> and read its count. Then run your <code>DELETE<\/code> with exactly the same <code>WHERE<\/code>:<\/p>\n<pre><code>SELECT COUNT(*) FROM wp_postmeta WHERE meta_key = &#x27;old_plugin_key&#x27;;\n\nDELETE FROM wp_postmeta WHERE meta_key = &#x27;old_plugin_key&#x27; LIMIT 5000;<\/code><\/pre>\n<p>Repeat the <code>DELETE<\/code> until it reports 0 affected rows. The <code>LIMIT<\/code> keeps each statement short, so your shared host&#8217;s query timeout does not stop it halfway. If a long run stops anyway, see <a href=\"https:\/\/allinonewpsettings.com\/blog\/wordpress-database-cleanup-stuck-or-timed-out\/\" target=\"_blank\" rel=\"noopener noreferrer\">database cleanup stuck or timed out<\/a>.<\/p>\n<p>For cached embeds, use a pattern rather than a list:<\/p>\n<pre><code>DELETE FROM wp_postmeta WHERE meta_key LIKE &#x27;\\_oembed\\_%&#x27; LIMIT 5000;<\/code><\/pre>\n<p>You need the backslashes. In <code>LIKE<\/code>, an unescaped underscore matches any single character, so <code>'_oembed_%'<\/code> also matches keys you did not mean.<\/p>\n<h2 id=\"disk-space\" style=\"scroll-margin-top: 96px;\">Why the table does not shrink on disk<\/h2>\n<p>After a large delete, you will often see the table&#8217;s data size stay the same. InnoDB keeps the freed pages for reuse instead of returning them to your file system. The first query in this article shows them to you as <code>free_mb<\/code>.<\/p>\n<p><code>OPTIMIZE TABLE wp_postmeta;<\/code> rebuilds the table and gives that space back when your server stores each table in its own file. That is the default on current MySQL and MariaDB. On a big table the rebuild takes time and may lock your writes while it runs, so do it at a quiet hour. <a href=\"https:\/\/allinonewpsettings.com\/blog\/how-to-optimize-wordpress-database-tables-safely\/\" target=\"_blank\" rel=\"noopener noreferrer\">How to optimize WordPress database tables safely<\/a> gives you the details.<\/p>\n<p>You do not need to optimize after every cleanup. Free space inside the table is reused by your next inserts. It only matters when you need the disk back, for example because <a href=\"https:\/\/allinonewpsettings.com\/blog\/wordpress-backup-fails-because-disk-space-is-full\/\" target=\"_blank\" rel=\"noopener noreferrer\">a backup fails because the disk is full<\/a>.<\/p>\n<h2 id=\"verification\" style=\"scroll-margin-top: 96px;\">Verification<\/h2>\n<p>Your cleanup is finished when the numbers moved and the site did not.<\/p>\n<div class=\"aiows-article-table\" style=\"margin: 16px 0; overflow-x: auto;\">\n<table style=\"width: 100%; border-collapse: collapse;\">\n<thead>\n<tr>\n<th style=\"text-align: left; padding: 8px 10px; border: 1px solid #dcdcde; background: #fafafa;\" scope=\"col\">Check<\/th>\n<th style=\"text-align: left; padding: 8px 10px; border: 1px solid #dcdcde; background: #fafafa;\" scope=\"col\">Expected<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Run the key-size query again<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">The keys you deleted are gone from the list. The others have the same row counts as before.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Run the orphan count again<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">0, if you cleaned orphans.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Open three pages: one built with your page builder, one with images, and one product if you run a shop<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">All three look exactly as before.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\">Pick one meta row of a live post that you did not target, and count its key before and after<\/td>\n<td style=\"padding: 8px 10px; border: 1px solid #dcdcde; vertical-align: top;\"><strong>Must not change.<\/strong> If it dropped, your <code>WHERE<\/code> was wider than you thought. Restore the backup.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>The last row is the one you cannot skip. A cleanup that removes the right rows proves nothing on its own. It has to leave the wrong rows alone too, and only a before-and-after count of a key you did not target shows that.<\/p>\n<p>On the test site the fourth row held both times. After a Database Cleaner run, the untargeted key stayed at 7 rows and a decoy key that an unescaped pattern would match stayed at 1. After the manual <code>DELETE<\/code> above, typed exactly as printed, 3 rows went, the untargeted key stayed at 14 and the decoy at 2. Without the backslashes, the same pattern matched 5 rows, the decoys included.<\/p>\n<section class=\"aiows-blog-cta\" style=\"margin: 38px 0; padding: 28px; border: 1px solid #cddcff; border-radius: 16px; background: #f6f9ff;\" aria-labelledby=\"aiows\">\n<p style=\"margin: 0 0 8px; font-size: 13px; font-weight: 800; letter-spacing: .05em; color: #1746a2;\">How AIOWS helps:<\/p>\n<h2 id=\"aiows\" style=\"margin: 0 0 14px; scroll-margin-top: 96px;\">AIOWS Database Cleaner<\/h2>\n<p>Database Cleaner takes the routine part of this article off your hands, so your attention goes to the part that needs it.<\/p>\n<p><strong>It runs the deletions that need no judgement.<\/strong> Two of its eleven tasks are the safe ones from this article. Orphaned Post Meta removes the <code>wp_postmeta<\/code> rows whose post no longer exists, and nothing else. oEmbed Cache removes the <code>_oembed_<\/code> keys with the underscore escaped, so the <code>LIKE<\/code> trap above cannot catch you. Post Revisions deletes through WordPress itself, which takes each revision&#8217;s meta with it. It can also keep the newest revisions of every post.<\/p>\n<p><strong>It shows you the count first.<\/strong> Each task shows how many rows it would remove, counted with the same conditions as the delete. You cannot select a task that has nothing to remove. Before Orphaned Post Meta runs, the confirmation lists the keys with the most orphaned rows and the post IDs they pointed to. That is your last look at what the orphans were.<\/p>\n<p><strong>It backs up first, every time.<\/strong> Each cleanup starts with a backup of the tables it touches. If that backup cannot be written, nothing is deleted.<\/p>\n<p><strong>It keeps optimizing separate.<\/strong> Optimize Tables is its own button. Run your cleanup, compare your numbers, and give the disk space back when you choose.<\/p>\n<figure class=\"aiows-article-figure\" style=\"margin: 28px 0;\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-8743\" style=\"display: block; max-width: 100%; height: auto; border: 1px solid #dcdcde; border-radius: 12px;\" src=\"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/10\/p12-2144-dbc-tasks-en.webp\" alt=\"Database Cleaner&#x27;s task list with the count for each task; tasks with nothing to remove are greyed out.\" width=\"1994\" height=\"1178\" \/ fetchpriority=\"high\" loading=\"eager\" srcset=\"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/10\/p12-2144-dbc-tasks-en.webp 1994w, https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/10\/p12-2144-dbc-tasks-en-300x177.webp 300w, https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/10\/p12-2144-dbc-tasks-en-1024x605.webp 1024w, https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/10\/p12-2144-dbc-tasks-en-768x454.webp 768w, https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/10\/p12-2144-dbc-tasks-en-1536x907.webp 1536w\" sizes=\"(max-width: 1994px) 100vw, 1994px\" \/><figcaption style=\"margin: 8px 0 0; font-size: 14px; line-height: 1.5; color: #50575e;\">Every task shows its count before you select it.<\/figcaption><\/figure>\n<p>The confirmation for Orphaned Post Meta read, word for word:<\/p>\n<pre><code>This action will first create a database backup, then permanently delete the selected items. Are you sure?\n\nOrphaned post meta rows that will be deleted, by key:\norphan_test_0 \u00d717\norphan_test_1 \u00d717\norphan_test_2 \u00d716\npost IDs 100.006\u2013100.010, 5 objects<\/code><\/pre>\n<p>Its limits, stated plainly. It does not decide which meta keys of your live posts are leftovers. Keys left by removed plugins, duplicate rows, and orphaned term or user meta are not among its tasks. Those stay with you, one key at a time, as the leftovers section describes. It does not delete trashed media, because a database backup cannot bring the files back. Empty the Media Library trash yourself. And it cannot tell you why your table grew. The key-size query at the top of this article does that, and it is worth running before any tool.<\/p>\n<p style=\"margin-bottom: 0;\"><a style=\"display: inline-block; padding: 11px 17px; margin: 6px 8px 0 0; border-radius: 8px; background: #1557ff; color: #fff; text-decoration: none; font-weight: bold;\" href=\"https:\/\/allinonewpsettings.com\/features\/database-cleaner\" target=\"_blank\" rel=\"noopener noreferrer\">Explore AIOWS Database Cleaner<\/a><a style=\"display: inline-block; padding: 10px 16px; margin: 6px 8px 0 0; border: 1px solid #1557ff; border-radius: 8px; color: #1557ff; text-decoration: none; font-weight: bold; background: #fff;\" href=\"https:\/\/allinonewpsettings.com\/pricing\" target=\"_blank\" rel=\"noopener noreferrer\">Compare AIOWS plans<\/a><\/p>\n<\/section>\n<h2 id=\"faq\" style=\"scroll-margin-top: 96px;\">FAQ<\/h2>\n<p><strong>Is a 500 MB wp_postmeta table a problem?<\/strong> Not by itself. It matters when your queries that read it get slow, or when your backups and disk suffer. The key list tells you whether the size is content you need or data you can drop.<\/p>\n<p><strong>Can I delete all meta keys that start with an underscore?<\/strong> No. The underscore only hides a key from your custom-fields box. Your images, page layouts and shop data all live in underscore keys.<\/p>\n<p><strong>Will deleting orphaned postmeta break anything?<\/strong> No, if your query joins on <code>wp_posts<\/code> as above. An orphaned row belongs to no post, so nothing on your site can display it.<\/p>\n<p><strong>Why is the table still the same size after cleanup?<\/strong> InnoDB keeps the freed space inside the file. <code>OPTIMIZE TABLE<\/code> gives it back. See <a href=\"#disk-space\">Why the table does not shrink on disk<\/a>.<\/p>\n<p><strong>Does a big wp_postmeta table slow down my site?<\/strong> It can slow down your queries that filter by meta value, such as some shop and search queries. Pages you serve from a cache are not affected. Measure before you conclude that it does.<\/p>\n<h2 id=\"official-sources\" style=\"scroll-margin-top: 96px;\">Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/plugins\/metadata\/\" target=\"_blank\" rel=\"noopener noreferrer\">Post Meta \u2014 WordPress Developer Resources (Plugin Handbook)<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_delete_post\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>wp_delete_post()<\/code> \u2014 WordPress Developer Resources<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/documentation\/article\/revisions\/\" target=\"_blank\" rel=\"noopener noreferrer\">Revisions \u2014 WordPress Documentation<\/a><\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/optimize-table.html\" target=\"_blank\" rel=\"noopener noreferrer\">OPTIMIZE TABLE Statement \u2014 MySQL 8.0 Reference Manual<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Find what is driving wp_postmeta growth, identify the plugins and features behind large meta keys, and remove only data proven to be obsolete.<\/p>\n","protected":false},"author":1,"featured_media":7815,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[98],"tags":[],"class_list":["post-2144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-cleaner"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.0 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why the WordPress wp_postmeta Table Gets So Large<\/title>\n<meta name=\"description\" content=\"Learn what wp_postmeta stores, why it grows, how to identify the largest meta keys, and how to clean unused data without breaking the site.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why the WordPress wp_postmeta Table Gets So Large\" \/>\n<meta property=\"og:description\" content=\"Learn what wp_postmeta stores, why it grows, how to identify the largest meta keys, and how to clean unused data without breaking the site.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/\" \/>\n<meta property=\"og:site_name\" content=\"All in One WP Settings\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-23T10:15:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-18T02:20:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/09\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"All in One WP Settings\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"All in One WP Settings\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/\"},\"author\":{\"name\":\"All in One WP Settings\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#\\\/schema\\\/person\\\/daa924a7f9a0d0fbe18ea77286693c57\"},\"headline\":\"Why the WordPress wp_postmeta Table Gets So Large\",\"datePublished\":\"2026-08-23T10:15:54+00:00\",\"dateModified\":\"2026-10-18T02:20:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/\"},\"wordCount\":2050,\"publisher\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp\",\"articleSection\":[\"Database Cleaner\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/\",\"url\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/\",\"name\":\"Why the WordPress wp_postmeta Table Gets So Large\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp\",\"datePublished\":\"2026-08-23T10:15:54+00:00\",\"dateModified\":\"2026-10-18T02:20:21+00:00\",\"description\":\"Learn what wp_postmeta stores, why it grows, how to identify the largest meta keys, and how to clean unused data without breaking the site.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#primaryimage\",\"url\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp\",\"contentUrl\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp\",\"width\":1440,\"height\":720,\"caption\":\"Why the WordPress wp_postmeta Table Gets So Large\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why the WordPress wp_postmeta Table Gets So Large\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/\",\"name\":\"All in One WP Settings\",\"description\":\"Fewer plugins. Faster WordPress.\",\"publisher\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#organization\",\"name\":\"All in One WP Settings\",\"url\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/aiows-logo.webp\",\"contentUrl\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/aiows-logo.webp\",\"width\":772,\"height\":250,\"caption\":\"All in One WP Settings\"},\"image\":{\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/#\\\/schema\\\/person\\\/daa924a7f9a0d0fbe18ea77286693c57\",\"name\":\"All in One WP Settings\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/aiows-avatar\\\/user-1.jpg\",\"url\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/aiows-avatar\\\/user-1.jpg\",\"contentUrl\":\"https:\\\/\\\/allinonewpsettings.com\\\/blog\\\/wp-content\\\/uploads\\\/aiows-avatar\\\/user-1.jpg\",\"caption\":\"All in One WP Settings\"},\"sameAs\":[\"https:\\\/\\\/allinonewpsettings.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why the WordPress wp_postmeta Table Gets So Large","description":"Learn what wp_postmeta stores, why it grows, how to identify the largest meta keys, and how to clean unused data without breaking the site.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/","og_locale":"en_US","og_type":"article","og_title":"Why the WordPress wp_postmeta Table Gets So Large","og_description":"Learn what wp_postmeta stores, why it grows, how to identify the largest meta keys, and how to clean unused data without breaking the site.","og_url":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/","og_site_name":"All in One WP Settings","article_published_time":"2026-08-23T10:15:54+00:00","article_modified_time":"2026-10-18T02:20:21+00:00","og_image":[{"width":1440,"height":720,"url":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/09\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp","type":"image\/webp"}],"author":"All in One WP Settings","twitter_card":"summary_large_image","twitter_misc":{"Written by":"All in One WP Settings","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#article","isPartOf":{"@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/"},"author":{"name":"All in One WP Settings","@id":"https:\/\/allinonewpsettings.com\/blog\/#\/schema\/person\/daa924a7f9a0d0fbe18ea77286693c57"},"headline":"Why the WordPress wp_postmeta Table Gets So Large","datePublished":"2026-08-23T10:15:54+00:00","dateModified":"2026-10-18T02:20:21+00:00","mainEntityOfPage":{"@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/"},"wordCount":2050,"publisher":{"@id":"https:\/\/allinonewpsettings.com\/blog\/#organization"},"image":{"@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#primaryimage"},"thumbnailUrl":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/09\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp","articleSection":["Database Cleaner"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/","url":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/","name":"Why the WordPress wp_postmeta Table Gets So Large","isPartOf":{"@id":"https:\/\/allinonewpsettings.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#primaryimage"},"image":{"@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#primaryimage"},"thumbnailUrl":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/09\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp","datePublished":"2026-08-23T10:15:54+00:00","dateModified":"2026-10-18T02:20:21+00:00","description":"Learn what wp_postmeta stores, why it grows, how to identify the largest meta keys, and how to clean unused data without breaking the site.","breadcrumb":{"@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#primaryimage","url":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/09\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp","contentUrl":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/09\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup-en.webp","width":1440,"height":720,"caption":"Why the WordPress wp_postmeta Table Gets So Large"},{"@type":"BreadcrumbList","@id":"https:\/\/allinonewpsettings.com\/blog\/wordpress-wp-postmeta-table-is-huge-causes-and-cleanup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/allinonewpsettings.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Why the WordPress wp_postmeta Table Gets So Large"}]},{"@type":"WebSite","@id":"https:\/\/allinonewpsettings.com\/blog\/#website","url":"https:\/\/allinonewpsettings.com\/blog\/","name":"All in One WP Settings","description":"Fewer plugins. Faster WordPress.","publisher":{"@id":"https:\/\/allinonewpsettings.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/allinonewpsettings.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/allinonewpsettings.com\/blog\/#organization","name":"All in One WP Settings","url":"https:\/\/allinonewpsettings.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/allinonewpsettings.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/07\/aiows-logo.webp","contentUrl":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/2026\/07\/aiows-logo.webp","width":772,"height":250,"caption":"All in One WP Settings"},"image":{"@id":"https:\/\/allinonewpsettings.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/allinonewpsettings.com\/blog\/#\/schema\/person\/daa924a7f9a0d0fbe18ea77286693c57","name":"All in One WP Settings","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/aiows-avatar\/user-1.jpg","url":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/aiows-avatar\/user-1.jpg","contentUrl":"https:\/\/allinonewpsettings.com\/blog\/wp-content\/uploads\/aiows-avatar\/user-1.jpg","caption":"All in One WP Settings"},"sameAs":["https:\/\/allinonewpsettings.com\/blog"]}]}},"lang":"en","translations":{"en":2144,"de":2145,"tr":2146},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/posts\/2144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/comments?post=2144"}],"version-history":[{"count":3,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/posts\/2144\/revisions"}],"predecessor-version":[{"id":8777,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/posts\/2144\/revisions\/8777"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/media\/7815"}],"wp:attachment":[{"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/media?parent=2144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/categories?post=2144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/allinonewpsettings.com\/blog\/wp-json\/wp\/v2\/tags?post=2144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}