PHPackages                             webdna/craft-siteseer - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. webdna/craft-siteseer

ActiveCraft-plugin[Utility &amp; Helpers](/categories/utility)

webdna/craft-siteseer
=====================

Visit all the pages

0150[1 issues](https://github.com/webdna/craft-siteseer/issues)PHP

Since Mar 25Pushed 4mo agoCompare

[ Source](https://github.com/webdna/craft-siteseer)[ Packagist](https://packagist.org/packages/webdna/craft-siteseer)[ RSS](/packages/webdna-craft-siteseer/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Siteseer
========

[](#siteseer)

Visit all the pages, check them, prepare them for others and maybe take a little snapshot or two to remember it by.

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

[](#requirements)

This plugin requires Craft CMS 5.3.0 or later, and PHP 8.2 or later.

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

[](#installation)

You can install this plugin from the Plugin Store or with Composer.

#### From the Plugin Store

[](#from-the-plugin-store)

Go to the Plugin Store in your project’s Control Panel and search for “Siteseer”. Then press “Install”.

#### With Composer

[](#with-composer)

Open your terminal and run the following commands:

```
# go to the project directory
cd /path/to/my-project.test

# tell Composer to load the plugin
composer require webdna/craft-siteseer:dev-main

# tell Craft to install the plugin
./craft plugin/install siteseer
```

Usage
-----

[](#usage)

The plugin is almost exclusively used from its utilities menu. The siteseer utility allows the configuration of a collection destinations, an itinerary of sorts. You can specifiy which sites it should plan to visit, then specify by section, products (requires commerce), category groups too (retro!). You may add any uris you like in the manual URIs table. Static uris can also be added using the config file, for pages without a CMS presence.

Clicking the 'Run a scan' button will then convert your itinerary into a series of queue jobs, which will take place in the background. Once finished you can return to the utilities page to see a summary of any errors found during the trip. From the table you can visit the problem url, find out more about its error code, visit its edit page in the CP (if available) and delete the record once you have addressed the problem.

This can also be done from the command line using the `./craft siteseer/default/visit` command. The command runs the visit directly and does not make use of batched queue jobs so could be computationally demanding for very large sites.

### Experimental Dev features

[](#experimental-dev-features)

The plugin also offers the ability to take html snapshots of the pages that are visited in dev mode only. This hopes to address for developers the difficulty in testing functionality of sites that use static caching on their production hosting. This is not a production worthy static caching solution.

Use this however you please but our use case was to try and address the difficulty in testing certain functionality on sites that use static caching on their production hosting, which was not trivially replicated locally. You can do a little server rewrite in ddev to serve the static html versions of the pages from an extra subdomain. The necessary starter files are located in /resources. Place the cors.conf file inside .ddev/nginx and the sscache.conf file inside .ddev/nginx\_full and update the domain in each.

Add the extra hostname to ddev

```
    ...
    additional_hostnames: ["sscache."]
    ...
```

then run

```
    ddev restart
```

You can then run a scan with snapshots turned on. Once finished you can navigate to one of these pages with the sscache subdomain and see the saved page. If it has set up correctly you should see a yellow banner across the top with "This is a **cached page** generated at YYY-MM-DD HH:MM:SS".

*NB:* If you are using http only for whatever reason, you can set

```
'useHttps' => false
```

in the siteseer.php config file.

###  Health Score

21

—

LowBetter than 17% of packages

Maintenance50

Moderate activity, may be stable

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/af76e3e79806ca4a242a00774c92bc950a956c4ac8d3fa5d545e758e4617599b?d=identicon)[webdna](/maintainers/webdna)

---

Top Contributors

[![mikeymeister](https://avatars.githubusercontent.com/u/34517288?v=4)](https://github.com/mikeymeister "mikeymeister (7 commits)")

### Embed Badge

![Health badge](/badges/webdna-craft-siteseer/health.svg)

```
[![Health](https://phpackages.com/badges/webdna-craft-siteseer/health.svg)](https://phpackages.com/packages/webdna-craft-siteseer)
```

###  Alternatives

[scrumble-nl/laravel-model-ts-type

This package makes it possible to generate TypeScript types based on your models

6990.6k](/packages/scrumble-nl-laravel-model-ts-type)[evgeniyrru/yii2-slick

Yii2 extension for Slick Carousel

22210.7k3](/packages/evgeniyrru-yii2-slick)[area17/twill-transformers

Transformers for Twill apps

1113.9k](/packages/area17-twill-transformers)

PHPackages © 2026

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