Installation & Configuration Guide

Welcome to SEO Watcher, a Google Sheets extension that monitors your website’s SEO health directly from your spreadsheet. This guide walks you through every step: from installing the extension to configuring Google Search Console, SerpApi, and authorizing your Google account.


Requirements

  • A Google account with access to Google Sheets.
  • A web browser (Chrome is recommended for the best experience with Google Sheets extensions).
  • Optional: A SerpApi account if you plan to run SERP-based checks.
  • Optional: Access to Google Search Console for index-status and property-level checks.

Installing the Extension

  1. Open Google Sheets and create a new spreadsheet (or open an existing one).
  2. Navigate to Extensions > Add-ons > Get add-ons from the top menu.
  3. Search for SEO Watcher in the Google Workspace Marketplace.
  4. Click Install and follow the on-screen prompts to grant the required permissions.
  5. Once installed, the 🧿 SEO Watcher 🧿 menu will appear under Extensions in your spreadsheet’s top menu bar.

If you don’t see the menu immediately, try refreshing the page. The menu is loaded each time the spreadsheet is opened. Look for it under Extensions > 🧿 SEO Watcher 🧿.


Getting Started with the Setup Wizard

The Setup Wizard is the recommended way to get started with SEO Watcher. It walks you through initialization, Google Search Console setup, URL discovery, and your first batch of checks — all in a single guided flow.

Launching the Wizard

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Setup Wizard.
  2. A sidebar will open on the right side of the screen with a step-by-step wizard.

Wizard Steps

The wizard guides you through up to 7 steps (some are conditional):

Step What Happens
1. Welcome The wizard automatically initializes the required sheets (checks, results, results_log, header, error_log). You’ll see a confirmation when complete.
2. Google Search Console Choose to Connect GSC (to auto-discover your top URLs and enable index status checks) or Skip GSC (to enter URLs manually). If you connect GSC, you can configure OAuth or Service Account authentication directly from the wizard.
3. Select GSC Property (Only if GSC is connected) Choose which Search Console property to monitor. The wizard lists all properties accessible to your authenticated account.
4. Select URLs to Monitor If GSC is connected, the wizard displays your top performing pages from the last 28 days — select the ones you want to monitor. You can also add custom URLs manually. Without GSC, you enter URLs manually.
5. URL Analysis The wizard fetches each selected URL and analyzes its current SEO state (status code, title, H1, canonical, meta robots, robots.txt). You then choose which check types to create: HTTP Status 200, Meta robots, Title, H1, Canonical self-referencing, GSC Index Status, and Robots.txt.
6. Email Reports (Optional) Configure email recipients and sending conditions (on every run, only on changes, or only on failures). You can skip this step and configure it later.
7. Setup Complete A summary of everything that was configured: sheets initialized, GSC status, URLs monitored, checks created, and email report status.

What Gets Created

During the Welcome step, the wizard creates the following sheets:

Sheet Purpose
checks Stores all your check definitions (URL, type, element, value, function). This is where your monitoring rules live.
results Stores the latest result for each check, including the result status, timestamp, last known value, and whether a change was detected.
results_log A running history of every check result over time, useful for tracking changes and trends.
header Holds system-level settings such as the default HTTP Referer header used when fetching pages.
error_log Logs any errors encountered during check execution, including timestamps, context, and stack traces for debugging.

Important: Do not rename or delete these sheets. SEO Watcher relies on them to function correctly.


Configuring Google Search Console (Configure GSC)

Google Search Console integration lets you run index-status checks and access property-level SEO data. SEO Watcher supports two authentication methods: OAuth (simple) and Service Account (advanced).

Opening the Configuration Modal

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Settings > Search Console > Configure GSC.
  2. A modal dialog will open with two tabs at the top: OAuth and Service Account.

Option A: OAuth (Simple)

This is the recommended method for most users. It uses your Google account to authenticate directly.

  1. In the GSC Configuration modal, select the OAuth tab.
  2. Click the Authorize with Google button (displayed with the Google logo).
  3. A new browser window will open, taking you to the standard Google sign-in and permissions screen.
  4. Sign in with the Google account that has access to your Search Console properties.
  5. Grant the requested permission: “View your Search Console data” (webmasters.readonly scope).
  6. After authorization, the window will close and the modal will show the status as Connected (green indicator).
  7. You will also see a Redirect URI field with a copy button — this is provided for reference if you need to configure a custom OAuth client in Google Cloud Console.
  8. Make sure the Enable GSC integration checkbox is checked.
  9. Click Save to store your configuration.

To disconnect or re-authorize, click Reset Authorization at the bottom of the OAuth tab.


Option B: Service Account (Advanced)

Use a service account if you need server-to-server authentication or want to connect to Search Console properties that belong to another organization.

Prerequisites

  • A Google Cloud project with the Search Console API enabled.
  • A service account created in that project.
  • The service account email address added as a user in Google Search Console with at least Read permission on the relevant properties.

Steps

  1. In the GSC Configuration modal, select the Service Account tab.
  2. Enter the Service Account Email in the designated field.
    • The format must be: your-service-account@your-project.iam.gserviceaccount.com
  3. Paste the Private Key in PEM format into the private key field.
    • The key must start with -----BEGIN PRIVATE KEY----- and end with -----END PRIVATE KEY-----.
    • The key must contain at least 3 lines of content between the markers.
    • The extension will automatically clean up common formatting issues (escaped newlines, surrounding quotes).
  4. Make sure the Enable GSC integration checkbox is checked.
  5. Click Test Connection to verify the credentials work correctly.
  6. If the test succeeds, click Save to store your configuration.

Security note: Your service account credentials are stored in your personal Google Apps Script User Properties. They are not shared with other users who have access to the spreadsheet.


Listing Your GSC Properties

After configuring GSC, you can verify access to your properties:

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Settings > Search Console > List Properties.
  2. A list of all Search Console properties accessible to your authenticated account will be displayed.

Configuring SerpApi

SerpApi integration enables serpcheck operations — checks that monitor your keyword rankings in search engine results pages.

Steps

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Settings > SerpApi.
  2. A modal dialog will open with a single field: SerpApi Private Key.
  3. Enter your SerpApi API key (e.g., 599021a...).
    • If you don’t have an account yet, click the link in the dialog to sign up at serpapi.com.
  4. Click Save Configuration.

Clearing Your Key

If you need to remove or rotate your SerpApi key:

  1. Open the same modal via Extensions > 🧿 SEO Watcher 🧿 > Settings > SerpApi.
  2. Click Clear Key.
  3. Confirm the action when prompted.

Note: Without a valid SerpApi key, any serpcheck operations will fail with the message: “Missing SerpApi Key. Configure it in Extensions > 🧿 SEO Watcher 🧿 > Settings > SerpApi.”


Authorizing the Extension with Google

The first time you run SEO Watcher, Google will ask you to authorize the extension. This is standard for all Google Sheets extensions and is required for the tool to operate.

What Happens

  1. When you first click any item in the Extensions > 🧿 SEO Watcher 🧿 menu (e.g., Setup Wizard or Run Update), Google will show an authorization prompt.
  2. Click Continue to proceed.
  3. Select the Google account you want to use.
  4. Google may show a warning screen that says “This app isn’t verified.” This is normal for custom Google Workspace scripts.
    • Click Advanced at the bottom left.
    • Click Go to SEO Watcher (unsafe) — this label is standard for all unverified scripts and does not indicate any actual risk.
  5. Review the permissions requested and click Allow.

Permissions Requested

Permission Why It’s Needed
View and manage spreadsheets To read your check definitions and write results.
Connect to external services To fetch web pages, call SerpApi, and verify your license.
Send email on your behalf To deliver email reports when configured.
Display UI elements To show configuration modals and sidebars.

You only need to authorize once per spreadsheet. If you copy the spreadsheet, you’ll need to authorize again in the new copy.


Inserting Your First Check

After initialization and configuration, you’re ready to add your first SEO check.

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Insert Check.
  2. A 6-step wizard sidebar will open on the right side of the screen.

Step-by-Step Wizard

Step What to Enter Example
1. URL The full URL to check (must include http:// or https://). https://example.com/page
2. Check Type Select the type of check to perform. content, meta, header, serpcheck, ping, sitemap, robots.txt, index_status
3. Element Specify what to look for. Suggestions appear based on the selected type. For content: h1, title, .class-name; For meta: description, robots; For serpcheck: top10, top3; For header: statuscode
4. Expected Value The value you expect the check to match. My Page Title, 200, noindex
5. Function A modifier that controls how the value is compared. (default — contains), exact, trim, notin
6. Review & Save Review all entries and click Save to add the check to the checks sheet.

Running Your Checks

Once you have added one or more checks:

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Run Update.
  2. The extension will process every check in the checks sheet and write results to the results and results_log sheets.

Free vs PRO: Understanding Your Plan

The interface for both Free and PRO versions is identical. Every menu item, modal, sidebar, and configuration option looks and works the same way. The difference is in what happens when your checks run.

Free Version — 50-Check Limit

The Free version of SEO Watcher allows you to run up to 50 checks per execution. This is a hard limit enforced at runtime:

  • When the 50-check threshold is reached, all remaining checks are marked as failed with the status: “LICENSE LIMIT REACHED: Upgrade to PRO to run > 50 checks.”
  • Additionally, free users are subject to a time limit of approximately 5.5 minutes per execution. If this limit is reached before all 50 checks complete, remaining checks are stopped with the status: “TIME LIMIT REACHED: Upgrade to PRO to remove execution time limits.”

This is sufficient for small sites or for evaluating the tool’s capabilities before committing to a subscription.

PRO Version — Unlimited Checks + Watchdog Engine

The PRO version removes all restrictions:

Capability Free PRO
Number of checks per run 50 Unlimited
Execution time limit ~5.5 minutes None (Watchdog handles continuation)
Watchdog engine Not available Enabled
Scheduled automatic updates Not available Enabled
Email reports after scheduled runs Not available Enabled

The Watchdog Engine (PRO Only)

The Watchdog is the engine that makes large-scale SEO audits possible. Google Apps Script has a built-in 6-minute execution limit — this means that without Watchdog, any audit with more than a few dozen checks would be cut short.

How Watchdog works:

  1. When a PRO user runs an update, the Watchdog monitors execution time.
  2. Before the Google time limit is reached (at ~4.5 minutes), it saves the current execution state — which checks have been completed, the current position, and all progress data.
  3. It then creates a continuation trigger that automatically resumes execution from where it left off.
  4. This cycle repeats as many times as needed until every single check has been processed.

The result: you can run hundreds or even thousands of checks across your entire website portfolio, and every single one will be completed — no matter how long it takes.

Without Watchdog (Free version), execution simply stops when the time limit is reached. Any checks not yet processed are marked as failed, and there is no automatic resumption.

When to Upgrade

If any of the following apply to you, the PRO version is essential:

  • You need to monitor more than 50 checks (URLs, keywords, meta tags, etc.).
  • You want scheduled, hands-off monitoring that runs automatically at set intervals.
  • You’re managing multiple websites or a large site with many pages to audit.
  • You need the Watchdog engine to guarantee that every check completes, regardless of volume.

Upgrade at: SEO Watcher PRO


Configuring Email Reports

SEO Watcher can send email summaries after each update run.

Steps

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Settings > Email Reports.
  2. In the modal, enter one or more email recipients (comma-separated).
  3. Configure the sending behavior:
    • Enable email reports — Master toggle to turn email reports on or off.
    • Send only when changes detected — Skip the email if no check results have changed since the last run.
    • Send only when failures detected — Skip the email if all checks passed.
  4. Click Send Test to verify delivery with a test email.
  5. Click Save to store the configuration.

To remove all email settings, click Clear Configuration and confirm.


Scheduling Automatic Updates (PRO)

This feature requires the PRO version. Free users will see an overlay explaining the feature and prompting an upgrade.

Scheduled updates run your SEO checks automatically at the times you choose.

Steps

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Settings > Schedule Updates.
  2. Choose a frequency:
    • Every 2 hours
    • Every 4 hours
    • Every 6 hours
    • Once a day
    • Custom hours (select specific hours from a 24-hour grid)
  3. Optionally enable Send email report after each run to receive automated notifications.
  4. Check the Enable scheduled updates toggle.
  5. Click Save.

The extension will create time-based triggers that automatically run your checks according to the chosen schedule. Combined with the Watchdog engine, this ensures that even very large check sets complete fully on every scheduled run.


Managing Your License

Activating a PRO License

  1. Go to Extensions > 🧿 SEO Watcher 🧿 > Settings > Manage License.
  2. The modal will display your current plan status:
    • FREE Version (Limit 50 checks) — shown with a red indicator.
    • PRO Version (Unlimited) — shown with a green indicator.
  3. Enter your license key in the input field.
  4. Click Activate License.
  5. The key will be verified against the licensing server. If valid, your status will immediately change to PRO.

Deactivating a License

  1. Open the same modal via Extensions > 🧿 SEO Watcher 🧿 > Settings > Manage License.
  2. Click Deactivate License.
  3. Your status will revert to the Free plan.

Licenses are re-verified every 24 hours to ensure continued validity. Refunded or chargebacked licenses are automatically rejected.


Frequently Asked Questions

Q: I initialized the sheet but I don’t see the checks/results sheets.
Re-run the Setup Wizard from Extensions > 🧿 SEO Watcher 🧿 > Setup Wizard. The wizard will re-create any missing sheets. If sheets already exist, the extension will not overwrite them.

Q: My GSC checks are failing even though I’ve configured Search Console.
Verify that the authenticated account (OAuth) or service account has been granted at least Read permission on the relevant properties in Google Search Console. Use List Properties to confirm which properties are accessible.

Q: I hit the 50-check limit. What happens to the remaining checks?
They are marked as failed with the message “LICENSE LIMIT REACHED.” The checks themselves are not lost — they remain in the checks sheet and will run again on the next execution (up to the 50-check limit). To process all checks without limits, upgrade to the PRO version.

Q: Can I use both OAuth and Service Account for GSC at the same time?
No. Only one authentication method is active at a time. The last saved method is the one used when running checks.

Q: How do I change the default HTTP Referer header?
Edit the value in the header sheet directly. The default is https://docs.google.com/.

Q: The extension shows “This app isn’t verified” during authorization. Is this safe?
Yes. This is a standard Google warning for all custom Google Workspace scripts. The extension only requests the permissions listed in this guide and does not access or store data beyond what is needed to run your SEO checks.


Index