What is the appropriate column type for backing up URLs in MySQL?

I've been using varchar(300),but I've also noticed longer urls.

Use TEXT, it's enough for every URL.

Note that with long URLs, you won't be able to create an index that covers the whole URL. If you need a UNIQUE index, you should calculate the URL hash, store the hash separately and index the hash instead.