{"id":1184,"date":"2026-08-21T20:32:29","date_gmt":"2026-08-21T20:32:29","guid":{"rendered":"https:\/\/www.ahosting.net\/blog\/?p=1184"},"modified":"2026-08-21T20:32:31","modified_gmt":"2026-08-21T20:32:31","slug":"limit-wordpress-post-revisions","status":"publish","type":"post","link":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/","title":{"rendered":"How to Limit WordPress Post Revisions (2026)"},"content":{"rendered":"\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"How do I limit WordPress post revisions in wp-config.php in 2026?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Specifically, add define( 'WP_POST_REVISIONS', 5 ); above the line that reads stop editing in wp-config.php, then save the file. The constant must be defined before WordPress loads its settings file, so a line placed below that comment is ignored entirely. Importantly, this caps future growth only and deletes nothing that is already stored.\"}}, {\"@type\": \"Question\", \"name\": \"Is it true that setting post revisions to a lower number reduces database bloat?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Notably, only for revisions created from that point forward. The cap is enforced inside the function that saves a revision, which runs when a post is updated, so existing rows survive untouched until each affected post is edited again. Therefore an archive of posts you never touch again keeps every revision it already has, forever. The Cleanup Safety Matrix in this post shows which methods actually remove them.\"}}, {\"@type\": \"Question\", \"name\": \"WP_POST_REVISIONS vs the wp_revisions_to_keep filter: which should I use to limit WordPress post revisions?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Specifically, use the constant for one site-wide number and the filter when different post types need different retention. The filter overrides the constant, and a post-type-specific variant overrides both. In practice, a store that wants five revisions on products and two on blog posts needs the filter, because a single constant cannot express that.\"}}, {\"@type\": \"Question\", \"name\": \"How do I remove old post revisions in WordPress without breaking published content?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Therefore work from a verified backup and delete only rows whose post type is the revision type. A revision row is a child record; removing it never alters the published post, which lives in its own row. However, deleting the parent post by mistake does destroy content, which is why a targeted command that filters on post type is safer than a hand-written query.\"}}, {\"@type\": \"Question\", \"name\": \"Does the AHosting daily backup protect me if I limit WordPress post revisions incorrectly in 2026?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Fortunately, yes. Every AHosting WordPress plan includes daily backups, so a cleanup that removes more than intended can be restored. That said, a backup taken after a destructive cleanup is not a safety net, so confirm the most recent backup predates the change before you run anything. Restore requests go through a support ticket.\"}}, {\"@type\": \"Question\", \"name\": \"Do WordPress autosaves accumulate in the database the same way post revisions do?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"In fact, no. WordPress keeps a single autosave row per post per user and overwrites it rather than adding new rows, and the pruning routine explicitly skips autosave rows when it deletes old revisions. Consequently, autosaves are a fixed, tiny cost while revisions are the unbounded one. Guides that blame autosaves for database growth have the mechanism backwards.\"}}, {\"@type\": \"Question\", \"name\": \"Why are my WordPress revisions not showing up in the 7.0 editor?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Typically, the revision panel is empty because retention is switched off, because the post type does not declare revision support, or because fewer than two revisions exist to compare. Additionally, a plugin that adds a metabox to the editor can prevent the new visual comparison from loading. Check the constant first, since a value of false or zero disables storage completely.\"}}, {\"@type\": \"Question\", \"name\": \"WP-CLI vs raw SQL for revision cleanup: which is safer on shared hosting?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"As such, WP-CLI is safer and raw SQL is faster. WP-CLI routes each deletion through the standard WordPress functions, so hooks fire and related rows are cleaned up properly, while a direct query does not. By contrast, a single statement finishes in seconds where a command loop can run for many minutes and hold a worker the whole time.\"}}, {\"@type\": \"Question\", \"name\": \"Should I limit WordPress post revisions on a WooCommerce store with AHosting WooCommerce hosting?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Specifically, yes, because products are a revisioned post type and product descriptions get edited far more often than blog posts. A catalog of two thousand products edited quarterly generates revision rows faster than most content sites do. Notably, orders are unaffected, since modern WooCommerce stores order data outside the posts table entirely.\"}}, {\"@type\": \"Question\", \"name\": \"How many entry processes does a bulk cleanup use when I limit WordPress post revisions on AHosting in 2026?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"In practice, a command-line cleanup run over SSH consumes one entry process for its duration, not one per row deleted. Because AHosting allocates 15 entry processes on Bronze, 25 on Silver, and 40 on Gold, a single cleanup leaves ample headroom. However, a browser-based cleanup plugin is different, since it runs inside a web request that competes with real visitors.\"}}]}<\/script>\n\n\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#what-revisions-are\">Before You Limit WordPress Post Revisions: Where WordPress Stores Them<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#revisions-live-in-wp-posts\">Revisions Live in wp_posts, Not a Separate Table<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#what-triggers-a-revision\">What Triggers a Revision When You Limit WordPress Post Revisions<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#why-limit-before-growth\">Why You Should Limit WordPress Post Revisions Before the Database Grows<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#what-wordpress-7-changed\">What WordPress 7.0 Changed About Revisions, and What It Did Not<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#visual-revisions-useful\">Visual Revisions Made Revision History Genuinely Useful<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#no-retention-change\">The Field Guide Documents No Change to Retention or Autosave<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#three-myths\">Three Myths That Make People Limit WordPress Post Revisions Incorrectly<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#myth-constant-deletes\">Myth 1: The Constant Deletes Revisions You Already Have<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#myth-every-update\">Myth 2: Every Update Click Creates a New Revision Row<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#myth-optimize-table\">Myth 3: OPTIMIZE TABLE Reclaims Your Space Automatically<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#how-to-set-the-cap\">How to Limit WordPress Post Revisions in wp-config.php<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#retention-values\">The Values the Retention Constant Accepts<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#where-the-line-goes\">Where the Line Goes, and How to Edit the File Safely<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#per-post-type-limits\">Per-Post-Type Limits With the wp_revisions_to_keep Filter<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#cleaning-up-existing\">Why You Must Clean Up as Well as Limit WordPress Post Revisions<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#cleanup-safety-matrix\">The AHosting Revision Cleanup Safety Matrix<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#cleanup-without-timeout\">Running the Cleanup Without Timing Out<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#choosing-a-number\">Choosing a Number: Limit WordPress Post Revisions to Fit How You Edit<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#ahosting-stack\">What the AHosting Stack Changes About Revision Cleanup<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#daily-backup\">The Daily Backup Is the Step Most Guides Skip<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#concurrency-cost\">Concurrency: What a Cleanup Costs While It Runs<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#practical-checklist\">A Practical Checklist: Limit WordPress Post Revisions Safely<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-limit-wordpress-post-revisions\">Frequently Asked Questions About WordPress Post Revisions<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#faq-limit-revisions-wp-config\">How do I limit WordPress post revisions in wp-config.php in 2026?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-lower-number-database-bloat\">Is it true that setting post revisions to a lower number reduces database bloat?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-constant-vs-filter\">WP_POST_REVISIONS vs the wp_revisions_to_keep filter: which should I use to limit WordPress post revisions?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-remove-old-revisions\">How do I remove old post revisions in WordPress without breaking published content?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-backup-safety-net\">Does the AHosting daily backup protect me if I limit WordPress post revisions incorrectly in 2026?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-autosaves-accumulate\">Do WordPress autosaves accumulate in the database the same way post revisions do?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-revisions-not-showing\">Why are my WordPress revisions not showing up in the 7.0 editor?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-wpcli-vs-sql\">WP-CLI vs raw SQL for revision cleanup: which is safer on shared hosting?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-woocommerce-store\">Should I limit WordPress post revisions on a WooCommerce store with AHosting WooCommerce hosting?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#faq-entry-processes-cleanup\">How many entry processes does a bulk cleanup use when I limit WordPress post revisions on AHosting in 2026?<\/a><\/li><\/ul><\/li><\/ul><\/div>\n\n\n<div class=\"ah-tldr\">\n  <span class=\"ah-tldr-badge\">TL;DR<\/span>\n  <p>Setting WP_POST_REVISIONS caps future growth only. To limit WordPress post revisions and actually shrink the database, you must also delete the rows already stored, because the constant removes none of them.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">If your WordPress database has grown to several times the size of your actual content, stored revisions are the most likely cause. Fortunately, you can limit WordPress post revisions with a single line in wp-config.php. However, that line does something narrower than almost every published guide claims, and understanding the difference is what separates a database that shrinks from one that simply stops growing.<\/p>\n\n\n\n<h2 id=\"what-revisions-are\" class=\"wp-block-heading\">Before You Limit WordPress Post Revisions: Where WordPress Stores Them<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A revision is a complete snapshot of a post saved as its own database row. Specifically, WordPress writes a new row every time a revisioned field changes, so a post edited forty times carries forty child rows alongside the one visible version. Notably, the reason to limit WordPress post revisions is a storage question rather than a performance question at first, and it turns into a performance question only once the row count grows large enough to affect scans, exports, and restores.<\/p>\n\n\n\n<h3 id=\"revisions-live-in-wp-posts\" class=\"wp-block-heading\">Revisions Live in wp_posts, Not a Separate Table<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Revisions are stored in the same posts table as your published content, distinguished only by their post type value. Consequently, every query that scans that table scans your revision history too, and every database export carries it. In practice, this is why a site with 400 published posts can produce a backup file sized for a site with 12,000. According to <a href=\"https:\/\/wordpress.org\/documentation\/article\/revisions\/\" target=\"_blank\" rel=\"noopener\">the WordPress revisions documentation<\/a>, revisions are stored in the posts table, and core tracks changes to the title, author, content, and excerpt fields only.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore the postmeta table is largely unaffected by core revision behavior, which contradicts a common claim. Additionally, plugins that hook into the revision save process can add their own meta rows, so a bloated postmeta table points at a plugin rather than at core.<\/p>\n\n\n\n<h3 id=\"what-triggers-a-revision\" class=\"wp-block-heading\">What Triggers a Revision When You Limit WordPress Post Revisions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A revision is written only when one of the tracked fields actually differs from the previous revision. Specifically, core compares the normalized field values before saving and returns early when nothing has changed, a behavior added in version 4.1 and visible in <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_save_post_revision\/\" target=\"_blank\" rel=\"noopener\">the source of the revision-saving function<\/a>. As a result, clicking Update ten times without editing anything produces zero new rows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This matters because it breaks the arithmetic most guides use. In other words, revision counts track meaningful edits rather than save clicks, so estimating your revision debt from publishing activity alone will overstate it. Ultimately, the only reliable number is the one you measure.<\/p>\n\n\n\n<h2 id=\"why-limit-before-growth\" class=\"wp-block-heading\">Why You Should Limit WordPress Post Revisions Before the Database Grows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unlimited retention is the default, and nothing in WordPress warns you about it. Specifically, when the constant is left undefined, core treats retention as infinite and keeps every revision a post has ever generated. Consequently, the cost accumulates silently for years, which is why the decision to limit WordPress post revisions is almost always made late.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The visible symptoms arrive indirectly. For example, nightly backups take longer and consume more storage, database exports during a migration time out, search queries against the posts table slow down, and restore operations that once took two minutes take twenty. Notably, none of these symptoms points at revisions, which is precisely why the cause goes undiagnosed. Our guide on <a href=\"https:\/\/www.ahosting.net\/blog\/migrate-wordpress-to-a-new-host\/\">moving a WordPress site to a new host<\/a> covers why export size is the variable that most often breaks a migration window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Importantly, the fix is cheap and the delay is expensive. A site that decides to limit WordPress post revisions in its first month carries almost no debt. By contrast, a five-year-old publication that has never set the constant may hold tens of thousands of rows that now require a deliberate cleanup with its own risks.<\/p>\n\n\n\n<h2 id=\"what-wordpress-7-changed\" class=\"wp-block-heading\">What WordPress 7.0 Changed About Revisions, and What It Did Not<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.0 changed how you read revisions and changed nothing about how many are kept. Specifically, the release shipped Visual Revisions, an in-editor comparison view, while leaving retention, autosave behavior, and storage untouched. Therefore the reason to limit WordPress post revisions is exactly as valid after upgrading as it was before.<\/p>\n\n\n\n<h3 id=\"visual-revisions-useful\" class=\"wp-block-heading\">Visual Revisions Made Revision History Genuinely Useful<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Until this release, comparing two versions meant leaving the editor for a separate screen and reading a text diff. In contrast, <a href=\"https:\/\/make.wordpress.org\/core\/2026\/05\/14\/wordpress-7-0-field-guide\/\" target=\"_blank\" rel=\"noopener\">the WordPress 7.0 Field Guide<\/a> describes a slider that switches between two versions directly in the editor, a document inspector that summarizes what changed, and color indicators sized to each change that jump to that location when clicked. As a result, revision history moved from a feature most editors ignored to one they will actually open.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notably, this reframes the retention decision rather than settling it. In other words, keeping history now buys something real, so the reflexive advice to set retention to two or three and move on deserves more thought than it used to.<\/p>\n\n\n\n<h3 id=\"no-retention-change\" class=\"wp-block-heading\">The Field Guide Documents No Change to Retention or Autosave<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 7.0 Field Guide catalogs more than 419 core tickets and documents Visual Revisions purely as an editor and dashboard change. Importantly, it lists no change to the retention constant, no change to the autosave interval, and no change to how revision rows are written. Consequently, a site that upgraded to 7.0 with unlimited retention still has unlimited retention today.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One caveat belongs here. Specifically, some managed platforms override the retention constant at the hosting layer, so a value you set in wp-config.php may not be the value in force. Therefore confirm with your host before assuming your configuration file is authoritative. On AHosting, no platform-level override is applied, so the constant behaves exactly as core documents it.<\/p>\n\n\n\n<h2 id=\"three-myths\" class=\"wp-block-heading\">Three Myths That Make People Limit WordPress Post Revisions Incorrectly<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each of the three claims below appears in guides that currently rank for this topic, and each is contradicted by core source or by vendor documentation. Notably, each myth leads someone to limit WordPress post revisions in a way that changes nothing, and all three produce the same outcome: a site owner who thinks the problem is solved while the database stays exactly the same size.<\/p>\n\n\n\n<h3 id=\"myth-constant-deletes\" class=\"wp-block-heading\">Myth 1: The Constant Deletes Revisions You Already Have<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Defining the retention constant removes nothing. Specifically, pruning happens inside the function that saves a revision, which subtracts your retention number from the current revision count and deletes the excess. That function runs when a post is updated. Consequently, a post you never edit again keeps every revision it has, permanently, no matter what the constant says.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a site with 800 archived posts averaging 50 revisions each holds 40,000 rows. Setting the constant to five removes zero of them on day one. Ultimately, the number only falls as individual posts are re-saved, which on an archive means never. Therefore capping and cleaning are two separate jobs, and the constant does only the first.<\/p>\n\n\n\n<h3 id=\"myth-every-update\" class=\"wp-block-heading\">Myth 2: Every Update Click Creates a New Revision Row<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As covered above, core compares the revisioned fields first and skips the write when nothing changed. In practice, this means the relationship between editorial activity and row count is looser than the estimates published elsewhere suggest. Additionally, it means a workflow with frequent small saves is far less costly than the arithmetic in most guides implies.<\/p>\n\n\n\n<h3 id=\"myth-optimize-table\" class=\"wp-block-heading\">Myth 3: OPTIMIZE TABLE Reclaims Your Space Automatically<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This advice predates the storage engine WordPress actually uses. Specifically, modern WordPress installations run InnoDB, and <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/optimize-table.html\" target=\"_blank\" rel=\"noopener\">the MySQL reference manual<\/a> notes that on InnoDB the statement is implemented as a full table rebuild, with disk space returned to the operating system only when each table has its own tablespace file. By contrast, on a shared system tablespace the space is freed inside the database file and never returns to the filesystem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The rebuild also has a cost worth planning around. According to <a href=\"https:\/\/www.percona.com\/blog\/how-to-reclaim-space-in-innodb-when-innodb_file_per_table-is-on\/\" target=\"_blank\" rel=\"noopener\">published testing on InnoDB space reclamation<\/a>, the operation copies the table row by row into a new file, blocks writes for its duration, and needs roughly twice the table size in temporary space. Therefore run it once, after the deletion, and never on a schedule.<\/p>\n\n\n\n<h2 id=\"how-to-set-the-cap\" class=\"wp-block-heading\">How to Limit WordPress Post Revisions in wp-config.php<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setting the cap takes one line and one rule about placement. Specifically, to limit WordPress post revisions the constant must be defined before WordPress loads its settings file, which means it belongs above the stop editing comment near the bottom of wp-config.php. Notably, a line added below that comment is read after the constant has already been used and has no effect at all.<\/p>\n\n\n\n<h3 id=\"retention-values\" class=\"wp-block-heading\">The Values the Retention Constant Accepts<\/h3>\n\n\n\n<figure class=\"wp-block-table ah-ladder\"><table><thead><tr><th>Value<\/th><th>What WordPress does<\/th><th>Autosave behavior<\/th><th>Sensible for<\/th><\/tr><\/thead><tbody><tr><td><code>true<\/code> or <code>-1<\/code><\/td><td>Stores every revision, forever. This is the default when the constant is undefined<\/td><td>One autosave per post, per user<\/td><td>Nothing on shared hosting<\/td><\/tr><tr><td><code>false<\/code> or <code>0<\/code><\/td><td>Stores no revisions at all<\/td><td>One autosave per post is still kept<\/td><td>Sites with an external version-control workflow<\/td><\/tr><tr><td><code>3<\/code><\/td><td>Keeps the three most recent revisions per post<\/td><td>Plus one autosave per user<\/td><td>Low-edit brochure sites<\/td><\/tr><tr><td><code>5<\/code><\/td><td>Keeps the five most recent revisions per post<\/td><td>Plus one autosave per user<\/td><td>Most blogs and business sites<\/td><\/tr><tr><td><code>10<\/code><\/td><td>Keeps the ten most recent revisions per post<\/td><td>Plus one autosave per user<\/td><td>Multi-author editorial teams<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Values accepted by the WP_POST_REVISIONS constant, per the WordPress revisions documentation.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Importantly, disabling revisions entirely does not disable autosave. In other words, a value of false still leaves one autosave row per post, which is the row that recovers a browser crash.<\/p>\n\n\n\n<h3 id=\"where-the-line-goes\" class=\"wp-block-heading\">Where the Line Goes, and How to Edit the File Safely<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Edit wp-config.php through the cPanel File Manager rather than over FTP, because the built-in editor keeps a copy you can revert and never introduces line-ending corruption. Additionally, a syntax error in this file takes the whole site down, so add the line, save, and load the site in a second tab before closing the editor. Our walkthrough on <a href=\"https:\/\/www.ahosting.net\/blog\/disable-wordpress-ai-features\/\">editing wp-config.php constants through cPanel<\/a> covers the exact click path and the recovery step if a save goes wrong.<\/p>\n\n\n\n<h3 id=\"per-post-type-limits\" class=\"wp-block-heading\">Per-Post-Type Limits With the wp_revisions_to_keep Filter<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">One number rarely fits every content type on a site. Specifically, <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/wp_revisions_to_keep\/\" target=\"_blank\" rel=\"noopener\">the wp_revisions_to_keep filter<\/a> overrides the constant and receives the post object, so retention can vary by post type, by author, or by any condition you can express in PHP. Furthermore, a post-type-specific variant of the same filter overrides both the constant and the general filter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a store that edits product copy weekly and blog posts rarely can keep ten revisions on products and three elsewhere. Therefore the filter is the right tool whenever a single site-wide number would either over-retain the quiet content or under-retain the busy content.<\/p>\n\n\n\n<h2 id=\"cleaning-up-existing\" class=\"wp-block-heading\">Why You Must Clean Up as Well as Limit WordPress Post Revisions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because the constant is not retroactive, existing rows need a separate deliberate pass. Notably, the four methods available once you limit WordPress post revisions differ in what they remove, not only in how fast they run, and choosing on speed alone is how sites end up with orphaned rows that no cleanup touches afterward.<\/p>\n\n\n\n<h3 id=\"cleanup-safety-matrix\" class=\"wp-block-heading\">The AHosting Revision Cleanup Safety Matrix<\/h3>\n\n\n\n<figure class=\"wp-block-table ah-ladder\"><table><thead><tr><th>Method<\/th><th>Removes revision rows<\/th><th>Fires WordPress hooks<\/th><th>Removes related orphan rows<\/th><th>Main risk on shared hosting<\/th><\/tr><\/thead><tbody><tr><td>Re-saving each post by hand<\/td><td>Only the excess above your cap<\/td><td>Yes<\/td><td>Yes<\/td><td>Impractical beyond a few dozen posts<\/td><\/tr><tr><td>WP-CLI over SSH<\/td><td>Yes, all targeted rows<\/td><td>Yes<\/td><td>Yes<\/td><td>Long run time on very large sites<\/td><\/tr><tr><td>Direct SQL statement<\/td><td>Yes, all targeted rows<\/td><td>No<\/td><td>No, leaves orphaned meta and term rows<\/td><td>A mistyped condition deletes published posts<\/td><\/tr><tr><td>Cleanup plugin in the browser<\/td><td>Yes, all targeted rows<\/td><td>Yes<\/td><td>Varies by plugin<\/td><td>Runs inside a web request and can time out mid-pass<\/td><\/tr><tr><td>Table rebuild after deletion<\/td><td>Removes nothing further<\/td><td>Not applicable<\/td><td>Not applicable<\/td><td>Blocks writes and needs about twice the table size free<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">The AHosting Revision Cleanup Safety Matrix: what each cleanup method actually removes and what it leaves behind.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Read the third row carefully. Specifically, a direct statement is the fastest option and the only one that bypasses WordPress entirely, so nothing cleans up the related rows a proper deletion would remove. Therefore it belongs to people who will follow it with a targeted orphan sweep, not to people who want one command and no follow-up.<\/p>\n\n\n\n<h3 id=\"cleanup-without-timeout\" class=\"wp-block-heading\">Running the Cleanup Without Timing Out<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A browser-based cleanup runs inside a normal web request, which means it competes with visitor traffic and is subject to the same execution and memory ceilings as any page load. Consequently, on a large site it frequently stops partway with no clear indication of how far it got. Our guide on <a href=\"https:\/\/www.ahosting.net\/blog\/wordpress-memory-limit-not-working-shared-hosting\/\">why raising the memory limit often does not help on shared hosting<\/a> explains which ceiling actually stops these operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By contrast, a command-line run over SSH is not bound to a web request at all, which is why it is the recommended path on AHosting. Additionally, batching the deletion into chunks of a few hundred rows keeps each statement short and leaves the database responsive for live traffic throughout.<\/p>\n\n\n\n<h2 id=\"choosing-a-number\" class=\"wp-block-heading\">Choosing a Number: Limit WordPress Post Revisions to Fit How You Edit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The right retention number is the smallest one that still covers a realistic recovery. Specifically, ask how far back you would ever reach to undo a mistake, then set the cap one step above that. In practice, most site owners answer with one or two edits, which makes three to five the correct range rather than the ten or twenty they were about to choose.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notably, Visual Revisions changes this calculation slightly. Because comparing versions is now quick and legible, a multi-author team gains real value from a deeper history than a solo publisher does. Therefore an editorial site with several contributors is the one case where ten is defensible.<\/p>\n\n\n\n<div class=\"ah-infographic\">\n<svg viewBox=\"0 0 900 380\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Diagram showing that the WP_POST_REVISIONS constant caps future revisions but never deletes revisions already stored, which require a separate cleanup pass.\">\n<title>Capping revisions versus cleaning up revisions<\/title>\n<desc>Two separate jobs: the WP_POST_REVISIONS constant limits revisions created from now on, while existing revision rows are only removed by a deliberate cleanup or by re-saving each post.<\/desc>\n<rect x=\"0\" y=\"0\" width=\"900\" height=\"380\" fill=\"#0f172a\"\/>\n<rect x=\"0\" y=\"0\" width=\"8\" height=\"380\" fill=\"#2563eb\"\/>\n<text x=\"40\" y=\"46\" fill=\"#ffffff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"24\" font-weight=\"700\">Two separate jobs, and the constant only does one<\/text>\n<text x=\"40\" y=\"74\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"15\">Setting WP_POST_REVISIONS caps growth. It deletes nothing you already stored.<\/text>\n<rect x=\"40\" y=\"104\" width=\"380\" height=\"196\" rx=\"10\" fill=\"#1e293b\" stroke=\"#2563eb\" stroke-width=\"2\"\/>\n<text x=\"64\" y=\"140\" fill=\"#2563eb\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\" font-weight=\"700\">JOB 1 &#8212; CAP FUTURE GROWTH<\/text>\n<text x=\"64\" y=\"172\" fill=\"#ffffff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"17\" font-weight=\"700\">define WP_POST_REVISIONS<\/text>\n<text x=\"64\" y=\"204\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\">Enforced when a post is next updated<\/text>\n<text x=\"64\" y=\"228\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\">Trims the excess above your number<\/text>\n<text x=\"64\" y=\"252\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\">Never runs on a post you do not edit<\/text>\n<text x=\"64\" y=\"282\" fill=\"#fda4af\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\" font-weight=\"700\">Removes 0 rows on day one<\/text>\n<rect x=\"480\" y=\"104\" width=\"380\" height=\"196\" rx=\"10\" fill=\"#1e293b\" stroke=\"#2563eb\" stroke-width=\"2\"\/>\n<text x=\"504\" y=\"140\" fill=\"#2563eb\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\" font-weight=\"700\">JOB 2 &#8212; CLEAR EXISTING ROWS<\/text>\n<text x=\"504\" y=\"172\" fill=\"#ffffff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"17\" font-weight=\"700\">A deliberate cleanup pass<\/text>\n<text x=\"504\" y=\"204\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\">Command line, SQL, or a plugin<\/text>\n<text x=\"504\" y=\"228\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\">Run once, from a verified backup<\/text>\n<text x=\"504\" y=\"252\" fill=\"#eef3ff\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\">Rebuild the table afterward, once<\/text>\n<text x=\"504\" y=\"282\" fill=\"#86efac\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"14\" font-weight=\"700\">This is the step that shrinks the file<\/text>\n<line x1=\"424\" y1=\"202\" x2=\"474\" y2=\"202\" stroke=\"#64748b\" stroke-width=\"2\"\/>\n<text x=\"432\" y=\"194\" fill=\"#94a3b8\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"13\">and<\/text>\n<text x=\"40\" y=\"344\" fill=\"#94a3b8\" font-family=\"Poppins, Arial, sans-serif\" font-size=\"13\">AHosting.net | Est. 2002 | Doing only Job 1 is why a database that stopped growing never got smaller.<\/text>\n<\/svg>\n<\/div>\n\n\n\n<style>\n.ahrev-tool{background:#0f172a;border-radius:12px;padding:26px;margin:28px 0;color:#fff;}\n.ahrev-tool h3{color:#fff;font-size:1.25rem;margin:0 0 6px;}\n.ahrev-tool p.ahrev-sub{color:#eef3ff;font-size:.95rem;margin:0 0 18px;}\n.ahrev-tool label{display:block;color:#eef3ff;font-size:.9rem;margin:14px 0 6px;}\n.ahrev-tool input[type=range]{width:100%;}\n.ahrev-val{color:#fff;font-weight:700;}\n.ahrev-presets{margin:16px 0 4px;}\n.ahrev-preset{background:#1e293b;color:#eef3ff;border:1px solid #334155;border-radius:7px;padding:7px 13px;margin:0 7px 7px 0;font-size:.85rem;cursor:pointer;}\n.ahrev-out{background:#1e293b;border-radius:9px;padding:18px;margin-top:18px;}\n.ahrev-big{font-size:2rem;font-weight:700;color:#fff;}\n.ahrev-note{color:#eef3ff;font-size:.9rem;margin-top:10px;}\na.ahrev-btn.wp-element-button{display:inline-block;margin-top:16px;background:#2563eb!important;color:#fff!important;text-decoration:none!important;padding:11px 20px;border-radius:7px;font-size:.92rem;}\n<\/style>\n<div class=\"ahrev-tool\">\n<h3>Revision Debt Estimator<\/h3>\n<p class=\"ahrev-sub\">Estimate how many revision rows your posts table is already carrying, and what capping retention today would actually remove.<\/p>\n<div class=\"ahrev-presets\">\n<button type=\"button\" class=\"ahrev-preset\" data-ahrev=\"blog\">Small blog<\/button>\n<button type=\"button\" class=\"ahrev-preset\" data-ahrev=\"news\">Editorial site<\/button>\n<button type=\"button\" class=\"ahrev-preset\" data-ahrev=\"store\">Product catalog<\/button>\n<\/div>\n<label for=\"ahrev-posts\">Published posts and pages: <span class=\"ahrev-val\" id=\"ahrev-posts-v\">400<\/span><\/label>\n<input type=\"range\" id=\"ahrev-posts\" min=\"50\" max=\"5000\" step=\"50\" value=\"400\">\n<label for=\"ahrev-edits\">Meaningful edits per post, per year: <span class=\"ahrev-val\" id=\"ahrev-edits-v\">6<\/span><\/label>\n<input type=\"range\" id=\"ahrev-edits\" min=\"1\" max=\"40\" step=\"1\" value=\"6\">\n<label for=\"ahrev-years\">Years the site has been running: <span class=\"ahrev-val\" id=\"ahrev-years-v\">5<\/span><\/label>\n<input type=\"range\" id=\"ahrev-years\" min=\"1\" max=\"15\" step=\"1\" value=\"5\">\n<label for=\"ahrev-cap\">Retention cap you are considering: <span class=\"ahrev-val\" id=\"ahrev-cap-v\">5<\/span><\/label>\n<input type=\"range\" id=\"ahrev-cap\" min=\"0\" max=\"20\" step=\"1\" value=\"5\">\n<div class=\"ahrev-out\">\n<div>Estimated revision rows stored now<\/div>\n<div class=\"ahrev-big\" id=\"ahrev-rows\">0<\/div>\n<div class=\"ahrev-note\" id=\"ahrev-msg\"><\/div>\n<\/div>\n<a class=\"ahrev-btn wp-element-button\" href=\"https:\/\/www.ahosting.net\/wordpress-hosting.html\">See WordPress plans with daily backups<\/a>\n<p class=\"ahrev-note\">Estimate only. Rows = posts x meaningful edits per year x years. Capping retention prunes a post only when that post is next updated.<\/p>\n<\/div>\n<script>\n(function(){\n  document.addEventListener('DOMContentLoaded', function(){\n    var root = document.querySelector('.ahrev-tool');\n    if (!root) { return; }\n    var ids = ['posts','edits','years','cap'];\n    var out = document.getElementById('ahrev-rows');\n    if (!out) { return; }\n    var msg = document.getElementById('ahrev-msg');\n    if (!msg) { return; }\n    function num(k){\n      var el = document.getElementById('ahrev-' + k);\n      if (!el) { return 0; }\n      return parseInt(el.value, 10);\n    }\n    function render(){\n      var posts = num('posts');\n      var edits = num('edits');\n      var years = num('years');\n      var cap = num('cap');\n      for (var i = 0; i < ids.length; i++) {\n        var lab = document.getElementById('ahrev-' + ids[i] + '-v');\n        if (lab) { lab.textContent = String(num(ids[i])); }\n      }\n      var rows = posts * edits * years;\n      out.textContent = rows.toLocaleString('en-US');\n      var kept = posts * cap;\n      var text = 'A cap of ' + cap + ' would eventually hold about ' + kept.toLocaleString('en-US') + ' rows. ';\n      text = text + 'Setting it today removes none of the ' + rows.toLocaleString('en-US') + ' rows already stored.';\n      if (cap === 0) {\n        text = 'A cap of 0 stores no future revisions, and still removes none of the ' + rows.toLocaleString('en-US') + ' rows already stored.';\n      }\n      msg.textContent = text;\n    }\n    root.addEventListener('input', render);\n    root.addEventListener('click', function(e){\n      var t = e.target;\n      if (!t) { return; }\n      var key = t.getAttribute('data-ahrev');\n      if (!key) { return; }\n      var preset = { blog: [400, 6, 5], news: [2400, 12, 8], store: [1800, 20, 4] };\n      var vals = preset[key];\n      if (!vals) { return; }\n      var pe = document.getElementById('ahrev-posts');\n      if (pe) { pe.value = vals[0]; }\n      var ee = document.getElementById('ahrev-edits');\n      if (ee) { ee.value = vals[1]; }\n      var ye = document.getElementById('ahrev-years');\n      if (ye) { ye.value = vals[2]; }\n      render();\n    });\n    render();\n  });\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Read the estimator output as an order of magnitude rather than an exact count. Specifically, it multiplies posts by meaningful edits by years, which is the same arithmetic a database query would confirm in seconds. Ultimately, the number that matters is the gap between what you are storing and what you would ever restore.<\/p>\n\n\n\n<h2 id=\"ahosting-stack\" class=\"wp-block-heading\">What the AHosting Stack Changes About Revision Cleanup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two parts of the hosting environment change how safely a cleanup runs. Specifically, they are the backup that precedes any decision to limit WordPress post revisions and the concurrency budget the cleanup consumes while running.<\/p>\n\n\n\n<h3 id=\"daily-backup\" class=\"wp-block-heading\">The Daily Backup Is the Step Most Guides Skip<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every AHosting WordPress plan includes a daily backup, which means the prerequisite for a revision cleanup is already in place rather than something you have to arrange first. Importantly, confirm the most recent backup predates your change, because a backup captured after a destructive pass preserves the mistake rather than the content. Restores are handled through a support ticket.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, autosave and revision behavior interact with editor traffic in a way worth knowing before you tune anything else. Our measured guide on <a href=\"https:\/\/www.ahosting.net\/blog\/how-to-disable-wordpress-heartbeat\/\">how the WordPress Heartbeat API drives editor requests<\/a> covers the autosave interval specifically, which is a separate control from retention and is often confused with it.<\/p>\n\n\n\n<h3 id=\"concurrency-cost\" class=\"wp-block-heading\">Concurrency: What a Cleanup Costs While It Runs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">AHosting allocates entry processes by plan tier, at 15 on Bronze, 25 on Silver, and 40 on Gold, and a command-line cleanup over SSH occupies one of them for its duration regardless of how many rows it touches. Consequently, running a cleanup during business hours is safe on any tier. By contrast, a browser-based cleanup plugin runs inside a web request, so a long pass competes directly with visitor traffic for the same pool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For stores this matters more, because product descriptions are revisioned and edited constantly. Notably, <a href=\"https:\/\/www.ahosting.net\/woocommerce-hosting.html\">AHosting WooCommerce hosting<\/a> sets concurrency at the same level as the Silver tier for exactly this reason. Furthermore, agencies running many client sites from one account should read the <a href=\"https:\/\/www.ahosting.net\/reseller-hosting.html\">reseller hosting isolation model<\/a> before scripting a cleanup across all of them at once.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, there is a threshold where retention tuning stops being the answer. Specifically, a database large enough that a routine rebuild becomes a scheduling problem has outgrown a shared container, and the honest fix is <a href=\"https:\/\/www.ahosting.net\/vps-hosting.html\">a VPS with dedicated resources<\/a> or, at genuine scale, <a href=\"https:\/\/www.ahosting.net\/dedicated-server.html\">a dedicated server<\/a>. That said, the overwhelming majority of bloated databases are bloated by revisions alone and need nothing more than the two jobs described here.<\/p>\n\n\n\n<h2 id=\"practical-checklist\" class=\"wp-block-heading\">A Practical Checklist: Limit WordPress Post Revisions Safely<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Work through this in order. Notably, the sequence matters more than any individual step, because capping before cleaning leaves rows behind and cleaning before backing up leaves no way out.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confirm the most recent daily backup completed and predates any change you are about to make.<\/li>\n\n\n\n<li>Measure what you actually have, so the cleanup can be verified afterward against a real starting number.<\/li>\n\n\n\n<li>Set the retention constant in wp-config.php above the stop editing comment, then load the site to confirm no syntax error.<\/li>\n\n\n\n<li>Decide whether one number fits every post type, and reach for the filter if it does not.<\/li>\n\n\n\n<li>Choose a cleanup method from the Safety Matrix based on what it leaves behind, not on how fast it runs.<\/li>\n\n\n\n<li>Run the cleanup from the command line rather than the browser, in batches, so nothing times out mid-pass.<\/li>\n\n\n\n<li>Rebuild the table once after the deletion, and understand that space returns to the filesystem only under a per-table tablespace.<\/li>\n\n\n\n<li>Re-measure, and confirm the backup file size fell by roughly the amount you expected.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ultimately, the goal is not the smallest possible database. In practice, it is a retention setting you chose deliberately, a one-time cleanup that removed the debt accumulated before that decision, and a hosting plan whose backups finish inside their window because the database is the size your content actually justifies.<\/p>\n\n\n\n<h2 id=\"faq-limit-wordpress-post-revisions\" class=\"wp-block-heading\">Frequently Asked Questions About WordPress Post Revisions<\/h2>\n\n\n\n<h3 id=\"faq-limit-revisions-wp-config\" class=\"wp-block-heading\">How do I limit WordPress post revisions in wp-config.php in 2026?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Specifically, add <code>define( 'WP_POST_REVISIONS', 5 );<\/code> above the line that reads stop editing in wp-config.php, then save the file. The constant must be defined before WordPress loads its settings file, so a line placed below that comment is ignored entirely. Importantly, this caps future growth only and deletes nothing that is already stored.<\/p>\n\n\n\n<h3 id=\"faq-lower-number-database-bloat\" class=\"wp-block-heading\">Is it true that setting post revisions to a lower number reduces database bloat?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Notably, only for revisions created from that point forward. The cap is enforced inside the function that saves a revision, which runs when a post is updated, so existing rows survive untouched until each affected post is edited again. Therefore an archive of posts you never touch again keeps every revision it already has, forever. The Cleanup Safety Matrix in this post shows which methods actually remove them.<\/p>\n\n\n\n<h3 id=\"faq-constant-vs-filter\" class=\"wp-block-heading\">WP_POST_REVISIONS vs the wp_revisions_to_keep filter: which should I use to limit WordPress post revisions?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Specifically, use the constant for one site-wide number and the filter when different post types need different retention. The filter overrides the constant, and a post-type-specific variant overrides both. In practice, a store that wants five revisions on products and two on blog posts needs the filter, because a single constant cannot express that.<\/p>\n\n\n\n<h3 id=\"faq-remove-old-revisions\" class=\"wp-block-heading\">How do I remove old post revisions in WordPress without breaking published content?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore work from a verified backup and delete only rows whose post type is the revision type. A revision row is a child record; removing it never alters the published post, which lives in its own row. However, deleting the parent post by mistake does destroy content, which is why a targeted command that filters on post type is safer than a hand-written query.<\/p>\n\n\n\n<h3 id=\"faq-backup-safety-net\" class=\"wp-block-heading\">Does the AHosting daily backup protect me if I limit WordPress post revisions incorrectly in 2026?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Fortunately, yes. Every AHosting WordPress plan includes daily backups, so a cleanup that removes more than intended can be restored. That said, a backup taken after a destructive cleanup is not a safety net, so confirm the most recent backup predates the change before you run anything. Restore requests go through a support ticket.<\/p>\n\n\n\n<h3 id=\"faq-autosaves-accumulate\" class=\"wp-block-heading\">Do WordPress autosaves accumulate in the database the same way post revisions do?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In fact, no. WordPress keeps a single autosave row per post per user and overwrites it rather than adding new rows, and the pruning routine explicitly skips autosave rows when it deletes old revisions. Consequently, autosaves are a fixed, tiny cost while revisions are the unbounded one. Guides that blame autosaves for database growth have the mechanism backwards.<\/p>\n\n\n\n<h3 id=\"faq-revisions-not-showing\" class=\"wp-block-heading\">Why are my WordPress revisions not showing up in the 7.0 editor?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Typically, the revision panel is empty because retention is switched off, because the post type does not declare revision support, or because fewer than two revisions exist to compare. Additionally, a plugin that adds a metabox to the editor can prevent the new visual comparison from loading. Check the constant first, since a value of false or zero disables storage completely.<\/p>\n\n\n\n<h3 id=\"faq-wpcli-vs-sql\" class=\"wp-block-heading\">WP-CLI vs raw SQL for revision cleanup: which is safer on shared hosting?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As such, WP-CLI is safer and raw SQL is faster. WP-CLI routes each deletion through the standard WordPress functions, so hooks fire and related rows are cleaned up properly, while a direct query does not. By contrast, a single statement finishes in seconds where a command loop can run for many minutes and hold a worker the whole time.<\/p>\n\n\n\n<h3 id=\"faq-woocommerce-store\" class=\"wp-block-heading\">Should I limit WordPress post revisions on a WooCommerce store with AHosting WooCommerce hosting?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Specifically, yes, because products are a revisioned post type and product descriptions get edited far more often than blog posts. A catalog of two thousand products edited quarterly generates revision rows faster than most content sites do. Notably, orders are unaffected, since modern WooCommerce stores order data outside the posts table entirely.<\/p>\n\n\n\n<h3 id=\"faq-entry-processes-cleanup\" class=\"wp-block-heading\">How many entry processes does a bulk cleanup use when I limit WordPress post revisions on AHosting in 2026?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In practice, a command-line cleanup run over SSH consumes one entry process for its duration, not one per row deleted. Because AHosting allocates 15 entry processes on Bronze, 25 on Silver, and 40 on Gold, a single cleanup leaves ample headroom. However, a browser-based cleanup plugin is different, since it runs inside a web request that competes with real visitors.<\/p>\n\n\n\n<script>\n(function(){\n  document.addEventListener('DOMContentLoaded', function(){\n    var allH3s = document.querySelectorAll('h3.wp-block-heading');\n    var inFaq = false;\n    for (var i = 0; i < allH3s.length; i++) {\n      var h3 = allH3s[i];\n      var prev = h3.previousElementSibling;\n      if (prev) {\n        if (prev.tagName === 'H2') {\n          var prevId = prev.getAttribute('id');\n          if (prevId) {\n            if (prevId.indexOf('faq-') === 0) {\n              inFaq = true;\n            } else {\n              inFaq = false;\n            }\n          }\n        }\n      }\n      if (inFaq) {\n        initToggle(h3);\n      }\n    }\n    function initToggle(h3) {\n      var answer = h3.nextElementSibling;\n      if (!answer) { return; }\n      if (answer.tagName !== 'P') { return; }\n      var chev = document.createElement('span');\n      chev.className = 'ahfaq-chev ahfaq-chev-closed';\n      chev.setAttribute('aria-hidden', 'true');\n      h3.appendChild(chev);\n      h3.setAttribute('tabindex', '0');\n      h3.setAttribute('aria-expanded', 'false');\n      answer.classList.add('ahfaq-collapsed');\n      h3.addEventListener('click', function(){ doToggle(h3, answer, chev); });\n      h3.addEventListener('keydown', function(e){\n        if (e.key === 'Enter') { e.preventDefault(); doToggle(h3, answer, chev); }\n        if (e.key === ' ') { e.preventDefault(); doToggle(h3, answer, chev); }\n      });\n    }\n    function doToggle(h3, answer, chev) {\n      var isOpen = h3.getAttribute('aria-expanded') === 'true';\n      if (isOpen) {\n        answer.classList.remove('ahfaq-open');\n        answer.classList.add('ahfaq-collapsed');\n        h3.setAttribute('aria-expanded', 'false');\n        chev.classList.add('ahfaq-chev-closed');\n        chev.classList.remove('ahfaq-chev-open');\n      } else {\n        answer.classList.remove('ahfaq-collapsed');\n        answer.classList.add('ahfaq-open');\n        h3.setAttribute('aria-expanded', 'true');\n        chev.classList.remove('ahfaq-chev-closed');\n        chev.classList.add('ahfaq-chev-open');\n      }\n    }\n  });\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>TL;DR Setting WP_POST_REVISIONS caps future growth only. To limit WordPress post revisions and actually shrink the database, you must also delete the rows already stored, because the constant removes none of them. If your WordPress database has grown to several times the size of your actual content, stored revisions are the most likely cause. Fortunately, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1185,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[8],"tags":[238,27,175,222,239],"class_list":["post-1184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-database-optimization","tag-wordpress","tag-wordpress-7-0","tag-wordpress-maintenance","tag-wp-config"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"author\" content=\"Matt Chrust\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Blog Home | AHosting Blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting\" \/>\n\t\t<meta property=\"og:description\" content=\"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-21T20:32:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-21T20:32:31+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@ahostingdotnet\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@ahostingdotnet\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#article\",\"name\":\"Limit WordPress Post Revisions \\u2014 2026 Guide | AHosting\",\"headline\":\"How to Limit WordPress Post Revisions (2026)\",\"author\":{\"@type\":\"Person\",\"name\":\"Matt Chrust\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/author\\\/matt-chrust\\\/\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/limit-wordpress-post-revisions-ahosting.jpg\",\"width\":1200,\"height\":675,\"caption\":\"Capping retention and clearing stored revisions are two separate jobs. By Matt Chrust, Director of Business Development, Ahosting.\"},\"datePublished\":\"2026-08-21T20:32:29+00:00\",\"dateModified\":\"2026-08-21T20:32:31+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#webpage\"},\"articleSection\":\"WordPress, database optimization, WordPress, WordPress 7.0, WordPress maintenance, wp-config\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ahosting.net\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/category\\\/wordpress\\\/#listItem\",\"name\":\"WordPress\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/category\\\/wordpress\\\/#listItem\",\"position\":2,\"name\":\"WordPress\",\"item\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/category\\\/wordpress\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#listItem\",\"name\":\"How to Limit WordPress Post Revisions (2026)\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#listItem\",\"position\":3,\"name\":\"How to Limit WordPress Post Revisions (2026)\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/category\\\/wordpress\\\/#listItem\",\"name\":\"WordPress\"},\"item\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/\"}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/#organization\",\"name\":\"AHosting\",\"description\":\"AHosting Blog\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/assets\\\/img\\\/ahosting-logo.svg\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#organizationLogo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/ahostingdotnet\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/author\\\/matt-chrust\\\/#author\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/author\\\/matt-chrust\\\/\",\"name\":\"Matt Chrust\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/795895edac1c44589f6c7f5e6bb79df405fbbaac15817bdd387ec57da61731ec?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Matt Chrust\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#webpage\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/\",\"name\":\"Limit WordPress Post Revisions \\u2014 2026 Guide | AHosting\",\"description\":\"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/author\\\/matt-chrust\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/author\\\/matt-chrust\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/limit-wordpress-post-revisions-ahosting.jpg\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#mainImage\",\"width\":1200,\"height\":675,\"caption\":\"Capping retention and clearing stored revisions are two separate jobs. By Matt Chrust, Director of Business Development, Ahosting.\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/blog\\\/limit-wordpress-post-revisions\\\/#mainImage\"},\"datePublished\":\"2026-08-21T20:32:29+00:00\",\"dateModified\":\"2026-08-21T20:32:31+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/#website\",\"url\":\"https:\\\/\\\/www.ahosting.net\\\/\",\"name\":\"AHosting\",\"description\":\"AHosting Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ahosting.net\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting","description":"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions","canonical_url":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#article","name":"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting","headline":"How to Limit WordPress Post Revisions (2026)","author":{"@type":"Person","name":"Matt Chrust","url":"https:\/\/www.ahosting.net\/blog\/author\/matt-chrust\/"},"publisher":{"@id":"https:\/\/www.ahosting.net\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg","width":1200,"height":675,"caption":"Capping retention and clearing stored revisions are two separate jobs. By Matt Chrust, Director of Business Development, Ahosting."},"datePublished":"2026-08-21T20:32:29+00:00","dateModified":"2026-08-21T20:32:31+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#webpage"},"isPartOf":{"@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#webpage"},"articleSection":"WordPress, database optimization, WordPress, WordPress 7.0, WordPress maintenance, wp-config"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.ahosting.net\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog\/category\/wordpress\/#listItem","name":"WordPress"}},{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog\/category\/wordpress\/#listItem","position":2,"name":"WordPress","item":"https:\/\/www.ahosting.net\/blog\/category\/wordpress\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#listItem","name":"How to Limit WordPress Post Revisions (2026)"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#listItem","position":3,"name":"How to Limit WordPress Post Revisions (2026)","previousItem":{"@type":"ListItem","@id":"https:\/\/www.ahosting.net\/blog\/category\/wordpress\/#listItem","name":"WordPress"},"item":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/"}]},{"@type":"Organization","@id":"https:\/\/www.ahosting.net\/#organization","name":"AHosting","description":"AHosting Blog","url":"https:\/\/www.ahosting.net\/","logo":{"@type":"ImageObject","url":"https:\/\/www.ahosting.net\/assets\/img\/ahosting-logo.svg","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#organizationLogo"},"image":{"@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#organizationLogo"},"sameAs":["https:\/\/x.com\/ahostingdotnet"]},{"@type":"Person","@id":"https:\/\/www.ahosting.net\/blog\/author\/matt-chrust\/#author","url":"https:\/\/www.ahosting.net\/blog\/author\/matt-chrust\/","name":"Matt Chrust","image":{"@type":"ImageObject","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/795895edac1c44589f6c7f5e6bb79df405fbbaac15817bdd387ec57da61731ec?s=96&d=mm&r=g","width":96,"height":96,"caption":"Matt Chrust"}},{"@type":"WebPage","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#webpage","url":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/","name":"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting","description":"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.ahosting.net\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#breadcrumblist"},"author":{"@id":"https:\/\/www.ahosting.net\/blog\/author\/matt-chrust\/#author"},"creator":{"@id":"https:\/\/www.ahosting.net\/blog\/author\/matt-chrust\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg","@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#mainImage","width":1200,"height":675,"caption":"Capping retention and clearing stored revisions are two separate jobs. By Matt Chrust, Director of Business Development, Ahosting."},"primaryImageOfPage":{"@id":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/#mainImage"},"datePublished":"2026-08-21T20:32:29+00:00","dateModified":"2026-08-21T20:32:31+00:00"},{"@type":"WebSite","@id":"https:\/\/www.ahosting.net\/#website","url":"https:\/\/www.ahosting.net\/","name":"AHosting","description":"AHosting Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.ahosting.net\/#organization"}}]},"og:locale":"en_US","og:site_name":"Blog Home | AHosting Blog","og:type":"article","og:title":"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting","og:description":"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions","og:url":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/","og:image":"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg","og:image:secure_url":"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg","og:image:width":1200,"og:image:height":675,"article:published_time":"2026-08-21T20:32:29+00:00","article:modified_time":"2026-08-21T20:32:31+00:00","twitter:card":"summary_large_image","twitter:site":"@ahostingdotnet","twitter:title":"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting","twitter:description":"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions","twitter:creator":"@ahostingdotnet","twitter:image":"https:\/\/www.ahosting.net\/blog\/wp-content\/uploads\/2026\/08\/limit-wordpress-post-revisions-ahosting.jpg"},"aioseo_meta_data":{"post_id":"1184","title":"Limit WordPress Post Revisions \u2014 2026 Guide | AHosting","description":"Setting WP_POST_REVISIONS caps growth but deletes nothing. See what actually shrinks a bloated WordPress database, and how to limit WordPress Post Revisions","keywords":null,"keyphrases":{"focus":{"keyphrase":"limit wordpress post revisions","score":0,"analysis":[]},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-08-21 20:27:44","updated":"2026-08-21 20:34:39","seo_analyzer_scan_date":null,"focus_keyword":"limit wordpress post revisions","additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ahosting.net\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ahosting.net\/blog\/category\/wordpress\/\" title=\"WordPress\">WordPress<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHow to Limit WordPress Post Revisions (2026)\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.ahosting.net\/blog"},{"label":"WordPress","link":"https:\/\/www.ahosting.net\/blog\/category\/wordpress\/"},{"label":"How to Limit WordPress Post Revisions (2026)","link":"https:\/\/www.ahosting.net\/blog\/limit-wordpress-post-revisions\/"}],"_links":{"self":[{"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/posts\/1184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/comments?post=1184"}],"version-history":[{"count":1,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/posts\/1184\/revisions"}],"predecessor-version":[{"id":1186,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/posts\/1184\/revisions\/1186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/media\/1185"}],"wp:attachment":[{"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/media?parent=1184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/categories?post=1184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ahosting.net\/blog\/wp-json\/wp\/v2\/tags?post=1184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}