The Home for
Magento Excellence

Explore. Discover. Elevate. #magento

162
Modules Tested
99
Ready for Magento 2.4
63
Need Your Help
Top 10% by Downloads Stable v1.7.1

OlegKoval Regenerate Url Rewrites

olegkoval/magento2-regenerate-url-rewrites

Add into Magento 2 a CLI feature which allow to regenerate a Url Rewrites of products and categories

3,507,682
Downloads
12x above avg
438
GitHub Stars
6x above avg
7mo ago
Last Release
39
Open Issues
Build Passing
Ready to install

Build Tests

Composer Install
DI Compile
Templates

Code Quality

CS Coding Standard
PHPStan Failed

Tested on Magento 2.4.8-p3

Recent Test History

Each release is tested against the latest Magento version at that time.

v1.7.1 on Magento 2.4.8-p3
Dec 16, 2025
v1.7.1 on Magento 2.4.8-p2
Aug 14, 2025
v1.7.1 on Magento 2.4.8
Jun 14, 2025
v1.7.0 on Magento 2.4.8
May 21, 2025
v1.7.0 on Magento 2.4.7-p4
Apr 23, 2025
v1.6.2 on Magento 2.4.7-p4
Feb 15, 2025

+6 older tests

GitHub Repository
Source code & docs
Packagist
Version history
Issues & Support
Get help or report bugs

Share This Module's Status

OlegKoval Regenerate Url Rewrites Magento compatibility status badge

README

Loaded from GitHub

“Regenerate Url Rewrites” extension

Magento 2 "Regenerate Url Rewrites" extension add a CLI feature which allow regenerating a Url rewrites of products/categories in all stores or specific store. Extension homepage: https://github.com/olegkoval/magento2-regenerate_url_rewrites

CONTACTS

  • Email: olegkoval.ca@gmail.com
  • LinkedIn: https://www.linkedin.com/in/oleg-koval-85bb2314/

DONATIONS / SUPPORT ME ON

INSTALLATION

COMPOSER INSTALLATION

  • run composer command:

$> composer require olegkoval/magento2-regenerate-url-rewrites

MANUAL INSTALLATION

  • extract files from an archive

  • deploy files into Magento2 folder app/code/OlegKoval/RegenerateUrlRewrites

ENABLE EXTENSION

  • enable extension (use Magento 2 command line interface *):

$> php bin/magento module:enable OlegKoval_RegenerateUrlRewrites

  • to make sure that the enabled module is properly registered, run 'setup:upgrade':

$> php bin/magento setup:upgrade

  • [if needed] re-compile code and re-deploy static view files:

$> php bin/magento setup:di:compile $> php bin/magento setup:static-content:deploy

HOW TO USE IT:

  • to regenerate Url Rewrites of all products in all stores (only products) set entity type to "product":

$> php bin/magento ok:urlrewrites:regenerate --entity-type=product

because product entity type is default — you can skip it:

$> php bin/magento ok:urlrewrites:regenerate

  • to regenerate, Url Rewrites in the specific store view (e.g.: store view id is "2") use option --store-id:

$> php bin/magento ok:urlrewrites:regenerate --store-id=2

  • to regenerate Url Rewrites of some specific product, then use option product-id (e.g.: product ID is "122"):

$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --product-id=122

or

$> php bin/magento ok:urlrewrites:regenerate --product-id=122

  • to regenerate Url Rewrites of specific products range then use option products-range (e.g.: regenerate for all products with ID between "101" and "152"):

$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --products-range=101-152

* if in the range you have a gap of ID's (in range 101-152 products with ID's 110, 124, 150 not exists) — do not worry, a script handles this.

or

$> php bin/magento ok:urlrewrites:regenerate --products-range=101-152

  • to save a current Url Rewrites (you want to get a new URL rewites and save current) use option --save-old-urls:

$> php bin/magento ok:urlrewrites:regenerate --save-old-urls

  • to prevent regeneration of "url_key" values (use current "url_key" values) use option --no-regen-url-key:

$> php bin/magento ok:urlrewrites:regenerate --no-regen-url-key

  • if you do not want to run a full reindex at the end of Url Rewrites generation then use option --no-reindex:

$> php bin/magento ok:urlrewrites:regenerate --no-reindex

  • if you do not want to run cache:clean at the end of Url Rewrites generation then use option --no-cache-clean:

$> php bin/magento ok:urlrewrites:regenerate --no-cache-clean

  • if you do not want to run cache:flush at the end of Url Rewrites generation then use option --no-cache-flush:

$> php bin/magento ok:urlrewrites:regenerate --no-cache-flush

  • if you do not want to display a progress bar in the console then use option --no-progress:

$> php bin/magento ok:urlrewrites:regenerate --no-progress

REGENERATE URL REWRITES OF CATEGORY

  • to regenerate Url Rewrites of all categories in all stores, set an entity type to "category":

$> php bin/magento ok:urlrewrites:regenerate --entity-type=category

  • to regenerate Url Rewrites of some specific category, then use option category-id (e.g.: category ID is "15"):

$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --category-id=15

  • to regenerate Url Rewrites of specific categories range then use option categories-range (e.g.: regenerate for all categories with ID between "4" and "12"):

$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --categories-range=4-12

* if in the range you have a gap of ID's (in range 4-12 category with ID "6" not exists) — do not worry, a script handles this.

** If you use options --category-id or --categories-range then you can skip option --entity-type=category - extension will understand that you want to use a category entity.

YOU CAN COMBINE OPTIONS

$> php bin/magento ok:urlrewrites:regenerate --store-id=2 --save-old-urls --no-regen-url-key --no-reindex

YOU CANNOT COMBINE THESE OPTIONS

  • --entity-type=product and --category-id/--categories-range
  • --entity-type=category and --product-id/--products-range
  • --category-id and/or --categories-range and/or --product-id and/or --products-range

DEPRECATED OPTIONS

  • --check-use-category-in-product-url — extension uses a built-in Magento Url Rewrites generator which check this option in any way.

EXAMPLES OF USAGE

  • Regenerate Url Rewrites for product with ID "38" in store with ID "3":

$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --store-id=3 --product-id=38

or

$> php bin/magento ok:urlrewrites:regenerate --store-id=3 --product-id=38

  • Regenerate Url Rewrites for products with ID's 5,6,7,8,9,10,11,12 in store with ID "2" and do not run full reindex at the end of process:

$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --store-id=2 --products-range=5-12 --no-reindex

  • Regenerate Url Rewrites for category with ID "22" in all stores and save current Url Rewrites:

$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --category-id=22 --save-old-urls

  • Regenerate Url Rewrites for categories with ID's 21,22,23,24,25 in store with ID "2":

$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --categories-range=21-25 --store-id=2

Enjoy!

Best regards, Oleg Koval

This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.

Back to All Modules