A practical tool for e-commerce teams and SEO specialists to audit and improve on-page product listings at scale. Built with Python, Pandas, and Streamlit: upload a product catalog, see every title/description/image/price issue, review keyword-aware suggestions, and export an optimized copy — original columns are always preserved.
E-commerce stores often have hundreds or thousands of thin product listings: short titles, missing descriptions, no keywords, broken image references. Fixing them manually in a spreadsheet is slow and error-prone. This tool surfaces the exact problems, proposes concrete title/description improvements using the product's own brand/category/keywords, and produces a safe export for review before applying changes upstream.
- Upload CSV or XLSX product catalogs (title, description, price, category, brand, image columns recognized and normalized)
- Audit engine: empty/short/long titles, empty/short descriptions, missing prices, missing or malformed image URLs, duplicate titles
- Severity grading: critical / warning / info
- Suggestion engine: expands short titles with brand/category keywords, generates description copy, records reasons for every change
- Safe apply: writes
optimized_title,optimized_description,optimizedcolumns without overwriting originals - Download the optimized catalog as CSV
The tool looks for a title column (title, name, product, product title) and optional description, price, category, brand, image columns. Unknown columns are ignored. Missing values are flagged, never guessed.
- Python 3.11
- Pandas (catalog processing)
- Streamlit (web UI)
- openpyxl (XLSX support)
ecommerce-seo-optimizer/
├── app.py # Streamlit application
├── optimizer.py # Validation, suggestion, and export engine
├── tests/
│ └── test_optimizer.py
├── requirements.txt
└── .gitignore
python -m venv venv
# Windows: venv/Scripts/activate | macOS/Linux: source venv/bin/activate
pip install -r requirements.txtstreamlit run app.pyUpload a catalog or use the bundled sample, review the issues and suggestions, then apply and download the optimized file.
pytest -qTests cover issue detection, suggestion generation, missing-title handling, safe apply behavior, and CSV export.
- Keyword extraction is heuristic (brand, category, top words); it is not a full SEO content service
- Title length guidance uses common best-practice ranges (20-70 title, 50-160 description) — tune the constants in
optimizer.pyto your vertical if needed - No integration with platforms (Shopify, WooCommerce, etc.); export and import manually
- Keyword density scoring and SERP snippet preview
- Competitor title analysis (from a comparison file)
- Shopify/WooCommerce export formats
- Batch apply via a reviewed CSV diff
MIT (add a LICENSE file before commercial use if required by your use case).
Developed by Muhammad Hamid
Digital Marketing | SEO | Performance Marketing | E-commerce | Web Development
- Portfolio: https://abouthamid.web.app/
- LinkedIn: https://www.linkedin.com/in/muhammad-hamid-digital-marketing/
- WhatsApp: https://wa.me/923167417135
Have a project, job opportunity, or collaboration in mind? Contact Muhammad Hamid on WhatsApp.