NSN SEO

A Tampermonkey userscript for SEO managers — shows the main-content boundary, editorial links, and blank or broken images, each toggleable. Exports outline-with-context, opens filtered GSC views, runs on every NSN site automatically.

Renamed from NSN Main-Content Inspector, and the former NSN Image Highlighter is now one of its layers. If Tampermonkey lists either of those separately after you install, delete them — they are superseded and the old Image Highlighter does not run on newer sites.

Install / Update (direct) Get Tampermonkey

One-time setup (the only thing you ever need to do)

Five steps. After this, you'll get silent auto-updates within 6 hours of every new release — no reinstall, no manual checks, no prompts.

1. Install Tampermonkey

If you don't already have it: Chrome — install in one click from the Chrome Web Store. Other browsers — follow Tampermonkey's install guide for Edge, Firefox, Safari or Opera.

2. Allow userscripts to run (Chrome / Edge)

Chrome-based browsers need an extra permission before Tampermonkey can execute userscripts (the script installs fine without it, but stays inert until this is on). Do one of the following — Firefox and Safari users can skip this step.

Chrome / Edge 138+ — "Allow User Scripts" toggle (recommended)
  1. Right-click the Tampermonkey toolbar icon → Manage extension.
    Right-click the Tampermonkey icon and choose Manage extension
  2. Turn on the Allow User Scripts toggle.
    Enable the Allow User Scripts toggle
Older Chrome / Edge (no toggle) — Developer Mode
  1. Open chrome://extensions (or edge://extensions) — e.g. browser menu ⋮ → Extensions → Manage Extensions.
    Open the Extensions page from the browser menu
  2. Turn on Developer mode (top-right).
    Enable Developer mode at the top-right of the Extensions page

On Edge for Android, enable Developer Mode following this sequence:

Enable Developer Mode in Edge for Android

Why is this needed? See Tampermonkey's FAQ Q209.

3. Give Tampermonkey access to all sites (Chrome / Edge)

Even with the toggle above on, Chrome can still block the extension until its Site access is set to On all sites. This is easy to miss — the right-click Manage extension menu does not lead here, so go the long way:

  1. Open chrome://extensions (or edge://extensions).
    Open the Extensions page
  2. On the Tampermonkey card, click Details.
  3. Under Site access, choose On all sites.

4. Install the userscript

Pick whichever is easier — both result in the same install with auto-update baked in:

Easiest — direct install
  1. Click Install / Update (direct) at the top of this page.
  2. Tampermonkey detects the userscript and opens its install dialog.
  3. Click Install.

If your browser downloads the file instead of opening Tampermonkey's dialog, use the manual path below.

Always works — paste URL into Tampermonkey
  1. Copy this URL: (or click "Copy install URL" at the top of the page).
  2. Click the Tampermonkey icon in your browser toolbar → Dashboard.
  3. Top tabs: click Utilities.
  4. Scroll to "Import from URL", paste the URL, click Install.
  5. Confirm in the install dialog.

5. Enable auto-updates (the important part)

This is what makes the script self-updating — do it once and you're set forever. After installing the script:

  1. Tampermonkey icon → Dashboard.
  2. Top tabs: Settings.
  3. Scroll to the "Userscript Update" section.
  4. Set Check Interval to Every 6 Hours (the most aggressive option).
  5. Tick Automatic installation — updates install silently, no dialogs.
  6. Scroll to the bottom of the page, click Save.

Done. Visit any NSN site (e.g. footballwhispers.com) — the floating 🔎 button appears bottom-right. Hover for the menu.

What it does on a page

Hover the button, bottom-right of any NSN page:

The ◆ menu, with sections for copying to clipboard, navigating the page, search performance, WordPress admin, inspection, internal-link audit, the three "Show on the page" layer checkboxes, and the highlight/copy filters

Show on the page is where you turn each layer on or off. Blank / broken images is off by default — tick it when you are auditing images, untick it to read the site normally. Your choice is remembered across pages.

Using the blanked-image finder (photo clean / restoration work)

Turn it on per session: ◆ menu → Show on the page → Blank / broken images. It stays on until you untick it, on every page.

Every image on the page gets outlined and labelled. Four labels:

LabelMeansReportable as-is?
PIXELA 1×1 pixel, or a 1-pixel placeholderYes
UNICOLORA single colour: a blank replacementYes
BROKEN4xx / 5xx, or it failed to loadYes
COPYRIGHTUploaded while this site was being cleaned, and the file is smallNo, check it first

The first three are measured from the image itself. COPYRIGHT is a hint, not a verdict: it does not look at the image, only at its upload date and size, so a small logo uploaded in that period trips it whether or not anything ever happened to it. Each site has its own date window, because the clean-ups ran per site over different periods.

Reporting images for restoration

  1. Hover ⎈ copy in the banner and pick Copy blanked image URLs (every pixel and unicolor image) or Copy broken image URLs (every 4xx/5xx). One URL per line, ready to paste into a ticket.
    They always give the original upload URL, never the media.<site>.com proxy address, which is a resize and cannot be re-uploaded. Deduplicated too, so one upload served at five sizes is one line.
  2. Batch them per site. One list for a whole site is far easier to action than a request per image.
  3. To see what an image was, open the page in the Wayback Machine and pick a snapshot from before the clean-up. The page renders with the images still in place, and most affected pages carry more than one, so a single snapshot usually covers several at once.

Nothing is highlighted? Either the checkbox is unticked, or the page genuinely has no flagged images. If there is no ◆ button at all, the script is not running, so check Tampermonkey is enabled for the site.

Stays out of the way: skipped on /wp-admin/, /wp-login.php, and other back-office contexts.