Weekly SEO watchlist audit to Google Sheets with Gemini and Decodo
Weekly SEO Watchlist Audit to Google Sheets (Gemini + Decodo)
Sign up for Decodo HERE for Discount
Automatically fetches page content, generates a compact SEO audit (score, issues, fixes), and writes both a per-URL summary and a normalized โAll Issuesโ table to Google Sheetsโgreat for weekly monitoring and prioritization.
Whoโs it for?
Content/SEO teams that want lightweight, scheduled audits of key pages with actionable next steps and spreadsheet reporting.
How it works
- Weekly trigger loads the Google Sheet of URLs.
- Split in Batches processes each URL.
- Decodo fetches page content (markdown + status).
- Gemini produces a strict JSON audit via the AI Chain + Output Parser.
- Code nodes flatten data for two tabs.
- Google Sheets nodes append Summary and All Issues rows.
- Split in Batches continues to the next URL.
How to set up
- Add credentials for Google Sheets, Decodo, and Gemini.
- Set
sheet_idand Sheet GIDs in the Set node. - Ensure input sheet has a
URLcolumn. - Configure your Google Sheets tabs with proper headers matching each field being appended (e.g., URL, Decodo Score, Priority, etc.).
- Adjust schedule as needed.
- Activate the workflow.
Weekly SEO Watchlist Audit to Google Sheets with Gemini and Decodo
This n8n workflow automates the process of auditing a weekly SEO watchlist, leveraging Google Gemini for content analysis, and then recording the audit results in a Google Sheet. It's designed to help SEO professionals and content managers keep track of their target URLs and ensure their content remains optimized.
What it does
This workflow streamlines your SEO monitoring by performing the following steps:
- Triggers Weekly: The workflow is scheduled to run automatically on a weekly basis.
- Fetches Watchlist URLs: It reads a list of URLs from a specified Google Sheet, which serves as your SEO watchlist.
- Processes URLs in Batches: To manage API limits and processing efficiency, the URLs are processed in batches.
- Audits Each URL with Gemini: For each URL in a batch, it uses a custom Code node to fetch the content. This content is then passed to a Google Gemini Chat Model via a Basic LLM Chain to perform an SEO audit. The audit prompts Gemini to analyze the content for relevance, keywords, structure, and other SEO factors, and to provide suggestions for improvement.
- Parses Gemini's Output: The structured output from Gemini's analysis is parsed to extract key insights and recommendations.
- Formats Audit Results: The extracted audit results are formatted into a consistent structure.
- Appends Results to Google Sheet: Finally, the detailed SEO audit results, including Gemini's analysis and recommendations, are appended as new rows to a designated Google Sheet.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Instance: A running n8n instance (cloud or self-hosted).
- Google Account: A Google account with access to Google Sheets.
- Google Sheets Credential: An n8n credential configured for Google Sheets to read from and write to your spreadsheets.
- Google Gemini API Key: An API key for Google Gemini (or a similar large language model) to power the content analysis. This will be configured within the "Google Gemini Chat Model" node.
- Decodo (or similar web scraping tool/library): The "Code" node implies a mechanism to fetch web content from the URLs. While not explicitly defined in the JSON, a custom script within the Code node would likely use a library or service like Decodo (as hinted by the directory name) or a simple HTTP request to scrape the content.
Setup/Usage
-
Import the Workflow:
- Download the provided JSON file.
- In your n8n instance, click "Workflows" in the left sidebar.
- Click "New" and then "Import from JSON".
- Paste the JSON content or upload the file.
-
Configure Credentials:
- Google Sheets: Locate the "Google Sheets" node. Click on it and select or create a new "Google Sheets" credential. Ensure it has access to the spreadsheet where your watchlist is stored and where the audit results will be written.
- Google Gemini: Locate the "Google Gemini Chat Model" node. Configure your Google Gemini API key within its settings.
-
Specify Google Sheets:
- Watchlist Sheet: In the initial "Google Sheets" node (the one reading data), specify the "Spreadsheet ID" and "Sheet Name" where your SEO watchlist URLs are located. Ensure each URL is in a column that can be easily referenced.
- Audit Results Sheet: In the final "Google Sheets" node (the one writing data), specify the "Spreadsheet ID" and "Sheet Name" where the audit results should be appended.
-
Customize Content Fetching (Code Node):
- Open the "Code" node. This node is responsible for fetching the content of each URL. You will need to customize the JavaScript code within this node to correctly scrape the content from the URLs. This might involve using an HTTP Request node internally or a custom library/API.
- Important: The current JSON does not include the actual code for content fetching. You will need to add the logic to retrieve the webpage content for each URL.
-
Customize Gemini Prompt (Basic LLM Chain):
- Open the "Basic LLM Chain" node.
- Review and adjust the prompt provided to Google Gemini to tailor the SEO audit to your specific needs. For example, you might want to focus on specific keywords, content length, readability, or technical SEO aspects.
-
Activate the Workflow:
- Once all credentials and configurations are set, enable the workflow by toggling the "Active" switch in the top right corner of the workflow editor.
- The "Schedule Trigger" node is configured to run weekly, but you can manually execute the workflow for testing purposes by clicking "Execute Workflow".
Related Templates
Automate bank statement and invoice reconciliation with GPT and Google Sheets
๐ข Manual Trigger Workflow starts manually to initiate the reconciliation process on demand. ๐ Fetch Invoices & Bank Statements Retrieves invoice data and bank statement data from Google Sheets for comparison. ๐ Merge Data Combines both datasets into a single structured dataset for processing. ๐งฉ Format Payload for AI Function node prepares and structures the merged data into a clean JSON payload for AI analysis. ๐ค AI Reconciliation AI Agent analyzes the invoice and bank statement data to identify matches, discrepancies, and reconciled entries. ๐งฎ Parse AI Output Parses the AI response into a structured format suitable for adding back to Google Sheets. ๐ Update Sheets Adds the reconciled data and reconciliation results into the target Google Sheet for recordkeeping. ๐งพ Prerequisites โ OpenAI API Credentials Required for the AI Reconciliation node to process and match transactions. Add your OpenAI API key in n8n โ Credentials โ OpenAI. โ Google Sheets Credentials Needed to read invoice and bank statement data and to write reconciled results. Add credentials in n8n โ Credentials โ Google Sheets. โ Google Sheets Setup The connected spreadsheet must contain the following tabs: Invoices โ for invoice data Bank_Statement โ for bank transaction data Reconciled_Data โ for storing the AI-processed reconciliation output โ Tab Structure & Required Headers Invoices Sheet Columns: Invoice_ID Invoice_Date Customer_Name Amount Status Bank_Statement Sheet Columns: Transaction_ID Transaction_Date Description Debit/Credit Amount Reconciled_Data Sheet Columns: Invoice_ID Transaction_ID Matched_Status Remarks Confidence_Score โ๏ธ n8n Environment Setup Ensure all nodes are connected correctly and the workflow has permission to access the required sheets. Test each fetch and write operation before running the full workflow.
Filter the feedback from Typeform and store in Google Sheets
This workflow allows you to filter positive and negative feedback received from a Typeform and insert the data into Google Sheets. Typeform Trigger node: Start the workflow when a new form is submitted via Typeform Set node: Extract the information submitted in typeform IF node: Filter positive and negative reviews (i.e. ratings above or below 3 out of 5). Google Sheets node: Store the positive and negative reviews and ratings in two different sheets for each case.
Write HTTP query string on image
Receives data from an incoming HTTP Request Reads file from internet Writes data on image Returns the data The URL to call will look like this: http://localhost:5678/webhook-test/webhook/test?name=Jim Once called it will return an image like this: