
Накратко за проекта
В OpenCart 2.3.0.2 липсва вграден начин за редакция на robots.txt
. Всеки път, когато трябва да се добави нов Disallow или да се отвори достъп до ресурс, администраторите са принудени да ползват FTP достъп и да чакат кешът да се опресни.
Това забавя SEO процесите, затруднява технически по-неопитни екипи и носи риск от грешки. Решението, което разработих, е Robots Editor модул – пълноценен UI в админ панела с директен контрол върху robots.txt и специален бутон за изчистване на неговия кеш.
Ключови подобрения
- Редакция на robots.txt през удобен интерфейс в админ панела.
- Clear robots.txt cache бутон, който премахва само кеша на файла.
- SEO удобство – промени се виждат веднага при crawl и одити.
- Без FTP/SSH – напълно достъпно за маркетинг и SEO екипи.
Използвани технологии
- OpenCart 2.3.0.2 – основната платформа.
- OCMOD – за интеграция без промяна в ядрото.
- PHP Controller + View – backend и UI логика.
- Cache API – за селективно изчистване на robots.txt кеша.
Предизвикателства
Основният проблем беше, че robots.txt се кешира и след промяна новата версия не се виждаше веднага. За SEO това е критично – Search Console, SEMrush и други инструменти продължават да виждат старата версия, което блокира индексацията.
Процес на разработка
- Анализ – проверих как OpenCart зарежда robots.txt и къде се кешира.
- Проектиране – реших модулът да има три части: UI редактор, Save логика и Purge бутон.
- Имплементация – написах контролер
robots_editor.php
, view с textarea и добавих бутон „Clear robots.txt cache“. - Тестване – използвах
curl
и SEO инструменти, за да проверя дали веднага се връща актуалната версия. - Документация – описах инсталация и работа, за да е достъпно за всеки администратор.
Примерен код
Контролерът съдържа метод за изчистване на кеша:
public function clearCache() {
$this->load->language('extension/module/robots_editor');
// изчистване само на robots.txt кеша
$this->cache->delete('robots.txt');
$this->session->data['success'] = $this->language->get('text_success_cache');
$this->response->redirect($this->url->link('extension/module/robots_editor', 'user_token=' . $this->session->data['user_token'], true));
}
View шаблонът има textarea и бутон за кеша:
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="input-robots">robots.txt</label>
<textarea name="robots_content" rows="20" class="form-control"><?php echo $robots_content; ?></textarea>
</div>
<button type="submit" class="btn btn-primary">Запази</button>
<a href="<?php echo $clear_cache; ?>" class="btn btn-warning">Clear robots.txt cache</a>
</form>
Стъпки за репродуциране
- Инсталирах модула през Extensions → Modules.
- Отворих Robots Editor в админ панела.
- Редактирах съдържанието на
robots.txt
и запазих. - Натиснах бутона Clear robots.txt cache.
- Проверих с
curl
или SEO инструмент – получих актуалната версия.
Резултат
След внедряването на модула вече мога незабавно да прилагам промени. Crawler-ите виждат актуално съдържание, а рискът от счупени одити и забавена индексация отпадна.
Извод
Един на пръв поглед малък проблем – кешът на robots.txt
– може да доведе до големи SEO загуби.
Чрез добре структуриран модул с OCMOD, кеш контрол и удобен UI, аз постигнах пълен контрол над
robots.txt
, без технически бариери.
Отворен код
Проектът е публикуван като open source под GPL v3 license.
Всеки може да го използва, адаптира и допринася за подобрения.
GitHub Repository – opencart-robots-editor