DELETE FROM archive
WHERE STR_TO_DATE(SUBSTR(created_date, 0, 25), '%a, %d %b %Y %H:%i:%S') <
DATE_SUB(NOW(), INTERVAL 30 DAY);
Você pode então remover o código PHP para calcular o intervalo de datas e deixar o MySQL lidar com isso para você.
Se você tiver controle sobre a estrutura do banco de dados, será muito mais eficiente armazenar a data em um campo DATETIME, em vez de chamar
STR_TO_DATE
em cada linha do banco de dados.