diff --git a/src/backend/InvenTree/InvenTree/fields.py b/src/backend/InvenTree/InvenTree/fields.py
index 09ac722551..7657a1a5c0 100644
--- a/src/backend/InvenTree/InvenTree/fields.py
+++ b/src/backend/InvenTree/InvenTree/fields.py
@@ -50,8 +50,8 @@ class InvenTreeURLField(models.URLField):
 
     def __init__(self, **kwargs):
         """Initialization method for InvenTreeURLField."""
-        # Max length for InvenTreeURLField is set to 200
-        kwargs['max_length'] = 200
+        # Max length for InvenTreeURLField is set to 2000
+        kwargs['max_length'] = 2000
         super().__init__(**kwargs)
 
 
diff --git a/src/backend/InvenTree/build/migrations/0055_auto_20250221_1230.py b/src/backend/InvenTree/build/migrations/0055_auto_20250221_1230.py
new file mode 100644
index 0000000000..db6289829b
--- /dev/null
+++ b/src/backend/InvenTree/build/migrations/0055_auto_20250221_1230.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.2.19 on 2025-02-21 12:30
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("build", "0054_build_start_date"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='build',
+            name='link',
+            field=models.TextField()  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+    ]
diff --git a/src/backend/InvenTree/build/migrations/0056_alter_build_link.py b/src/backend/InvenTree/build/migrations/0056_alter_build_link.py
new file mode 100644
index 0000000000..3d328d160f
--- /dev/null
+++ b/src/backend/InvenTree/build/migrations/0056_alter_build_link.py
@@ -0,0 +1,24 @@
+# Generated by Django 4.2.19 on 2025-02-21 13:46
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("build", "0055_auto_20250221_1230"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="build",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external URL",
+                max_length=2000,
+                verbose_name="External Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py
index c3343db198..0002620112 100644
--- a/src/backend/InvenTree/build/models.py
+++ b/src/backend/InvenTree/build/models.py
@@ -400,7 +400,10 @@ class Build(
     )
 
     link = InvenTree.fields.InvenTreeURLField(
-        verbose_name=_('External Link'), blank=True, help_text=_('Link to external URL')
+        verbose_name=_('External Link'),
+        blank=True,
+        help_text=_('Link to external URL'),
+        max_length=2000,
     )
 
     priority = models.PositiveIntegerField(
diff --git a/src/backend/InvenTree/common/migrations/0035_auto_20250221_1513.py b/src/backend/InvenTree/common/migrations/0035_auto_20250221_1513.py
new file mode 100644
index 0000000000..0eb6592fb6
--- /dev/null
+++ b/src/backend/InvenTree/common/migrations/0035_auto_20250221_1513.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.2.19 on 2025-02-21 15:13
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("common", "0034_alter_inventreecustomuserstatemodel_unique_together_and_more"),
+    ]
+
+    operations = [migrations.AlterField(
+            model_name='attachment',
+            name='link',
+            field=models.TextField()  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+    ]
diff --git a/src/backend/InvenTree/common/migrations/0036_alter_attachment_link.py b/src/backend/InvenTree/common/migrations/0036_alter_attachment_link.py
new file mode 100644
index 0000000000..688b6b89e5
--- /dev/null
+++ b/src/backend/InvenTree/common/migrations/0036_alter_attachment_link.py
@@ -0,0 +1,25 @@
+# Generated by Django 4.2.19 on 2025-02-21 15:15
+
+import InvenTree.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("common", "0035_auto_20250221_1513"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="attachment",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external URL",
+                max_length=2000,
+                null=True,
+                verbose_name="Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py
index 8e6890441a..61213b5d17 100644
--- a/src/backend/InvenTree/common/models.py
+++ b/src/backend/InvenTree/common/models.py
@@ -1876,6 +1876,7 @@ class Attachment(InvenTree.models.MetadataMixin, InvenTree.models.InvenTreeModel
         null=True,
         verbose_name=_('Link'),
         help_text=_('Link to external URL'),
+        max_length=2000,
     )
 
     comment = models.CharField(
diff --git a/src/backend/InvenTree/company/migrations/0072_auto_20250221_1236.py b/src/backend/InvenTree/company/migrations/0072_auto_20250221_1236.py
new file mode 100644
index 0000000000..4e111dd434
--- /dev/null
+++ b/src/backend/InvenTree/company/migrations/0072_auto_20250221_1236.py
@@ -0,0 +1,39 @@
+# Generated by Django 4.2.19 on 2025-02-21 12:36
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("company", "0071_manufacturerpart_notes_supplierpart_notes"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='company',
+            name='website',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='company',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='address',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='supplierpart',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='manufacturerpart',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+    ]
diff --git a/src/backend/InvenTree/company/migrations/0073_alter_address_link_alter_company_link_and_more.py b/src/backend/InvenTree/company/migrations/0073_alter_address_link_alter_company_link_and_more.py
new file mode 100644
index 0000000000..06657c796c
--- /dev/null
+++ b/src/backend/InvenTree/company/migrations/0073_alter_address_link_alter_company_link_and_more.py
@@ -0,0 +1,55 @@
+# Generated by Django 4.2.19 on 2025-02-21 13:46
+
+import InvenTree.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("company", "0072_auto_20250221_1236"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="address",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to address information (external)",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="company",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external company information",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="company",
+            name="website",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Company website URL",
+                max_length=2000,
+                verbose_name="Website",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="supplierpart",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="URL for external supplier part link",
+                max_length=2000,
+                null=True,
+                verbose_name="Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/company/migrations/0074_alter_manufacturerpart_link.py b/src/backend/InvenTree/company/migrations/0074_alter_manufacturerpart_link.py
new file mode 100644
index 0000000000..80261f1156
--- /dev/null
+++ b/src/backend/InvenTree/company/migrations/0074_alter_manufacturerpart_link.py
@@ -0,0 +1,25 @@
+# Generated by Django 4.2.19 on 2025-02-21 14:51
+
+import InvenTree.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("company", "0073_alter_address_link_alter_company_link_and_more"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="manufacturerpart",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="URL for external manufacturer part link",
+                max_length=2000,
+                null=True,
+                verbose_name="Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/company/models.py b/src/backend/InvenTree/company/models.py
index 3a0c21808a..edf94415d9 100644
--- a/src/backend/InvenTree/company/models.py
+++ b/src/backend/InvenTree/company/models.py
@@ -117,7 +117,10 @@ class Company(
     )
 
     website = InvenTreeURLField(
-        blank=True, verbose_name=_('Website'), help_text=_('Company website URL')
+        blank=True,
+        verbose_name=_('Website'),
+        help_text=_('Company website URL'),
+        max_length=2000,
     )
 
     phone = models.CharField(
@@ -145,6 +148,7 @@ class Company(
         blank=True,
         verbose_name=_('Link'),
         help_text=_('Link to external company information'),
+        max_length=2000,
     )
 
     image = StdImageField(
@@ -440,6 +444,7 @@ class Address(InvenTree.models.InvenTreeModel):
         blank=True,
         verbose_name=_('Link'),
         help_text=_('Link to address information (external)'),
+        max_length=2000,
     )
 
 
diff --git a/src/backend/InvenTree/order/migrations/0107_auto_20250221_1241.py b/src/backend/InvenTree/order/migrations/0107_auto_20250221_1241.py
new file mode 100644
index 0000000000..5a4bff1627
--- /dev/null
+++ b/src/backend/InvenTree/order/migrations/0107_auto_20250221_1241.py
@@ -0,0 +1,64 @@
+# Generated by Django 4.2.19 on 2025-02-21 12:41
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("order", "0106_purchaseorder_start_date_returnorder_start_date_and_more"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='purchaseorder',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='salesorder',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='returnorder',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='purchaseorderlineitem',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='salesorderlineitem',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='returnorderlineitem',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='purchaseorderextraline',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='salesorderextraline',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='returnorderextraline',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+        migrations.AlterField(
+            model_name='salesordershipment',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+    ]
diff --git a/src/backend/InvenTree/order/migrations/0108_alter_purchaseorder_link_and_more_squashed_0109_alter_purchaseorderextraline_link_and_more.py b/src/backend/InvenTree/order/migrations/0108_alter_purchaseorder_link_and_more_squashed_0109_alter_purchaseorderextraline_link_and_more.py
new file mode 100644
index 0000000000..bb7a0d36ac
--- /dev/null
+++ b/src/backend/InvenTree/order/migrations/0108_alter_purchaseorder_link_and_more_squashed_0109_alter_purchaseorderextraline_link_and_more.py
@@ -0,0 +1,114 @@
+# Generated by Django 4.2.19 on 2025-02-21 14:57
+
+import InvenTree.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("order", "0107_auto_20250221_1241"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="purchaseorder",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="purchaseorderlineitem",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="returnorder",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="returnorderlineitem",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="salesorder",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="salesorderlineitem",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="salesordershipment",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="purchaseorderextraline",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="returnorderextraline",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="salesorderextraline",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external page",
+                max_length=2000,
+                verbose_name="Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py
index 4e928178fb..b04776a36f 100644
--- a/src/backend/InvenTree/order/models.py
+++ b/src/backend/InvenTree/order/models.py
@@ -354,7 +354,10 @@ class Order(
     )
 
     link = InvenTreeURLField(
-        blank=True, verbose_name=_('Link'), help_text=_('Link to external page')
+        blank=True,
+        verbose_name=_('Link'),
+        help_text=_('Link to external page'),
+        max_length=2000,
     )
 
     start_date = models.DateField(
@@ -1540,7 +1543,10 @@ class OrderLineItem(InvenTree.models.InvenTreeMetadataModel):
     )
 
     link = InvenTreeURLField(
-        blank=True, verbose_name=_('Link'), help_text=_('Link to external page')
+        blank=True,
+        verbose_name=_('Link'),
+        help_text=_('Link to external page'),
+        max_length=2000,
     )
 
     target_date = models.DateField(
@@ -1988,7 +1994,10 @@ class SalesOrderShipment(
     )
 
     link = InvenTreeURLField(
-        blank=True, verbose_name=_('Link'), help_text=_('Link to external page')
+        blank=True,
+        verbose_name=_('Link'),
+        help_text=_('Link to external page'),
+        max_length=2000,
     )
 
     def is_complete(self):
diff --git a/src/backend/InvenTree/part/migrations/0134_auto_20250221_1309.py b/src/backend/InvenTree/part/migrations/0134_auto_20250221_1309.py
new file mode 100644
index 0000000000..f46c453ffa
--- /dev/null
+++ b/src/backend/InvenTree/part/migrations/0134_auto_20250221_1309.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.2.19 on 2025-02-21 13:09
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("part", "0133_alter_partcategory__icon"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='part',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+    ]
diff --git a/src/backend/InvenTree/part/migrations/0135_alter_part_link.py b/src/backend/InvenTree/part/migrations/0135_alter_part_link.py
new file mode 100644
index 0000000000..76a0ebb4a7
--- /dev/null
+++ b/src/backend/InvenTree/part/migrations/0135_alter_part_link.py
@@ -0,0 +1,25 @@
+# Generated by Django 4.2.19 on 2025-02-21 13:46
+
+import InvenTree.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("part", "0134_auto_20250221_1309"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="part",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external URL",
+                max_length=2000,
+                null=True,
+                verbose_name="Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py
index ba686d53b2..ec3c9b3927 100644
--- a/src/backend/InvenTree/part/models.py
+++ b/src/backend/InvenTree/part/models.py
@@ -1071,6 +1071,7 @@ class Part(
         null=True,
         verbose_name=_('Link'),
         help_text=_('Link to external URL'),
+        max_length=2000,
     )
 
     image = StdImageField(
diff --git a/src/backend/InvenTree/stock/migrations/0115_auto_20250221_1323.py b/src/backend/InvenTree/stock/migrations/0115_auto_20250221_1323.py
new file mode 100644
index 0000000000..0f232d3ec5
--- /dev/null
+++ b/src/backend/InvenTree/stock/migrations/0115_auto_20250221_1323.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.2.19 on 2025-02-21 13:23
+
+import InvenTree.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("stock", "0114_alter_stocklocation_custom_icon"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='stockitem',
+            name='link',
+            field=models.TextField(null=True, blank=True)  # Temporary change to force new ALTER COLUMN operation in the next migration
+        ),
+    ]
diff --git a/src/backend/InvenTree/stock/migrations/0116_alter_stockitem_link.py b/src/backend/InvenTree/stock/migrations/0116_alter_stockitem_link.py
new file mode 100644
index 0000000000..cd4d9038c6
--- /dev/null
+++ b/src/backend/InvenTree/stock/migrations/0116_alter_stockitem_link.py
@@ -0,0 +1,24 @@
+# Generated by Django 4.2.19 on 2025-02-21 13:46
+
+import InvenTree.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("stock", "0115_auto_20250221_1323"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="stockitem",
+            name="link",
+            field=InvenTree.fields.InvenTreeURLField(
+                blank=True,
+                help_text="Link to external URL",
+                max_length=2000,
+                verbose_name="External Link",
+            ),
+        ),
+    ]
diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py
index 99ce63b7d7..0285cf9c51 100644
--- a/src/backend/InvenTree/stock/models.py
+++ b/src/backend/InvenTree/stock/models.py
@@ -935,7 +935,10 @@ class StockItem(
     serial_int = models.IntegerField(default=0)
 
     link = InvenTreeURLField(
-        verbose_name=_('External Link'), blank=True, help_text=_('Link to external URL')
+        verbose_name=_('External Link'),
+        blank=True,
+        help_text=_('Link to external URL'),
+        max_length=2000,
     )
 
     batch = models.CharField(
diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py
index 6802561c9d..3b126176f2 100644
--- a/src/backend/InvenTree/stock/tests.py
+++ b/src/backend/InvenTree/stock/tests.py
@@ -155,7 +155,7 @@ class StockTest(StockTestBase):
             item.full_clean()
 
         # A long URL should fail
-        long_url = 'https://website.co.uk?query=' + 'a' * 173
+        long_url = 'https://website.co.uk?query=' + 'a' * 1973
 
         with self.assertRaises(ValidationError):
             item.link = long_url