Workflow

Track SEO Keyword Rankings

Automate daily tracking of SEO keyword rankings, update Google Sheets with real-time data, and receive Slack alerts for performance changes to keep your marketing team informed.

Needle Team

Last updated

October 1, 2025

Connectors used

Google Sheets
Slack

Tags

SEO MonitoringKeyword Rank TrackingSearch RankingsSEO Analytics

Key Takeaways

  • Automated daily rank checks - The workflow runs every morning at 8 AM UTC, searching Google for your target keywords and recording where your pages appear.
  • Google Sheets as your tracking hub - All keyword data lives in a spreadsheet that gets updated automatically with current rankings and position changes.
  • Slack alerts for ranking drops - When a keyword loses positions, an AI-generated summary is sent to your Slack channel so your team can act quickly.
  • Filters for active keywords only - The workflow skips inactive keywords, so you control exactly what gets tracked without editing the workflow itself.

What This Workflow Does

This workflow automates SEO keyword rank tracking by reading your keyword list from Google Sheets, searching the web for each keyword, finding where your target URLs rank in the results, updating the spreadsheet with current positions, and sending a performance summary to Slack. It replaces the manual process of checking rankings one by one and keeps your marketing team informed without anyone needing to log into a rank tracking tool.

Use cases:

  • Monitoring daily keyword positions for your website and catching drops early
  • Keeping a marketing team updated on SEO performance through Slack
  • Building a historical record of keyword rankings over time in Google Sheets

How It Works

StepWhat Happens
1. Scheduled triggerThe workflow kicks off automatically every day at 8 AM UTC.
2. Fetch keyword listReads all keyword data from your Google Sheets spreadsheet (keyword, target URL, baseline rank, locale, device, etc.).
3. Parse spreadsheet dataA code node converts the raw spreadsheet rows into structured objects using the header row.
4. Filter active keywordsOnly keywords marked as active (with an "x" in the Active column) are processed further.
5. Web searchNeedle's web search checks Google for each keyword exactly as written.
6. Merge resultsThe search results are merged back with the original keyword data.
7. Process rankingsA code node scans the search results to find your target URL and determine its position.
8. Find existing rowLooks up the matching row in Google Sheets so the correct row gets updated.
9. Update spreadsheetWrites the current rank and change values back to the Google Sheets document.
10. AI summaryGPT-4.1 analyzes the full set of results and writes a performance summary for the team.
11. Send to SlackThe AI-generated summary is posted to your Slack channel.

Workflow Nodes

NodeRole
Scheduled TriggerStarts the workflow daily at 8 AM UTC
Google Sheets - Get Values in RangeFetches the keyword tracking data from your spreadsheet
Code - Parse RowsConverts raw spreadsheet arrays into key-value objects
FilterPasses through only keywords where the Active column is set to "x"
Needle Web SearchSearches Google for each keyword
Merge (first)Combines the filtered keyword data with search results
Code - Process RankingsFinds the target URL in search results and calculates ranking position
Google Sheets - Find RowLocates the correct row in the spreadsheet for each keyword
TransformCleans up the row data before merging
Merge (second)Combines processed ranking data with the found row information
Google Sheets - Update Multiple RowsWrites updated Current Rank and Change values to the spreadsheet
AI Node (GPT-4.1)Generates a keyword performance summary
Slack - Send MessagePosts the AI summary to your marketing Slack channel

Setup Instructions

  1. Add the "Track SEO Keyword Rankings" template to your Needle workspace.
  2. Create a Google Sheets spreadsheet with these column headers: Keyword, Locale, Device, Target URL, Intent, Priority, Drop_Alert, Baseline Rank, Current Rank, Change, Active.
  3. Connect your Google Sheets account in Needle and point the nodes to your spreadsheet.
  4. Connect your Slack account and select the channel where alerts should be posted.
  5. Mark keywords as active by putting an "x" in the Active column.
  6. Run the workflow once manually to verify everything connects correctly.

Customization

What You Can ChangeHow
Schedule timingEdit the cron expression in the Scheduled Trigger node (default is daily at 8 AM UTC)
Target URL matchingModify the Code - Process Rankings node to match different URL patterns
Active keyword filteringChange the filter expression if you use a different marker than "x"
AI summary styleEdit the prompt in the AI node to adjust the tone or format of the Slack summary
Slack channelUpdate the channel ID in the Slack - Send Message node
Spreadsheet columnsAdjust column references in the Google Sheets update node if your sheet layout differs

FAQ

Q: What search engine does this workflow check rankings for? A: It uses Needle's built-in web search, which queries Google search results.

Q: How many keywords can I track? A: There is no hard limit in the workflow itself. It processes all rows in your spreadsheet that have the Active column set to "x".

Q: What happens if my site is not found in the search results? A: The workflow records "Not Found" as the current rank for that keyword in the spreadsheet.

Q: Can I change how often the workflow runs? A: Yes. Edit the cron schedule in the Scheduled Trigger node. For example, change it to run twice a day or only on weekdays.

Want to showcase your own workflows?

Become a Needle workflow partner and turn your expertise into recurring revenue.

Try Needle today

Streamline AI productivity at your company today

Join thousands of people who have transformed their workflows.

Agentic workflowsAutomations, meet AI agents
AI SearchAll your data, searchable
Chat widgetsDrop-in widget for your website
Developer APIMake your app talk to Needle
    Needle LogoNeedle
    Like many websites, we use cookies to enhance your experience, analyze site traffic and deliver personalized content while you are here. By clicking "Accept", you are giving us your consent to use cookies in this way. Read our more on our cookie policy .