Проекти

Case Study: Robots.txt Editor & Cache Control за OpenCart 2.3.0.2

26 септември 2025 г.

Накратко за проекта

В 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 и други инструменти продължават да виждат старата версия, което блокира индексацията.

Процес на разработка

  1. Анализ – проверих как OpenCart зарежда robots.txt и къде се кешира.
  2. Проектиране – реших модулът да има три части: UI редактор, Save логика и Purge бутон.
  3. Имплементация – написах контролер robots_editor.php, view с textarea и добавих бутон „Clear robots.txt cache“.
  4. Тестване – използвах curl и SEO инструменти, за да проверя дали веднага се връща актуалната версия.
  5. Документация – описах инсталация и работа, за да е достъпно за всеки администратор.

Примерен код

Контролерът съдържа метод за изчистване на кеша:

Php
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 и бутон за кеша:

Php
<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>

Стъпки за репродуциране

  1. Инсталирах модула през Extensions → Modules.
  2. Отворих Robots Editor в админ панела.
  3. Редактирах съдържанието на robots.txt и запазих.
  4. Натиснах бутона Clear robots.txt cache.
  5. Проверих с curl или SEO инструмент – получих актуалната версия.

Резултат

След внедряването на модула вече мога незабавно да прилагам промени. Crawler-ите виждат актуално съдържание, а рискът от счупени одити и забавена индексация отпадна.

Извод

Един на пръв поглед малък проблем – кешът на robots.txt – може да доведе до големи SEO загуби. Чрез добре структуриран модул с OCMOD, кеш контрол и удобен UI, аз постигнах пълен контрол над robots.txt, без технически бариери.

Отворен код

Проектът е публикуван като open source под GPL v3 license.
Всеки може да го използва, адаптира и допринася за подобрения.
GitHub Repository – opencart-robots-editor