PHPackages                             matrixcreate/craft-simple-seo-import - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. matrixcreate/craft-simple-seo-import

ActiveCraft-plugin[PDF &amp; Document Generation](/categories/documents)

matrixcreate/craft-simple-seo-import
====================================

Import SEO metadata from CSV files and automatically create entries, with SEOmatic integration.

1.0.5(3mo ago)1245MITTwigPHP &gt;=8.2

Since Jul 9Pushed 3mo agoCompare

[ Source](https://github.com/MatrixCreate/craft-simple-seo-import)[ Packagist](https://packagist.org/packages/matrixcreate/craft-simple-seo-import)[ Docs](https://github.com/matrixcreate/craft-simple-seo-import)[ RSS](/packages/matrixcreate-craft-simple-seo-import/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (6)Used By (0)

Simple SEO Import
=================

[](#simple-seo-import)

A Craft CMS plugin for importing SEO metada from CSV files and automatically creating entries, with an intuitive drag-and-drop field mapping interface and SEOmatic integration.

Features
--------

[](#features)

- **🎯 Flexible CSV Processing**: Accepts any column names - no rigid header validation
- **📊 Visual Field Mapping**: Drag-and-drop interface with double-click convenience and remove buttons
- **🌳 Hierarchical Import**: Automatic parent-child relationships based on URL structure
- **🔄 Entry Duplication**: Uses existing entries as templates with field serialization
- **🎨 Enhanced Preview**: Tree-structured hierarchy display with visual depth indicators
- **📋 Complete CSV Preview**: Scrollable table with sticky headers showing all data
- **🔧 SEOmatic Integration**: Automatically populates SEO meta descriptions
- **⚡ Skip Homepage Option**: Checkbox to exclude homepage entries from import
- **✅ Success Messaging**: Clear feedback with enhanced visual indicators

Requirements
------------

[](#requirements)

- Craft CMS 5.0+
- PHP 8.2+
- SEOmatic plugin (optional, for SEO field mapping)

Installation
------------

[](#installation)

### Via Composer (Recommended)

[](#via-composer-recommended)

```
composer require matrixcreate/craft-simple-seo-import
```

### Manual Installation

[](#manual-installation)

1. Download the plugin files
2. Copy to your `plugins/` directory
3. Add to your project's composer.json:

```
{
    "repositories": [
        {
            "type": "path",
            "url": "./plugins/simple-seo-import"
        }
    ],
    "require": {
        "matrixcreate/craft-simple-seo-import": "*"
    }
}
```

4. Run `composer install`
5. Install the plugin through the Craft control panel

CSV Format
----------

[](#csv-format)

The plugin is **completely flexible** with column names. You can use any column headers - the field mapping step handles all variations.

### Example CSV Structure

[](#example-csv-structure)

```
URL,Slug,Page Title,Hero Text,Description
https://site.com/services,services,Services,Our services,Welcome to Services
https://site.com/services/dental,dental,Dental Services,Dental care,Quality Dental Care
https://site.com/services/dental/cleaning,cleaning,Teeth Cleaning,Professional cleaning,Professional Teeth Cleaning
```

### Hierarchical Structure

[](#hierarchical-structure)

The plugin automatically detects parent-child relationships based on URL structure:

- `/services` → Top level entry
- `/services/dental` → Child of "services"
- `/services/dental/cleaning` → Child of "dental"

Usage
-----

[](#usage)

### 1. Upload CSV

[](#1-upload-csv)

Navigate to **Simple SEO Import** in the control panel and upload your CSV file. Any column names are accepted.

### 2. Select Base Entry &amp; Configure

[](#2-select-base-entry--configure)

- Choose an existing entry to use as a template
- Optionally check "Skip first row" to exclude homepage entries

### 3. Map Fields

[](#3-map-fields)

Use the visual interface to map CSV columns to entry fields:

- **Drag and drop** CSV fields to target fields
- **Double-click** CSV fields for auto-mapping convenience
- **Red X buttons** to quickly remove mappings

### 4. Preview Hierarchy

[](#4-preview-hierarchy)

Review the complete hierarchical structure with:

- Visual depth indicators and color coding
- Parent-child relationships clearly displayed
- Complete CSV data preview with scrollable table

### 5. Import

[](#5-import)

Perform the final import with automatic parent-child relationship creation.

Field Mapping Options
---------------------

[](#field-mapping-options)

The plugin supports these target fields:

- **`hierarchy.address`** → URL field for hierarchy detection (not saved to entries)
- **`entry.slug`** → Entry's URL slug
- **`entry.title`** → Entry's title field
- **`entry.heroTitle`** → Custom Rich Text/CKEditor field
- **`seomatic.meta.description`** → SEOmatic meta description field

Advanced Features
-----------------

[](#advanced-features)

### Hierarchical Processing

[](#hierarchical-processing)

- **Import Order**: Parents created first, then children
- **Preview Order**: Tree structure with proper nesting
- **Depth Indicators**: Visual levels (Top Level, Level 2, Level 3, etc.)
- **Color Coding**: Different colors per depth level

### Enhanced UX

[](#enhanced-ux)

- **Multi-step Wizard**: Clear progression through upload → map → preview → import
- **Real-time Validation**: Contextual error messages
- **Dual Navigation**: Top and bottom action buttons
- **Complete Data Display**: No artificial preview limits

### Technical Architecture

[](#technical-architecture)

- **Field Serialization**: Reliable entry duplication using Craft's native methods
- **URL Parsing**: Intelligent parent-child detection from URL structure
- **Session Management**: Secure data handling throughout the import process

Supported Field Types
---------------------

[](#supported-field-types)

### ✅ Confirmed Working

[](#-confirmed-working)

- Plain Text fields
- Rich Text/CKEditor fields
- Lightswitch fields
- Asset fields
- SEOmatic fields

### ❌ Known Limitations

[](#-known-limitations)

- Content Block fields (due to architectural restrictions)

Development
-----------

[](#development)

Built with modern web technologies:

- **Enhanced JavaScript**: Multi-step wizard with drag-and-drop
- **CSS Grid &amp; Flexbox**: Responsive layouts
- **AJAX Integration**: Seamless user experience
- **PHP 8.4**: Modern PHP features and type declarations

Plugin Structure
----------------

[](#plugin-structure)

```
src/
├── Plugin.php                    # Main plugin class
├── controllers/
│   └── ImportController.php      # Import workflow endpoints
├── services/
│   ├── CsvParserService.php      # Flexible CSV parsing
│   ├── EntryDuplicatorService.php # Entry creation with hierarchy
│   └── HierarchyService.php      # URL parsing and relationships
└── templates/
    └── index.twig                # Complete wizard interface

```

Support
-------

[](#support)

- **Issues**: [GitHub Issues](https://github.com/matrixcreate/craft-simple-seo-import/issues)
- **Documentation**: [GitHub README](https://github.com/matrixcreate/craft-simple-seo-import/blob/main/README.md)
- **Developer**: [Matrix Create](https://matrixcreate.com/)

License
-------

[](#license)

MIT License - see LICENSE file for details.

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md) for version history and updates.

###  Health Score

42

—

FairBetter than 89% of packages

Maintenance83

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~47 days

Total

5

Last Release

114d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/115574974?v=4)[BenHMatrix](/maintainers/BenHMatrix)[@BenHMatrix](https://github.com/BenHMatrix)

---

Top Contributors

[![BenHMatrix](https://avatars.githubusercontent.com/u/115574974?v=4)](https://github.com/BenHMatrix "BenHMatrix (10 commits)")

---

Tags

packagistpackagist-libraryplugincsvimportcmshierarchyCraftseo

### Embed Badge

![Health badge](/badges/matrixcreate-craft-simple-seo-import/health.svg)

```
[![Health](https://phpackages.com/badges/matrixcreate-craft-simple-seo-import/health.svg)](https://phpackages.com/packages/matrixcreate-craft-simple-seo-import)
```

###  Alternatives

[nystudio107/craft-seomatic

SEOmatic facilitates modern SEO best practices &amp; implementation for Craft CMS 5. It is a turnkey SEO system that is comprehensive, powerful, and flexible.

1741.4M46](/packages/nystudio107-craft-seomatic)[topshelfcraft/walk

A Craft-aware array\_walk() method, plus some super-convenient console commands, to easily call Craft service methods on a collection of elements or values.

221.5k](/packages/topshelfcraft-walk)[enupal/snapshot

PDF or Image generation from a Url or HTML page

1137.9k](/packages/enupal-snapshot)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
